Registriert: So Dez 29, 2002 10:37 Beiträge: 251 Wohnort: Ulm
hi,
ich hätt da mal wieder ne frage: kann man die orthographische und perspektivische ansicht gleichzeitig einsetzen? also ich hätte gerne, dass ich zwei (gleiche) objekte nebeneinander zeichnen kann, den einen in perspektivischer form, den anderen in orthographischer.
Das geht - wenn du die Vertices transformierst, bevor du sie an den OpenGL Renderer sendest. In der Praxis sieht das so aus, dass du die ModelView Matrix auf die Identität setzt, die Projektionsmatrix setzt du der Einfachheit halber auf einen Ortho-Modus. Nun lässt du die Matrizen unverändert und transformierst/projizierst deine Schnittpunktdaten wie du sie brauchst, bevor du sie mittels glVertex Kommandos an OpenGL sendest.
Das ganze ist natürlich langsamer, als wenn OpenGL Matrizen verwendet würden (die meisten Grafikkarten können Vertex-Matrix-Multiplikationen sehr schnell ausführen), aber wahrscheinlich schneller als wenn du hunderttausend glLoadMatrix Kommandos aufrufen würdest (kommt natürlich auf die Komplexität der Objekte an) - da jeder State Change, der ein Hardwarefeature betrifft eher mit Vorsicht anzuwenden ist (evtl. muss in der Grafikkarte viel mehr umkonfiguriert werden, als es das Kommande vermuten lassen würde, um z.B. einen schnelleren Renderpfad zu gewährleisten).
Eine bessere Lösung ist daher, deinen SceneGraph zu sortieren, erst zeichnest du z.B. alle perspektivischen Objekte, änderst die Projektionsmatrix und zeichnest dann im ortho Modus.
Eine andere Möglichkeit wäre, zwei oder mehr Renderkontexte einzusetzen (kannst du ja auch auf einem Formular machen, wenn du z.B. mehrere Panelkomponenten verwendest). Aus eigener Erfahrung kann ich dir aber sagen, dass vor allem ältere Grafikkarten so ihre Problemchen mit mehreren Renderkontexten haben.
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.