OpenGL ES 正反面的灯光照射初探

OpenGL ES 正反面的灯光照射初探

太阳火神的美丽人生 (http://blog.****.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。


在  OpenGL ES 中如何实现在房间中查看屋内摆设的效果 中我们已经做到了,只查看一个几何体的内部,但内部是黑的。

这个问题涉及到灯光,那么我们可以思考一下,这一部分之所有能看到是顶点按反向做为正面,而且告诉了GPU只渲染正面,但我们提供的法线是决定灯光是如何在每个顶点上被反射的,那么就可以理解了,灯光还是按原来的方向反射,这时我们考虑让法线反过来,这样内面就可以被灯光照射到了。


做起来很简单,不用像1.1中那橛,需要设置glLightMode来改变灯光模式,估计固定渲染管线中内部封装的也是改变法线的做法吧。

我们在2.0中,因灯光相关的API都取消了,所有的灯光计算都在着色器中进行,并作用到最后的片元颜色上,那么法线这种决定灯光的东西,也得直接到着色器中去做了。直接给法线变量前加个负号,这样就可以将你提供的模型中的顶点属性的法线部分取反向了。

上一篇:Photoshop 漂亮的Bus图标


下一篇:PS鼠绘粉色长发女孩教程