Author Topic: Objekt verschwindet plötzlich  (Read 2316 times)

Offline BumbleBee

  • Global Moderator
  • Prof. Inline
  • *******
  • Posts: 891
    • View Profile
Objekt verschwindet plötzlich
« on: 2005-Apr-09 »
Hi

Hmm wie fang ich am besten an.  Also ich bewege mich mit einer Figur in einer 3D Welt an
einem Objekt vorbei. Das Objekt ist eine große (texturierte) Box (z.B. für ein langes Gebäude).
Die Kamera ist immer hinter der Figur. Plötzlich verschwindet das Objekt wenn sich die Figur
links oder rechts (schräg) daran vorbei bewegt oder wenn die Kamera gedreht wird.
Es müsste aber noch zu sehen sein.
Einfach mal im TruckDriver Beispiel das Haus vergrößern
(In Function DrawCity-- Case 56-- X_SCALING 4,4,4 einsetzen) und knapp vor dem Haus nach rechts fahren.
Etwa ab der Mitte ist das Haus weg.
Aber am extremsten sieht man's bei der Verfolgerkamera und das Objekt sollte nicht zu klein sein.
Ist das nur bei mir so oder ist das ein Bug?


Gernot kann mir da bestimmt weiterhelfen.

Danke schonmal



Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10697
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Objekt verschwindet plötzlich
« Reply #1 on: 2005-Apr-09 »
Ja, Bug. Liegt daran, dass Objekte aufgrund Winkel zur Kamera und Brennweite nicht gezeichnet werden, damit's schneller geht. Dabei wird das eben nicht exakt berechnet, sondern nur "abgeschätzt", weil das eben viel, viel schneller geht. Durch diese kleine Ungenauigkeit ist eben dann auch der Fehler entstanden. Ich werd's mal beheben im nächsten Update.
Danke,
Gernot

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10697
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Objekt verschwindet plötzlich
« Reply #2 on: 2005-Apr-09 »
So, nach 2 Std. Debuggen hab ich's endlich gefunden:
Es liegt im GLBasic-code:
Code: GLBasic [Select]
IF dx*dx+dy*dy <= radius
Ich bin davon ausgegangen, dass die Objekte nicht viel größer als ein "Kartenblock" sind. Wenn man die linke shift-Taste hält, bekommt man eine Vogelperspektive, bei der klar wird, was ich damit alles ausschalte beim Rendern - das ist nur um es ein bisserl schneller zu machen. Das Clipping funktioniert intern gut - ich hab's jedoch nochmal angesehen, und gemerkt, dass einige Objekte hinter der Kamera auch gezeichnet wurden - das ist jetzt behoben -> noch schneller.

Bin ich froh, dass es kein Fehler in GLBasic war ;)

Freut' mich übrigens, dass jemand was mit dem TruckDriver macht. Ich hatte viel Hoffnung in das Projekt gesteckt, aber dann keine Zeit zum fertigmachen gehabt. Da würden Shops zum (ver)kaufen fehlen, und das Ganze wäre dann bisserl so wie Elite am C64...

Gruß,
Gernot