Ernsthaft Bloedes Problem
Übersicht

GigapolyBetreff: Ernsthaft Bloedes Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was ist mit meiner EnableOpenGL3D Funktion nicht richtig?
Ohne Transformation sieht alles richtig aus doch die X axis is gespiegelt sobals Ich die Kamera bewege. Ich sitzte schon seit ueber einer Woche an diesem Problem. Code: [AUSKLAPPEN] Framework leadwerks.engine Function EnableOpenGL3D(camera:TCamera) glMatrixMode(GL_PROJECTION) glEnable GL_DEPTH_TEST glLoadIdentity() Local nearRange:Float Local farRange:Float nearRange = camera.nearRange farrange = camera.farRange gluPerspective(90, Float(GraphicsWidth()) / Float(GraphicsHeight()), nearRange, farRange) glMatrixMode(GL_MODELVIEW) glLoadIdentity() from:TVec3 = EntityPosition(camera) zu:TVec3 = Vec3(0, 0, 1) zu = TFormVector(zu, camera, Null) zu.X = zu.X + from.X zu.Y = zu.Y + from.Y zu.Z = zu.z + from.Z gluLookAt(from.X, from.Y, from.Z, zu.X, zu.Y, zu.Z, 0.0, 1.0, 0.0) End Function RegisterAbstractPath AppDir Graphics 640, 480 CreateWorld() Global Buffer:TBuffer = CreateBuffer(640, 480, BUFFER_COLOR0 | BUFFER_DEPTH | BUFFER_NORMAL) '// ======= Entity creation ======= Global light:TLight = CreateDirectionalLight() '// Light RotateEntity (Light, Vec3(90, 0, 0)) Global camera:TCamera = CreateCamera() '/ / Camera MoveEntity(camera, Vec3(0, 0, -2)) Global cube:TMesh = CreateCube() '// Cube Global ground:TMesh = CreateCube() '// Floor ScaleEntity(Ground, Vec3(2, 1, 2)) MoveEntity(ground, Vec3(0, -1.5, 0)) While Not KeyHit(KEY_ESCAPE) '// ======= Update ======= TurnEntity(cube, Vec3(0.1, 0.1, 0.1)) If(KeyDown(KEY_W)) MoveEntity(camera, Vec3(0, 0, 0.05)) If(KeyDown(KEY_S)) MoveEntity(camera, Vec3(0, 0, -0.05)) If(KeyDown(KEY_A)) MoveEntity(camera, Vec3(-0.05, 0, 0)) If(KeyDown(KEY_D)) MoveEntity(camera, Vec3(0.05, 0, 0)) If(KeyDown(KEY_PAGEUP)) MoveEntity(camera, Vec3(0, 0.05, 0)) If(KeyDown(KEY_PAGEDOWN)) MoveEntity(camera, Vec3(0, -0.05, 0)) If(KeyDown(KEY_HOME)) TurnEntity(camera, Vec3(0.2, 0, 0)) If(KeyDown(KEY_END)) TurnEntity(camera, Vec3(-0.2, 0, 0)) If(KeyDown(KEY_LEFT)) TurnEntity(camera, Vec3(0, 0.2, 0)) If(KeyDown(KEY_RIGHT)) TurnEntity(camera, Vec3(0, -0.2, 0)) '// ======= 3D rendering ======= UpdateWorld SetBuffer Buffer RenderWorld SetBuffer BackBuffer() RenderLights(Buffer) SetBuffer BackBuffer() EnableOpenGL3D(camera) glColor3f(1, 0, 0) glBegin(GL_LINE_STRIP) glVertex3f(-1, -5, -1) glVertex3f(-1, 5, -1) glEnd() glBegin(GL_LINE_STRIP) glVertex3f(-1, -5, 1) glVertex3f(-1, 5, 1) glEnd() glBegin(GL_LINE_STRIP) glVertex3f(1, -5, 1) glVertex3f(1, 5, 1) glEnd() glBegin(GL_LINE_STRIP) glVertex3f(1, -5, -1) glVertex3f(1, 5, -1) glEnd() 'SetBuffer BackBuffer() '// 2D GLDrawText("Hello World!", 32, 32) '// ======= Screen Update ======= Flip() Wend End |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke, du solltest das eher im Leadwerks-Forum fragen als hier. | ||
Gigapoly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, aber die kriegen dieses auch nicht geloest. Die Thread ist schon ziemlich alt und ohne Loesungsansaetze.
Es sollte auch mit MiniB3D oder jede andere Form von Kamera als Entity Type funktionieren. |
||
Gigapoly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Geloest!!
Hier is die Loesung: http://www.gigapoly.com/?p=151 |
||
http://www.gigapoly.com |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group