请问用c#做OPENGL光照模型时的法向量怎么做呢?麻烦帮我看一下程序对吗?为什么我做出来的图形怪怪的GL.glBegin(GL.GL_TRIANGLES); GL.glNormal3f(5f, 2.5f, 2.5f); GL.glVertex3f(1.0f, 1.0f, 0.0f);
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/28 11:17:42
![请问用c#做OPENGL光照模型时的法向量怎么做呢?麻烦帮我看一下程序对吗?为什么我做出来的图形怪怪的GL.glBegin(GL.GL_TRIANGLES); GL.glNormal3f(5f, 2.5f, 2.5f); GL.glVertex3f(1.0f, 1.0f, 0.0f);](/uploads/image/z/11054160-0-0.jpg?t=%E8%AF%B7%E9%97%AE%E7%94%A8c%23%E5%81%9AOPENGL%E5%85%89%E7%85%A7%E6%A8%A1%E5%9E%8B%E6%97%B6%E7%9A%84%E6%B3%95%E5%90%91%E9%87%8F%E6%80%8E%E4%B9%88%E5%81%9A%E5%91%A2%3F%E9%BA%BB%E7%83%A6%E5%B8%AE%E6%88%91%E7%9C%8B%E4%B8%80%E4%B8%8B%E7%A8%8B%E5%BA%8F%E5%AF%B9%E5%90%97%3F%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%81%9A%E5%87%BA%E6%9D%A5%E7%9A%84%E5%9B%BE%E5%BD%A2%E6%80%AA%E6%80%AA%E7%9A%84GL.glBegin%28GL.GL_TRIANGLES%29%3B++++++++++++GL.glNormal3f%285f%2C+2.5f%2C+2.5f%29%3B++++++++++++GL.glVertex3f%281.0f%2C+1.0f%2C+0.0f%29%3B)
٥a8&WL N^)nٗi7$ڔ|;Mxbf>5ȒRma(6_@%v'O*㱃~ʛH|Nu/eK.% cc(Njea[Pi%_T5FoN+fX@F_LwLb %cul +%݂pf*rofq}аׯr|TN请问用c#做OPENGL光照模型时的法向量怎么做呢?麻烦帮我看一下程序对吗?为什么我做出来的图形怪怪的GL.glBegin(GL.GL_TRIANGLES); GL.glNormal3f(5f, 2.5f, 2.5f); GL.glVertex3f(1.0f, 1.0f, 0.0f);
请问用c#做OPENGL光照模型时的法向量怎么做呢?麻烦帮我看一下程序对吗?为什么我做出来的图形怪怪的
GL.glBegin(GL.GL_TRIANGLES);
GL.glNormal3f(5f, 2.5f, 2.5f);
GL.glVertex3f(1.0f, 1.0f, 0.0f);
GL.glVertex3f(0.0f, 0.0f, 5.0f);
GL.glVertex3f(2.0f, 0.0f, 0.0f);
GL.glEnd();
GL.glBegin(GL.GL_TRIANGLES);
GL.glNormal3f(2.5f, -7.5f, 2.0f);
GL.glVertex3f(2.0f, 0.0f, 0.0f);
GL.glVertex3f(0.0f, 0.0f, 5.0f);
GL.glVertex3f(1.0f, -1.0f, 0.0f);
GL.glEnd();
GL.glBegin(GL.GL_TRIANGLES);
GL.glNormal3f(2.5f, -2.5f, 0f);
GL.glVertex3f(1.0f, -1.0f, 0.0f);
GL.glVertex3f(0.0f, 0.0f, 5.0f);
GL.glVertex3f(-1.0f, -1.0f, 0.0f);
GL.glEnd();
GL.glBegin(GL.GL_TRIANGLES);
GL.glNormal3f(5.0f, 0f, 2.0f);
GL.glVertex3f(-1.0f, -1.0f, 0.0f);
GL.glVertex3f(0.0f, 0.0f, 5.0f);
GL.glVertex3f(-2.0f, 0.0f, 0.0f);
GL.glEnd();
GL.glBegin(GL.GL_TRIANGLES);
GL.glNormal3f(2.5f, 2.5f, 0f);
GL.glVertex3f(-2.0f, 0.0f, 0.0f);
GL.glVertex3f(0.0f, 0.0f, 5.0f);
GL.glVertex3f(-1.0f, 1.0f, 0.0f);
GL.glEnd();
GL.glBegin(GL.GL_TRIANGLES);
GL.glNormal3f(2.5f, 10f, 2.5f);
GL.glVertex3f(-1.0f, 1.0f, 0.0f);
GL.glVertex3f(0.0f, 0.0f, 5.0f);
GL.glVertex3f(1.0f, 1.0f, 0.0f);
GL.glEnd();
其中GL.glVertex3f(X, Y, Z);为七面椎体的顶点坐标
GL.glNormal3f(X, Y, Z);为七面椎体的顶点法向量
其计算公式为1/2*(相邻两个平面的法向量的叉乘)
请问我这是哪里错了呢?为什么做出来的七面椎体的光照模型不明显呢?加了法向量反而更怪了呢
不好意思 上面写错了
GL.glNormal3f(X, Y, Z);为七面椎体的顶点法向量
其计算公式为1/2*(相邻两个平面的法向量的和)
请问我这是哪里错了呢?为什么做出来的七面椎体的光照模型不明显呢?加了法向量反而更怪了呢请问用c#做OPENGL光照模型时的法向量怎么做呢?麻烦帮我看一下程序对吗?为什么我做出来的图形怪怪的GL.glBegin(GL.GL_TRIANGLES); GL.glNormal3f(5f, 2.5f, 2.5f); GL.glVertex3f(1.0f, 1.0f, 0.0f);
一个顶点对应一个法线