不带光C++的OpenGL-平面着色

0 c++ opengl

我已经实现了一个网格.它可以用线框渲染(三角形),但现在我想应用平面着色渲染,我得到的是没有体积的图,纯白色.

这是我用的:

for(int i=0; i<mesh->nt; i++) {
    glShadeModel(GL_FLAT);
    glBegin(GL_TRIANGLES);


    int i0 = mesh->triangles[i].vInds[0];
    int i1 = mesh->triangles[i].vInds[1];
    int i2 = mesh->triangles[i].vInds[2];

    Vector n1 = GetNormal(mesh->vertices[i0], mesh->vertices[i1], mesh-                  >vertices[i2]);

    glNormal3dv((double *)&n1);

    glVertex3dv((double *)&mesh->vertices[i0]);
    glVertex3dv((double *)&mesh->vertices[i1]);
    glVertex3dv((double *)&mesh->vertices[i2]);

    glEnd();
}   
Run Code Online (Sandbox Code Playgroud)

我计算了三角形的法线但没有任何效果.任何的想法?

Bar*_*icz 6

如果您未启用灯光/灯光,则三角形不会被加阴影.就那么简单.