Cameraviewport problem
Übersicht

shootermakerBetreff: Cameraviewport problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo.
Seht euch bitte mal dieses Code-Beispiel an: Code: [AUSKLAPPEN] Graphics3D 640,480,16,2 cam = CreateCamera() PositionEntity cam,0,0,-200 CameraProjMode cam,2 CameraZoom cam,1.0/320.0 CameraViewport cam,0,0,400,200 tex = CreateTexture(128,128) SetBuffer TextureBuffer(tex) ClsColor 55,110,50 Cls SetBuffer BackBuffer() ent = CreateCube() ScaleEntity ent,2,2,2 EntityColor ent,255,55,210 pitch# = 0.0 x# = 0 WireFrame 0 Repeat Cls If KeyHit(200) y = y + 20 If KeyHit(208) y = y - 20 If KeyHit(203) x = x - 20 If KeyHit(205) x = x + 20 PositionEntity ent,x,y,0 RotateEntity ent,pitch,0,0 UpdateWorld() RenderWorld() Flip Until KeyHit(1):End (Pfeiltasten zum bewegen) Wenn ihr ihn ausführt werdet ihr sehen, dass sich der cube(rosa punkt) in der größe beim bewegen verändert. Weiß jemand wie man das problem beheben könnte? Wenn ich cameraviewport weglasse funktioniert es. ich möchte aber dieses System als Minimap benutzen. Vielen Dank im Voraus. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
CameraZoom cam,1.0/200.0 | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
shootermaker |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hectic hat Folgendes geschrieben: CameraZoom cam,1.0/200.0
Hallo, Danke ![]() Das mit dem CameraZoom ist alles schön und gut, aber wenn ich die größe des cameraviewports verändere(also die größe der minimap) kann das problem wieder auftreten... die frage ist also warum funktioniert /200 bei dem beispiel aber bei einer anderen größe der minimap ist es wieder ganz ein anderer Wert? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ganz einfach, bei einer Kameraprojektion muß immer die hälfte der Bildschirmbreite ein Objekt nach hinten positioniert werden, damit es 1:1 (eine Einheit : ein Pixel) bewegt werden kann. In deinem Fall hast du aber lieber den Weg über CameraProjMode = 2 gewählt. Hier spielt die Z-Position keine eine Rolle, es muß lediglich vor der Kamera positioniert werden und innerhalb der CameraRange sich aufhalten. Dafür hast du aber über CameraZoom nun keine 1:1 Stellung hingebommen. Allerdings mit dem Zusatz von CameraViewPort. Da aber hier nicht mehr die Auflösung, sondern das Viewport als Bezug genommen werden muß, nimmst du einfach die hälfte der Viewport-Breite. Also 1.0/200.0
Denn die Projektionen sind gleich ob du nun Graphics 800,600 nimmst, oder Graphics 1024,768 und CameraViewPort 800,600. Klar? Beide haben letztendlich die Breite 800 Einheiten. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
shootermaker |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank, hectic!
Super Erklärung! Habs verstande, im code eingebaut und funktioniert natürlich. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group