bug in RotateCamera()

Für allgemeine Fragen zur Programmierung mit PureBasic.
SK-Genius
Beiträge: 2
Registriert: 28.03.2005 22:20

bug in RotateCamera()

Beitrag von SK-Genius »

PureBasic 3.93 (Demo)

Code: Alles auswählen

InitMouse()
OpenWindow(0, 0, 0, 800, 600, #PB_Window_ScreenCentered, "Test")
InitEngine3D()
InitSprite()
OpenScreen(800, 600, 16, "test")  ; Nr1
CreateCamera(0, 0, 0, 100, 100)  ; Nr2

CameraLocate(0, 0, 5, -20)
CameraLookAt(0, 0, 0, 0)

SkyDome("test.bmp", 10)
Repeat
  ClearScreen(0, 0, 0)
  RenderWorld()
  FlipBuffers()
  ExamineMouse() 
  RotateCamera(0, 0, MouseDeltaX(), 0)  ; Nr3
Until MouseButton(1)
na toll, da hat man PureBasic seit 3 tagen und stollpert schon über n buck.
man muss nur mal die maus paar mal heftik hin und her bewegen und schon verzehrt sich alles bis man nix mehr sieht.

RotateCamera() (makirung Nr3) kommt nicht damit der kombination von CameraLocate() (makierung Nr1) und CameraLookAt() (makierung Nr2) zurecht. ich vermute mal das RotateCamera die "ausrichtungsmatix" der kammera falsch berechnet.
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

3D in PB selbst ist eh unausgereift. Benutz Senseflare oder XTreme3D.
:|
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
SK-Genius
Beiträge: 2
Registriert: 28.03.2005 22:20

Beitrag von SK-Genius »

bei dem versuch den bug zu umgehen bin ich gleich auf folgendes gestossen:

Code: Alles auswählen

InitMouse()
OpenWindow(0, 0, 0, 800, 600, #PB_Window_ScreenCentered, "Test")
InitEngine3D()
InitSprite()
OpenScreen(800, 600, 16, "test")
CreateCamera(0, 0, 0, 100, 100)

SkyDome("pics\_crate1.png", 10)
Repeat
  ClearScreen(0, 0, 0)
  RotateCamera(0, 0, MouseDeltaX(), 0)
  RenderWorld()
  RotateCamera(0, 0, -MouseDeltaX(), 0)
  FlipBuffers()
  ExamineMouse() 
Until MouseButton(1)
hierbei hab ich versucht die rehung gleich nach dem darstellen wieder rückgänig zu machen. pustekuchen, das rendern verfälscht die daten auf die die rotation zugreift. oder anders gesagt, nach RenderWorld weisst du nicht mehr wohin du dich gedreht hast. da bleibt einem ja nur noch übrig die welt um die kammera zu drehn, aber wer weiss ob der befehl nicht auch bugy ist. ich hab zumindest die schnautze voll von 3d in purebasic.
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Ja,
Das ist der Stand von vor einem Jahr die Ogre version ist total veraltet.
Gibt 2 Gute Engines die du benutzen kannst:

Senseflare
und
Xtreme3D
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
Antworten