[Solved, dude!] OGL Camera - "Eintauchen" verhindern



  • Hallo!
    Ich arbeite derzeit an einer kleinen Grafikanwendung. Dabei spielt es eine Rolle, sich frei im dreidimensionalen Raum bewegen zu können, was auch super klappt. Dazu habe ich mir eine klasse geschnappt und soweit umgeschrieben und angepasst, dass sie für meine zwecke funktioniert.
    Sie arbeitet mit gluLookAt(), was wahrscheinlich von Relevanz ist, schätze ich.

    Habe ich nun ein Objekt, durch das ich hindurchlaufen könnte (Beispielsweise ein Torbogen) wird leider ein extrem hässlicher Effekt erzeugt: Ich kann in das Objekt hinein sehen! (Bei bedarf schcike ich einen Screenshot!)

    Meine Frage ist nun, wie man das ganze verhindern kann.
    Es ist einfach nicht...sonderlich schön, einen solchen Effekt in seinen Anwendungen zu haben. ^^"

    Ich bedanke mich im Voraus!

    Edit: geht es eventuell über Near und ar Plane bei glFrustum bzw gluperspectiv ?



  • Bin mir nicht ganz sicher, was du mit "hinein sehen" meinst. Wenn du in das Objekt sehen kannst, obwohl sich der Eyepoint ganz klar außerhalb des Objekts befindest, dann ist dein Culling falsch. Ansonsten brauchst du eine Kollisionsabfrage, die das Eindringen der Kamera in das Objekt verhindert.



  • Ich werde ein paar tests durchführen und schauen inwiefern das Culling falsch sein könnte oder ähnliches.

    Danke schonmal!



  • near-clipping-plane naeher an 0 setzen?



  • Entschuldige bitte, dass ich nicht allwissend bin. 🙂
    Wie genau mache ich das?
    glFrustum, gluPerspective oder was ganz anderes? (Und kann ich das ganze so Problemlos mit gluLookAt() verwenden?)



  • Entschuldige bitte, dass ich nicht allwissend bin

    Ach, schon okay! 😃
    Waehle den Parameter znear bei gluPerspective kleiner (aber dennoch so gross wie moeglich).
    Dieser Parameter besagt wie weit vor der Kamera die Geometrie abgeschnitten wird.
    Fliegst Du naeher als znear an ein Objekt heran, kannst Du reingucken.
    Der Abstand zwischen znear und zfar ist auch fuer die Praezision des ZBuffers verantwortlich und sollte daher so eng wie moeglich gewaehlt werden.



  • Ich verstehe, danke sehr!
    Aber wäre es im Falle von zNear und zFar nicht ausreichend die beiden Werte proportional zu verringern? (Der Quotient der beiden Werte ist dann doch immernoch der selbe, oder sehe ich da etwas falsch?)

    Gut..ich komme mit der Funktion definitiv nicht klar.
    Alles aws ich bekomme ist eine definitiv nicht richtig projezierte Oberfläche. Das model eines Turmes, das ich testweise geladen habe, wird einfach nur ins absurde verzerrt...

    Done it myself. (:
    Danke an alle, die geholfen haben!


Log in to reply