3D Entity-Nullpunkt Problem
Verfasst: 20.07.2006 22:16
Hallo!
Bevor ich zu meiner Frage komme, muss ich kurz erwähnen, dass ich erst gestern angefangen habe PureBasic zu erlernen und außer mit PHP und etwas ActionScript keine Programmiererfahrungen habe, erst recht nicht mit 3D. Also entschuldigt bitte, wenn ich hier eventuell einige Begriffe durcheinanderbringe
Dank der tollen Hilfe und den vielen Beispieldateien habe ich es geschafft ein 400x400px JPG auf einem Mesh/Entity im Raum zu platzieren, außerdem eine per Maus auf der X-Achse rotierbare Kamera. Mein Ziel ist, mehrere solcher Objekte auf einem Kreis um die Kamera anzuordnen, so dass ich eine Art mausgesteuerte 3-D-Bildershow erhalte.
Nun zu meinem Problem:
Das/den Mesh (?) habe ich aus folgenden Daten erstellt:
...der Nullpunkt ist in diesem Fall auch der Mittelpunkt meines Objektes. (Wofür die FaceID Daten stehen, weiß ich noch nicht - ich glaube, das ist aber eher nebensächlich.)
Mein Mesh, das Entity und Kameraposition habe ich folgendermaßen definiert/erzeugt:
Was ich jetzt nicht verstehe ist, wenn ich langsam die Kamera durch Mausbewegung drehe und somit das Bild/Entity auf den Monitorrand zubewege, dass das Bild in dem Moment auf einen Schlag ausgeblendet wird, wenn der Nullpunkt (Mitte meines Bildes) den sichtbaren Bereich verlassen hat. Ich habe ein bißchen mit den Mesh-Daten gespielt und festgestellt, dass wenn ich den Nullpunkt an den linken Rand des Mesh setze, ich dann das Bild sauber auf der rechten Bildsschirmseite "rausfahren" kann, aber auf der linken Seite verschwindet es, sobald auch nur 1 Pixel des Bildes den Monitor verlassen hat.
Meine spontane Idee war, dass ich zwei Entities mit versetzten Nullpunkten übereinanderlege, aber das ist ja nun wirklich keine saubere Lösung.
Gibt es einen anderen Weg? Warum verschwindet das Objekt eigentlich auf einen Schlag?
Vielen Dank und viele Grüße aus Freiburg
Ben
Bevor ich zu meiner Frage komme, muss ich kurz erwähnen, dass ich erst gestern angefangen habe PureBasic zu erlernen und außer mit PHP und etwas ActionScript keine Programmiererfahrungen habe, erst recht nicht mit 3D. Also entschuldigt bitte, wenn ich hier eventuell einige Begriffe durcheinanderbringe

Dank der tollen Hilfe und den vielen Beispieldateien habe ich es geschafft ein 400x400px JPG auf einem Mesh/Entity im Raum zu platzieren, außerdem eine per Maus auf der X-Achse rotierbare Kamera. Mein Ziel ist, mehrere solcher Objekte auf einem Kreis um die Kamera anzuordnen, so dass ich eine Art mausgesteuerte 3-D-Bildershow erhalte.
Nun zu meinem Problem:
Das/den Mesh (?) habe ich aus folgenden Daten erstellt:
Code: Alles auswählen
DataSection
VertexID:
;Data.f x, y, z, Nx, Ny, Nz, U, V
Data.f 0, 0, 0, 0, 0, -1, 0, 0
Data.f 0, -400, 0, 0, 0, -1, 0, 1
Data.f 400, -400, 0, 0, 0, -1, 1, 1
Data.f 400, 0, 0, 0, 0, -1, 1, 0
FaceID:
Data.w 0, 1, 2
Data.w 0, 2, 3
EndDataSection
Mein Mesh, das Entity und Kameraposition habe ich folgendermaßen definiert/erzeugt:
Code: Alles auswählen
AmbientColor(RGB(255, 255, 255))
CreateCamera(0, 0, 0, 100, 100)
CameraRange(0, 0.1, 2000)
CameraLocate(0, 0, 0, -600.75)
CreateMesh(5, -1)
SetMeshData(5, #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate, ?VertexID, 4)
SetMeshData(5, #PB_Mesh_Face, ?FaceID, 2)
; lade Texturen
LoadTexture(5, "ben.jpg")
CreateMaterial(5, TextureID(5))
CreateEntity(5, MeshID(5), MaterialID(5))
EntityMaterial(5, MaterialID(5))
EntityLocate(5, 0, 0, -1527.887)
Meine spontane Idee war, dass ich zwei Entities mit versetzten Nullpunkten übereinanderlege, aber das ist ja nun wirklich keine saubere Lösung.
Gibt es einen anderen Weg? Warum verschwindet das Objekt eigentlich auf einen Schlag?
Vielen Dank und viele Grüße aus Freiburg
Ben