shader 3 rendering path

渲染通道, rendering path。 vertexlit, forward 和 Deferred lighting


旧有的非统一架构下: 分为顶点着色引擎和像素渲染通道

渲染通道是GPU负责给图像配色的专门通道; 越多,填充效率越高,流畅性越好。

http://wenwen.sogou.com/z/q103129905.htm


採用统一架构后, 渲染通道既负责顶点渲染又负责像素渲染。


GPU对于图像渲染时的逻辑并行运算数。

而不是物理数量。







http://blog.csdn.net/bugrunner/article/details/7436600

http://blog.csdn.net/xuehuic/article/details/8701341

from   http://unity3d.9ria.com/?p=563

怎样设置渲染通道:在Edit -> Project Setting -> Player中Inspector面板以下,三种公布类型里都有一个渲染通道的设置。

另外,每一个摄像机的Inspector面板中,也都有一个渲染通道Rendering Path的设置。 6.渲染通道与shader的关系。 Deferred Lighting通道类型不关心有多少个光源会影响它,每一个物体一般都会绘制两次。相似地。Vertex Lit 仅仅绘制一次。所以对于这两种类型来说,shader对表现效果的改变大多在于多重纹理方面。

Forward 通道类型的表现效果要取决于shader和场景中的光源。它有两种主要的计算方式Vertex-Lit 和 Pixel-Lit。能够翻译为逐顶点渲染法和逐像素渲染法吧应该,相应着D3D中的顶点着色和像素着色过程。

Vertex-Lit 用于对网格模型表面顶点进行光照计算。一次性将全部光源的影响都计算在内,所以不管场景中有多少个光源,这样的方式绘制的物体仅仅绘制一次。

Pixel-Lit 会计算每一个像素上面终于的光照,因此一个物体必须先呗绘制一次来获得环境光和主方向光的光照信息,再绘制一次来获得其它每一个额外的光源信息。应用Pixel-Lit的物体的大小也会影响绘制的效率。越大的物体,绘制越慢。 Vertex-Lit 的开销大于Pixel-Lit,可是Pixel-Lit能够提供非常多非常好的效果。

7.Unity3D中的shader是通过改变那些直接影响游戏对象的材质来使用的。


综上看, 手机游戏应该是forward通道:vertex+fragment  /  surface。  正向渲染。

最亮的几个光源使用像素光照。 最多4个点光源以住店渲染方式被计算, 其它以球面调和。

http://game.ceeger.com/Components/RenderTech-ForwardRendering.html


顶点照明渲染, vertex lit rendering path ;  与 vertex shader不一样。不同层次的概念。

forward/vertex lit渲染通道 都可能会使用vertex shader + frament shader


Unity会运行一个pass最先匹配上的; 优先选择light model最匹配的, 没有则选择次匹配的。 如。 假设相机为Deferred rendering path, subshader中无Deferred, 则使用forward。否则使用Vertex lit.; 以及会运行未指定light model的pass

posted @ 2017-07-08 16:25  llguanli  阅读(167)  评论(0编辑  收藏  举报