Ich möchte den Ansichtsvektor erhalten. Danach möchte ich den Winkel zwischen dem Normal- und dem Ansichtsvektor berechnen, um zu bestimmen, welche Flächen vollständig sichtbar, teilweise sichtbar und nicht sichtbar sind.Verständnis der Mathematik hinter dem View-Vektor in OpenGL
Eine ähnliche Frage sight vector in opengl könnte etwas Licht zu diesem Thema geben. Bitte korrigiere mich, wenn ich falsch liege, die Sichtlinie in 1 ist die gleiche wie der Ansichtsvektor. Wenn dies der Fall ist, werden die Grundlagen nicht klar dargestellt und die Diskussion könnte die Dinge für einen neuen Anfänger klären.
Das Problem ist, die Theorie in Code zu verbinden und zu verstehen, was sind ProjectionMat, ModelView, Vetexpos und wie man es erhält? Ich nehme an, es kann als solches erhalten:
glGetFloatv(GL_PROJECTION_MATRIX, projection);//returns the matrix of projectionview
glGetFloatv(GL_MODELVIEW_MATRIX, modelview); //returns the identity matrix of modelview`
Doch wie man die vertexpos bekommen hat? Finden Sie außerdem das Kreuzprodukt der gesamten Matrix oder nur für die x, y, z-Koordinaten?
Wenn dies nicht der richtige Weg ist, um den Ansichtsvektor zu berechnen, wie erreicht man?
Ich bin verwirrt. Sie benötigen den View-Vektor, um Ihre Kameramatrix (View-Matrix) mit Hilfe von gluLookAt einzurichten. –
Nein meine Kamera ist eingerichtet. Die gluLookAt Werte sind (30,20,35, 0,0,0, 0,1,0). Um besser zu verstehen, in welche Richtung ich gehe [link] (http://forum.devmaster.net/t/which-view-vector-to-use-for-back-face-culling/6319). Der Ansichtsvektor kann in der Rückseitenauslese-Methode verwendet werden. Ich möchte nicht rückwärts cullen. Ich möchte die Gesichter bestimmen, die sichtbar, teilweise sichtbar und nicht sichtbar sind. Dies wird erhalten, indem zuerst der Ansichtsvektor abgerufen wird. Ich verstehe die Theorie, aber ich kämpfe um es zu implementieren. – Sade
(0,0,0) - (30,20,35)? – Mars