簡體   English   中英

創建反射Opengl

[英]Creating a Reflection Opengl

我試圖將一個旋轉的立方體反射到XZ平面上(所以最終這是3D到2D的投影)。 但是,將我的立方體投影到XZ平面上的點是重疊的,這是預期的,這是由於立方體是3D且存在具有相同X值但y值不同的點(將2個點投影到同一點上) )。

我的問題是,我如何只投影立方體上要投影到的平面可見的點?

glLoadIdentity();

        glEnable(GL_DEPTH_TEST);
        glCullFace(GL_BACK);

        glTranslatef(0.0f, 0.0f, -5.0f);

        GLfloat matrix[16] = {1.0, 0.0, 0.0, 0.0, 
                              0.0, 0.0, 0.0, 0.0, 
                              0.0, 0.0, 1.0, 0.0, 
                              0.0, 0.0, 0.0, 1.0};

        glPushMatrix();
            glRotatef(angle, 1.0f, 1.0f, 1.0f);

            glBegin(GL_TRIANGLES);
                DrawCube();     
            glEnd();
        glPopMatrix();

        glPushMatrix();
            glTranslatef(0.0f, -1.0f, 0.0f);
            glMultMatrixf(matrix);
            glRotatef(angle, 1.0f, 1.0f, 1.0f);

            glBegin(GL_TRIANGLES);
                DrawCube();
            glEnd();
        glPopMatrix();

將旋轉的立方體反射到XZ平面上(因此最終這是3D到2D的投影)。

反射不是奇異的投影(您將3D稱為2D)。 反射的縮放比例為-1,在您需要的情況下,縮放比例為glScalef(1, -1, 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM