Ogre着色方式和光照模型(shading mode vs lighting model)
2014-01-10 15:34
543 查看
(1) 着色方式shading
Ogre有三种着色方式,分别为shading flat/gouraud/phong。当动态光照打开时,该选项的作用是生成每个顶点的颜色,决定是否在该三角面上插值及如何插值。
Flat不进行插值,每个三角面的颜色都由该三角面的第一个顶点色决定;
Gouraud对三角面上每个顶点颜色进行线性插值计算;
Phong对三角面上的顶点法线进行插值,并以此决定每个像素的颜色。效果好,代价高。当前没有硬件支持此属性(详见官网和论坛)
默认为Gouraud。
(2) 光照模型lighting/illumination
固定管线中的光照模型可见链接。其他光照模型是在Shader中实现的,可以有全局光照模型和局部光照模型,常用的几种基础局部光照模型为:
Lambert,Phong和Blinn-Phong。详见链接。
(3)Phong lighting和Phong shading
很多人把冯氏光照(Phong lighting)和冯氏着色(Phong shading)混淆到一起。冯氏着色是指计算基于每像素的与表面法向量的插值过程。你可以对每个像素做你喜欢的光照效果,或者对每个顶点做冯氏光照计算,而在物体表面使用高洛德着色(Gouraud shading)。
冯氏光照是由Phong Bui-Tuong在1975年提出的,由于冯氏模型使用一般的文本比较难表示,具体分析可见链接。
Update 2012/06/06:
固定管线的光照模型就是按照Phong lighting来计算的,不过是按照per vertex计算的,而使用Fragment shader可按照per pixel计算,可以获得更平滑的效果。
Ogre有三种着色方式,分别为shading flat/gouraud/phong。当动态光照打开时,该选项的作用是生成每个顶点的颜色,决定是否在该三角面上插值及如何插值。
Flat不进行插值,每个三角面的颜色都由该三角面的第一个顶点色决定;
Gouraud对三角面上每个顶点颜色进行线性插值计算;
Phong对三角面上的顶点法线进行插值,并以此决定每个像素的颜色。效果好,代价高。当前没有硬件支持此属性(详见官网和论坛)
默认为Gouraud。
(2) 光照模型lighting/illumination
固定管线中的光照模型可见链接。其他光照模型是在Shader中实现的,可以有全局光照模型和局部光照模型,常用的几种基础局部光照模型为:
Lambert,Phong和Blinn-Phong。详见链接。
(3)Phong lighting和Phong shading
很多人把冯氏光照(Phong lighting)和冯氏着色(Phong shading)混淆到一起。冯氏着色是指计算基于每像素的与表面法向量的插值过程。你可以对每个像素做你喜欢的光照效果,或者对每个顶点做冯氏光照计算,而在物体表面使用高洛德着色(Gouraud shading)。
冯氏光照是由Phong Bui-Tuong在1975年提出的,由于冯氏模型使用一般的文本比较难表示,具体分析可见链接。
Update 2012/06/06:
固定管线的光照模型就是按照Phong lighting来计算的,不过是按照per vertex计算的,而使用Fragment shader可按照per pixel计算,可以获得更平滑的效果。
相关文章推荐
- php __set()和__get()函数
- USACO 4.3 Street Race&The Primes(跪了)
- 页面跳转的几种方法
- ios 耳机线控
- POJ-3267 The Cow Lexicon 简单DP
- flex可拖动的panel
- 用户身份的切换小结
- C++中指针和引用的区别分析
- 从解耦谈设计模式
- 最近的一些总结
- ****Android自定义组件之一:View详解
- 正则表达式
- 【转】高手速成android开源项目
- 模电的九个境界
- .Net设计模式_工厂模式(3)
- Oracle 10g数据库概述
- C#调用WebService
- iOS UIImageView 显示不规则图片只显示图片一部分保证图片不被压缩
- Enumerable的判断是否包含某个元素
- CocoaChina代码库推荐(1月10日):Flickr类型的瀑布流 Foursqaure app图片展示效果