opengl探照灯效果的问题

Dracuuula Dracuuula 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <GL/glut.h>
#include <stdlib.h>

//三角形顶点坐标
static GLfloat verts[6] =
{
-200.0, -200.0,
0.0, 200.0,
200.0, -200.0
};

//顶点坐标法线向量
static GLfloat norverts[9] =
{
0,0,1,
0,0,1,
0,0,1
};



static void init(void)
{

glClearColor (0.0, 0.0, 0.0, 0.0);

GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
GLfloat mat_shininess[] = { 50.0 };
GLfloat light_position0[] = { 0.0, 0.0, 350.0, 1.0 };


glShadeModel (GL_SMOOTH);

glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);

glLightfv(GL_LIGHT0, GL_POSITION, light_position0);

glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 30.0);//探照灯角度

glEnable(GL_NORMALIZE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);

}

static void display(void)
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glEnable(GL_NORMALIZE);
glVertexPointer(2, GL_FLOAT, 0, verts);
glNormalPointer(GL_FLOAT, 0, norverts);

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
/*draw the object*/
glDrawArrays(GL_TRIANGLES, 0, 3);

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);

glFlush ();
}

static void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity();

glOrtho (-0.5*w, 0.5*w, -0.5*h, 0.5*h, -10.0, 10.0);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

}

/* ARGSUSED1 */
static void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize (600, 600);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
以上是我写的一个程序,本以为会出来从三角形中间向四周逐渐变暗的效果
结果出来一个从最上面的顶点到下面逐渐变暗的效果。

那位大牛给解决以下,或者给个解释之类的。
谢了!
...全文
评论 3
收藏 已收藏
分享
返回顶部
Dracuuula
其它技术问题 3,881 成员 9,044 内容