|
发表于 2007-10-17 10:36:00
|
显示全部楼层
Re: 请教:关于《OpenGL编程指南》上的shadowmap的程序
因为从光这个位置看,在深度缓存中只有最靠近它的象素深度值,默认设置是glDepthFunc(GL_LESS),这样背面的深度值自然不在其中,再下面这几行代码
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, GL_LESS );
glTexParameteri( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE );
它将执行从视点所看到的点转换成相对于从光看这点的深度值,如比深度缓存中保存的具有相同S,T坐标的R值大,则说明该点前有阻挡,该点是阴影点,自然物体不面向光的部份也是黑的,显得不真实.
|
|