位置: 编程技术 - 正文
推荐整理分享学习Nehe Lesson 16(学习英语),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:学习化妆的学校,学习软件,学习通,学习雷锋好榜样,学习雷锋好榜样歌词,学习通,学习英语,学习化妆的学校,内容如对您有帮助,希望把文章链接给更多的朋友!
这一课的基础是第六课、第七课,要先画一个正方体出来,实现它的旋转、光照等控制。在这里对雾的设置全在InitGL() 函数中。 首先是载入材质、清空深度缓存,打开深度测试,等等。接下来就是雾的设置函数。
能看出来,这里的几个函数都十分相似,它们都是glFog函数。glFogf, glFogi, glFogfv, glFogiv的不同在于后面的参数不同。 先看函数的说明。
其中,pname是指定的一个单值雾参数。可以是GL_FOG_MODE、GL_FOG_DENSITY GL_FOG_START、GL_FOG_END GL_FOG_INDEX。
pname可以是GL_FOG_MODE、GL_FOG_DENSITY、 GL_FOG_START、GL_FOG_END、 GL_FOG_INDEX、GL_FOG_COLOR。
注意,这四个函数差别很细微,前两个的功能后两个都有,但后两个比前两个多了颜色控制的功能,而后两个的数值参数是const型(复习const,可以看: )。而第一个和第三个的数字量是GLfloat,第二个和第四个是GLint。 接下来看这几个参数和取值范围。 GL_FOG_MODE 参数是一个整数或浮点值,指定要使用的方程来计算雾混合因素,f。可以是三个符号常量:GL_LINEAR GL_EXP,GL_EXP2。相应的有不同的计算方程。默认GL_EXP雾模式。 GL_FOG_DENSITY 参数是指定一个整数或浮点值密度,用于指数雾雾密度方程。只接受非负密度。默认的灰雾密度是1.0。 GL_FOG_START 参数是指定一个整数或浮点值开始,近距离用于线性雾方程。默认的距离是0.0。 GL_FOG_END 参数是指定一个整数或浮点值,远距离用于线性雾方程。默认的距离是1.0。 GL_FOG_INDEX 参数是指定一个整数或浮点值,作为雾色指数。默认的雾指数为0.0。 GL_FOG_COLOR 参数包含四个整数或浮点值,指定Cf,雾的颜色。整数值线性映射,这样是最积极的可表示的值映射到1.0,最消极的可表示的值映射到-1.0。浮点值直接映射。转换后,所有颜色组件夹区间[0,1]。默认的是雾颜色(0,0,0,0)。
glFog()函数之后是glHint()函数。这个函数是用于修正的。 参数如下: GL_FOG_HINT 指示雾计算的准确性。 如果 OpenGL 实现不有效地支持每像素雾计算,提示 GL_DONT_CARE 或 GL_FASTEST 会导致每个顶点雾化效果计算。 GL_LINE_SMOOTH_HINT 指示是锯消除行的采样质量。如果应用了一个较大的筛选器函数,则将提示 GL_NICEST 可能会导致生成过程中栅格化,更多像素碎片。 GL_PERSPECTIVE_CORRECTION_HINT 表示颜色和纹理坐标插补的质量。 如果角度更正参数插值不有效地支持由 OpenGL 实现,提示 GL_DONT_CARE 或 GL_FASTEST 可以导致简单线性插值的颜色和/或纹理坐标。 GL_POINT_SMOOTH_HINT 表示是锯消除点采样的质量。 如果应用了一个较大的筛选器函数, 则将提示 GL_NICEST 可能会导致生成 过程中栅格化,更多像素碎片。 GL_POLYGON_SMOOTH_HINT 指示是锯消除多边形的采样质量 。如果应用了一个较大的筛选器函数,则将提示GL_NICEST 可能会导致生 成过程中栅格化, 更多像素碎片。 取值如下: GL_FASTEST 应选择最有效的选项。 GL_NICEST 应选择最正确或最高质量的选项。 GL_DONT_CARE 客户端没有一个首选项。
Nehe的解释是这样的:“glHint (GL_FOG_HINT, GL_DONT_CARE); 设置修正。我使用了GL_DONT_CARE因为我不关心它的值。gl_dont_care - 由OpenGL决定使用何种雾效(对每个顶点还是每个像素执行雾效计算)和一个未知的公式(?)gl_nicest - 对每个像素执行雾效计算(效果好)。gl_fastest - 对每个顶点执行雾效计算 (更快,但效果不如上面的好)
雾的设置就这样完成了。
opengl 一些api (OpenGL中的物体坐标一律采用齐次坐标,即(x,y,z,w),故所有变换矩阵都采用4X4矩阵)所谓齐次坐标就是将一个原本是n维的向量用一个n1维向量来表示。
OpenCV2学习笔记(十七):VS中运行支持OpenGL的OpenCV工程 之前一直用Qt+OpenCV开发项目,而在VS中直接偷懒使用预编译的OpenCV进行开发,结果在使用OpenGL时提示NoOpenGLsupport:上网查了一下,原因很明显,是因为预
OpenGL画蜗型线、心形线、三叶曲线、四叶曲线、螺旋线 这里讲的是一些有趣而美丽的曲线,蜗型线、心形线、三叶曲线、四叶曲线、螺旋线等,都是由圆公式的一些特殊的变化带来的,我们使用了参数极坐
标签: 学习英语
本文链接地址:https://www.jiuchutong.com/biancheng/369627.html 转载请保留说明!友情链接: 武汉网站建设