游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1878|回复: 1

请教OPENGL聚光灯的问题

[复制链接]

9

主题

29

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2005-7-30 08:23:00 | 显示全部楼层 |阅读模式
我在程序里使用了OPENGL聚光灯
float light_ambient[] = {0.9,0.9,0.9,1.0};
float light_diffuse[] = {1.0,1.0,1.0,1.0};
float light_specular[] = {1.0,1.0,1.0,1.0};
float light_position[] = {0.0,2.0,0.0,1.0};
glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);
glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);
glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);
glLightfv(GL_LIGHT0,GL_POSITION,light_position);

float spot_direction[] = {0.0,-1.0,0.0};
glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,spot_direction);
glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,45.0);

glEnable( GL_LIGHTING );
glEnable(GL_LIGHT0);       
并画了一个正方形:       
glBegin(GL_POLYGON);
glVertex3f(-4.0f,0.0f ,4.0f);
glVertex3f(4.0f,0.0f, 4.0f);
glVertex3f(4.0f,0.0f,-4.0f);
glVertex3f(-4.0f,0.0f,-4.0f);
glEnd();       
可是当我用gluLookAt(x,1.7f,z,x+h,1.7f,z+v,0.0f,1.0f,0.0f);移动观察点时,聚光灯打在正方形上的光斑随着观察点的变化时有时黑,完全不符合物理规律,而我以前在D3d下做聚光灯就没有出现这种问题.请教各位能否帮我解答多谢了.另外如果GL里要使用阴影该如何实现.GL自己是否就支持阴影渲染.

8

主题

182

帖子

268

积分

中级会员

Rank: 3Rank: 3

积分
268
发表于 2005-7-31 10:08:00 | 显示全部楼层

Re: 请教OPENGL聚光灯的问题

顶点要有法线,灯光才能有影响的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-26 15:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表