Kameraansicht auf Texture

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

TheProgrammer

Betreff: Kameraansicht auf Texture

BeitragDi, Mai 11, 2004 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.
Ich möchte die Kameraansicht auf eine Texture bekommen.
Ich habe es folgendermaßen probiert:

Code: [AUSKLAPPEN]

 tex = createtexture(320,240)
 camera = createcamera()
 entity = createcube()
 
 setbuffer texturebuffer(tex)
 
 cameraviewport camera,0,0,320,340

 setbuffer backbuffer()
 entitytexture entity,tex


Wie kann man es machen?
aktuelles Projekt: The last day of human being

Markus2

BeitragDi, Mai 11, 2004 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
mußte mit Copyrect vom Backbuffer in die Texture kopieren ...
 

Dreamora

BeitragDi, Mai 11, 2004 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
setbuffer texturebuffer(tex)
; camviewport setzen oder am besten gleich ne 2te cam die sonst gehidet is
render
setbuffer backbuffer()
;camviewport zurücksetzen falls oben neu gesetzt

Markus2

BeitragDi, Mai 11, 2004 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dreamora
BB kann nicht direkt in die Texture ein Bild von der Camera erzeugen .
Wäre mir neu ...
 

Dreamora

BeitragDi, Mai 11, 2004 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Scheint als hättest du in dem Fall grad was neues gelernt Smile

du kannst nicht direkt ein Bild einer Cam erzeugen
Aber du kannst es in den Buffer rendern.

heisst einfach dass du pro Mainloop 2x rendern musst womit du halt nur noch halb so viele Frames hast.
Das "Texturrendern" der Cam kann man jedoch auch so machen dass es zb nur 20x mal pro sekunde geschieht oder so.

Auf die Hardware technik die "texturrendern" erlaubt können wir ja von Blitz3D aus net zugreifen. die wäre noch um einiges effizienter

Vertex

BeitragDi, Mai 11, 2004 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
...
camTexture = CreateTexture(128, 128)
...
UpdateWorld
CameraViewPort camera, 0, 0, 128, 128
SetBuffer TextureBuffer(camTexture)
RenderWorld
SetBuffer BackBuffer()
CameraViewPort camera, 0, 0, 800, 600
RenderWorld
Flip
vertex.dreamfall.at | GitHub

Markus2

BeitragMi, Mai 12, 2004 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir geht das aber nicht !???
Also wenn ich erst den Buffer setzte und dann rendern tuh sehe ich nix
in der Texture Sad
 

Dreamora

BeitragMi, Mai 12, 2004 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hast du die Textur auch auf ein objekt geklebt dass du überhaupt siehst? Smile ( und vor allem auch ne einigermassen aktuelle Blitz3D version )

TheProgrammer

BeitragMi, Mai 12, 2004 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey. Danke!!! Very Happy

Hier habe ich es übrigens verwenden:
https://www.blitzforum.de/view...5109#35109
aktuelles Projekt: The last day of human being

Markus2

BeitragMi, Mai 12, 2004 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dreamora
Ja habe ich und ich könnte es nämlich gut gebrauchen für eine
Chromkugel die eine zweite Camera benutzt .
Oder gehts nur mit der ersten Cam ?
Blitz Version ist 1.86
 

Dreamora

BeitragMi, Mai 12, 2004 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
es geht mit jeder beliebigen cam
es darf einfach nur 1 cam sichtbar sein zum zeitpunkt des rendern sonst geht das net.

wie du ja am beispiel siehst musst du erst die "texturkamera" rendern, dann die verschwinden lassen und dann wieder die normale spielercam rendern

kostet dich einfach 50% der Frames ein wenn du die Texturkamera in echtzeit aktualisierst und das ohne dass es wirklich was bringt ...

Markus2

BeitragMi, Mai 12, 2004 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dreamora
Fällt mir gerade ein das ich ja nur eine Cam habe und von dieser
nur die Pos. umschalte .
Ich mache damit mal experimente weil so könnte ich mir einmal
CopyRect sparen !!

Markus2

BeitragMi, Mai 12, 2004 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
So geht es bei mir nicht Sad

@Dreamora
kannst du es bitte mal bei dir testen ?

Code: [AUSKLAPPEN]


Graphics3D 800,600,16,1
SetBuffer BackBuffer()

Global cam=CreateCamera()

tx=CreateTexture(128,128)

c=CreateCube()
EntityTexture c,tx

PositionEntity cam,0,0,-5

CameraClsColor cam,100,100,100

While Not KeyHit(1)

 UpdateWorld

 CameraViewport cam,0,0,128,128
 SetBuffer TextureBuffer(tx)
 RenderWorld
 SetBuffer BackBuffer()
 
 CameraViewport cam,0,0,800,600
 RenderWorld

 TurnEntity c,0,1,0

 Flip

Wend
End


Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group