先来回答你的问题。
无法显示的原因,投影设置的视见体没有将你定义的矩形模型包括在内。
直观来讲,你可以将gluOrtho2D试着调整为:
gluOrtho2D(-100,300.0,-100,300.0)同时设置背景为黑色,则得到效果:
进步一解释:
OpenGL中图形成像依赖于你定义的模型,比如你设置的4个position1
量以及投影时设置的投影参数,比如你用的gluOrtho2D。
你的代码中模型和投影参数设置都不是很理想,使用gluOrtho2D设置的正交投影裁剪平面的范围
(0,40.0,30.0,150.0)没有将你要显示的矩形模型包括在显示区域内,因此无法渲染。
注意设置适当的参数,这是初学者需要耐心学习的。你的代码看起来很混乱,最好采用一本适当教材(红宝书),或者跟着一个教程(搜索 OpenGL tutorial)实际动手学习。
对于这个例子,同时思考: 为什么是三角形而不是矩形?
为什么我之前的图形没有显示出来?
阴影映射—OpenGL实现典型的阴影比较过程
glBindTexture(GL_TEXTURE_2D, depthMap)//绑定深度图纹理
glEnable(GL_TEXTURE_2D)
//启用深度比较
glTexParameteri(GL_TEXTURE_2D,
GL_TEXTURE_COMPARE_MODE_ARB,
GL_COMPARE_R_TO_TEXTURE)
//深度比较函数 (if r <=texture then not in shadow)
glTexParameteri(GL_TEXTURE_2D,
GL_TEXTURE_COMPARE_FUNC_ARB, GL_LEQUAL)
//深度比较应产生的结果的形式
glTexParameteri(GL_TEXTURE_2D,
GL_DEPTH_TEXTURE_MODE_ARB,
GL_ALPHA)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)