OpenGL ES2.0中shader,当顶点坐标做旋转和平移的过程中,顶点法向量不需要要做相应的旋转
2016-10-20 16:36
543 查看
1.问题说明:一组三角面片的数据模型,首先把它的中心放置在(0,0,0)坐标处,然后设置光照方向、环境光、散射光和镜面光。之后需要把三角面片的顶点坐标经过旋转和平移转换到另外一个坐标系内,发现3D模型就是一坨,看不见任何层次,表面也辨别不清楚。
2.原因:
1.一直以为是光照方向和光照参数设置不当导致的,最后发现是不应该把法向量也旋转和平移。
2.此问题还有一个方法证明,在《Android 3D游戏开发技术宝典》关于定位光或者定向光的历程中,vertex.sh文件如下所示:物体模型在经过旋转和平移变换后,在main()函数中,只需要改变顶点的坐标,并不需要对其法向量进行旋转和平移变换。
2.原因:
1.一直以为是光照方向和光照参数设置不当导致的,最后发现是不应该把法向量也旋转和平移。
2.此问题还有一个方法证明,在《Android 3D游戏开发技术宝典》关于定位光或者定向光的历程中,vertex.sh文件如下所示:物体模型在经过旋转和平移变换后,在main()函数中,只需要改变顶点的坐标,并不需要对其法向量进行旋转和平移变换。
相关文章推荐
- OpenGL ES2.0---凿岩车钻臂3D案例之加载顶点shader和片元shader类的方法
- [置顶] OpenGL ES总结(二)OpenGL坐标变换之平移及旋转
- OpenGL ES 2.0 Shader相关介绍
- [原]OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解
- OpenGL绘图过程中,平移后再次旋转,旋转中心为什么变了?
- OpenGL ES 2.0 向量
- openGL ES 2.0 3维物体的平移(II)
- OpenGL ES2.0教程:编写自己的shader(2)
- OpenGL ES 2.0 Shader相关介绍
- Cocos2dx-OpenGL ES2.0教程:编写自己的shader(2)
- OpenGL ES2.0教程:编写自己的shader(2)
- OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解
- shader数学基础之顶点法向量从物体坐标系变换到世界坐标系
- [OpenGL ES 04]3D变换实践篇:平移,旋转,缩放
- shader学习基础之十一实现纹理的缩放平移和旋转,以及用c#代码合并两种贴图并且控制位置
- 世界坐标变换要先缩放、后旋转、再平移的原因
- 坐标轴的平移和旋转
- Cocos2d-x中使用OpenGL ES2.0编写shader
- 【Android 应用开发】OpenGL ES 2.0 -- 制作 3D 彩色旋转三角形 - 顶点着色器 片元着色器 使用详解
- OpenGL 旋转平移之后的坐标获取