Diesmal Draw3D2 und Orthogonal :-)
Übersicht

![]() |
ChriseBetreff: Diesmal Draw3D2 und Orthogonal :-) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Ich weiß, ich hatte die selbe Frage schoneinmal bezüglich Draw3D Version 1 gestellt. Allerdings hat sich seit Draw3D2 irgendwie der Aufbau der Technik geändert, sodass ich die damalige Lösung von Hectic nicht mehr umsetzen kann. Wie kann ich die Projektion nun umstellen, dass Bilder noch richtig, trotz orthogonaler Darstellung gezeichnet werden? Geht das überhaupt irgendwie? Wäre eine Funktion wie DrawProjMode3D(Camera,Mode) nicht eine Überlegung Wert? Vielen Dank für Antworten und Hilfe! ![]() lg Chrise |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Problem. Mach folgendes:
In der Draw3D2.bb änderst du bitte folgende Konstante nach 0 Code: [AUSKLAPPEN] Const AUTOFLUSHFACE%=0 ;AUTO/FLUSHFACE3D<1/0>
und merkst du dir den Wert in der Draw3D2.bb bei Code: [AUSKLAPPEN] Const DRAWDISTANCE%=800 ;DRAWING/DISTANCE
Die (in diesem Beispiel =800) stellst du dann in deinem Code wie folgt ein: Code: [AUSKLAPPEN] CameraProjMode Camera,2
CameraZoom Camera,1/800.0 - - - Die Konstante FLUSHFACE3D ''reinigt'' ein Surface beim laden einmal automatisch ab. Das läuft so ab, gleich nach dem laden das Surface einmal komplett bis zum maximum erstellt und wieder gelöscht wird. Das hebt einen Blitz3D-Bug auf, der bei vielen Partikeln des selben Surfaces zu abstürzen führen kann. Leider - hab ich bemerkt - stockt das Programm sehr, wenn man das aktiv hat und zeitgleich orthographische Projektion geschaltet hat. Die Konstante DRAWDISTANCE dagegen, gibt die Entfernung an, in der das Surface (=0) von der Kamera entfernt gezeichnet wird. Es ist also der Wert, der CameraRange umschliessen muß. Dieses variabel gehalten verhindert bei Spaceshootern, dass die Zeichenungenauigkeit bei großer Entfernung aus der Position 0,0,0 wegen Rundungsfehler der Grafikkarte, das Surface nicht anfängt zu ''zittern''. Die Draw3D2 gibt also mehr Kontrolle dem Programmierer gegenüber der älteren Draw3D V.3.2. - - - Bei weiteren Problemen immer her mit den Fragen. Edit1: Wenn du bereits ein festgelegtes CameraZoom benötigst, kannst du entweder mit der Konstante DRAWDISTANCE spielen, oder alle Surfaces über CreatePivot3D laufen lassen. Denn da kannst du auch das Surface manuell skallieren (letzter Parameter). |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Chrise |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cool! Vielen Dank, hat wunderbar funktioniert! | ||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
![]() |
faeX |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich wollte jetzt keinen neuen Thread aufmachen, und da sich die Fragen recht ähnlich sind: Wie positioniere ich die Camera pixelperfekt? Also mit PositionEntity![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zum Beispiel über:
1:1 Code: [AUSKLAPPEN] Handle=CreatePivot3D(0, 0,0,GraphicsWidth()/2, 0,0,0, 1)
1:10 Code: [AUSKLAPPEN] Handle=CreatePivot3D(0, 0,0,GraphicsWidth()/20, 0,0,0, 0.1)
1:100 Code: [AUSKLAPPEN] Handle=CreatePivot3D(0, 0,0,GraphicsWidth()/200, 0,0,0, 0.01)
1:1000 Code: [AUSKLAPPEN] Handle=CreatePivot3D(0, 0,0,GraphicsWidth()/2000, 0,0,0, 0.001)
Das erste Beispiel ermöglicht eine 1:1-Steuerung. Das heißt, eine Welteinheit gleich ein Pixel. Problematisch wird es jedoch erst, wenn man 3D-Kollisionen (bei 2D-Darstellung) verwendet, und die Kamera jenseits einer Position von +/- 4000 in X/Y sich befindet. Denn dann spielt die Kollision immer mehr und mehr verrückt. In solchen Fällen sollte man dann eine kleinere Skalierung verwenden, die über die Weltgrenzen nicht über +/- 4000 hinaus geht. Die Kamerabewegung muss dann natürlich entsprechend runter gerechnet werden. Also /10, /100 ... |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group