您的位置:首页 > 移动开发 > Unity3D

Unity3D Shader官方教程翻译Unity3D 的渲染管道

2014-06-03 11:33 351 查看
Unity's Rendering Pipeline

Shaders define both how an object looks by itself (its material properties) and how it reacts to the light. Because lighting calculations must be built into the shader, and there are many possible light & shadow
types, writing quality shaders that "just work" would be an involved task. To make it easier, Unity 3 introduces Surface
Shaders, where all the lighting, shadowing, lightmapping, forward vs. deferred lighting things are taken care of automatically.

着色器定义一个物体的外观如何(其材料特性),以及它对光的反应。由于光照计算,必须建立到着色器中,并有可能用到许多光与阴影类型,编写高质量的着色器,“只是工作”将是一个复杂的任务。为了更方便,Unity3d介绍了Surface
Shaders,其中所有的照明,阴影,lightmapping,与延迟照明的东西都被自动处理。

This document describes the pecularities of Unity's lighting & rendering pipeline and what happens behind the scenes of Surface
Shaders.

本文档介绍了Unity3d灯光渲染管线的特点和表面着色的场景背后发生了什么。

Rendering Paths

渲染路径

How lighting is applied and which Passes of the shader
are used depends on whichRendering Path is used. Each pass in a shader communicates its lighting
type via Pass Tags.

照明被如何应用取决于着色器使用了啥样的渲染路径。在着色器中的每一个通道,通过通道标签类型来计算它的光照类型。

In Deferred
Lighting,

PrepassBase

and

PrepassFinal

passes are used. 延迟照明,使用PrepassBase和PrepassFinal通道。

In Forward
Rendering,

ForwardBase

and

ForwardAdd

passes are used. 正向渲染,使用ForwardBase和ForwardAdd通道。

In Vertex
Lit,

Vertex

,

VertexLMRGBM

and

VertexLM

passes are used. 顶点光照,使用Vertex,VertexLMRGBM VertexLM通道。

In any of the above, to render Shadows,

ShadowCaster

and

ShadowCollector

passes are used. 在上述任何一种,都用了渲染阴影, 使用ShadowCaster 和ShadowCollector通道。

Deferred Lighting path

延迟照明路径

PrepassBase

pass renders normals & specular exponent;

PrepassFinal

pass renders final color by combining textures, lighting & emissive material properties. All regular in-scene lighting is done separately in screen-space. See Deferred
Lighting for details.

PrepassBase通道渲染法线和镜面反射指数; PrepassFinal通道通过纹理,照明及发光材料的性能相结合的方式渲染最终的颜色。所有现场照明都是在屏幕空间中立完成的。延迟照明的详细信息请查看:Deferred
Lighting 。

Forward Rendering path

正向渲染路径

ForwardBase

pass renders ambient, lightmaps, main directional light and not important (vertex/SH) lights at once.

ForwardAdd

pass is used for any additive per-pixel lights; one invocation per object illuminated by such light is done. See Forward
Rendering for details.

ForwardBase通道渲染环境,光线贴图,主要的方向光,和不重要的 (vertex/SH) 光线被一次处理。ForwardAdd 通道被用于处理附加的逐像素光照;。一次调用使逐个物体发光。查阅正向光照细节: Forward
Rendering 。

If forward rendering is used, but a shader does not have forward-suitable passes (i.e. neither

ForwardBase

nor

ForwardAdd

pass types are present), then that object is rendered just like it would in Vertex Lit path, see below.

如果正向渲染被使用,但着色器没有forward-suitable通道(既不存在ForwardBase的也不存在ForwardAdd通道类型),那么该对象被渲染成类似它在顶点光照路径中的那样,请参阅下文。

Vertex Lit Rendering path

顶点光照的渲染路径

Since vertex lighting is most often used on platforms that do not support programmable shaders, Unity can't create multiple shader permutations internally to handle lightmapped vs. non-lightmapped cases. So to
handle lightmapped and non-lightmapped objects, multiple passes have to be written explicitly.

由于顶点光照是最常用在那些不支持可编程着色器的平台上,Unity不能创建多个着色器的排列在内部处理lightmapped与非lightmapped的情况。因此,处理多lightmapped 和non-lightmapped objects的多通道必须被显式写入。

Vertex

pass is used for non-lightmapped objects. All lights are rendered at once, using a fixed function OpenGL/Direct3D lighting model (Blinn-Phong)
顶点通道用于非lightmapped对象。所有光照均被渲染一次,使用一个固定的功能OpenGL/Direct3D光照模型(Blinn-Phong

VertexLMRGBM

pass is used for lightmapped objects, when lightmaps are RGBM encoded (this happens on most desktops and consoles). No realtime lighting is applied; pass is expected to combine textures with a lightmap. VertexLMRGBM通道用于lightmapped对象,当lightmaps 是RGBM编码时(这种情况发生在大多数台式机和游戏机)。没有实时光照应用,通道通过结合纹理与光照使用。

VertexLMM

pass is used for lightmapped objects, when lightmaps are double-LDR encoded (this happens on mobiles and old desktops). No realtime lighting is applied; pass is expected to combine textures with a lightmap. VertexLMM通道用于lightmapped对象,当lightmaps 是双LDR编码时候(这种情况发生在手机和旧的台式机)。没有实时光照应用,通道通过结合纹理与光照使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: