unity defered和fast forward模式区别渲染模式的不同

/wonderKK/p/4031754.html
重要:在目前市面上常见的游戏引擎中,主要采用以下三种灯光实现方式:
顶点照明渲染路径细节&Vertex Lit Rendering Path Details
正向渲染路径细节&Forward Rendering Path Details
延迟光照渲染路径的细节&Deferred Lighting Rendering Path Details
以unity3d为例,以下将详细讲解三种灯光渲染方式的实现、原理及缺陷。
顶点照明渲染路径细节&Vertex Lit Rendering Path Details
Vertex Lit path generally renders each object in one pass, with lighting from all lights calculated at object vertices.
顶点照明渲染路径通常在一个通道中渲染物体,所有光源的照明都是在物体的顶点上进行计算的。
It's the fastest rendering path and has widest hardware support (however, keep in mind: it does not work on consoles).
顶点照明渲染路径是最快的渲染路径并且有最广泛的硬件支持(然而,请记住:它无法工作在游戏机上)。
Since all lighting is calculated at vertex level, this rendering path does not support most of per-pixel effects: shadows, normal mapping, light cookies, highly detailed specular highlights are
not supported.
由于所有的光照都是在顶点层级上计算的,此渲染路径不支持大部分的逐像素渲染效果:如,阴影、法线贴图、灯光遮罩、高精度的高光。
正向渲染路径细节&Forward Rendering Path Details
Forward Rendering path renders each object in one or more passes, depending on lights that affect the object. Lights themselves are also treated differently by Forward Rendering, depending on
their settings and intensity.
根据影响物体的光源的不同,正向渲染路径用单个或多个通道来渲染物体。在正向渲染中,光源本身也会根据他们的设置和强度受到不同的对待。
Implementation Details 实现细节
In Forward Rendering, some number of brightest lights that affect each object are rendered in fully per-pixel lit mode. Then, up to 4 point lights are calculated per-vertex. The other lights are
computed as Spherical Harmonics (SH), which is much faster but is only an approximation. Whether a light will be per-pixel light or not is dependent on this:
在正向渲染中,影响物体的最亮的几个光源使用逐像素光照模式。接下来,最多有4个点光源会以逐顶点渲染的方式被计算。其他光源将以球面调和(Spherical Harmonics)的方式进行计算,球面调和技术计算很快但只能得到近似值。根据以下的规则判断一个光源是否为逐像素光源:
Lights that have their Render Mode set to&Not Important&are always per-vertex or SH.&
渲染模式被设置为不重要(Not Important)的光源以逐顶点或球面调和的方式进行计算Brightest directional light is always per-pixel.&
最亮的方向光源为像素光源Lights that have their Render Mode set to&Important&are always per-pixel.&
渲染模式被设置重要(Important)的光源为像素光源If the above results in less lights than current&Pixel Light Count&, then more lights are rendered per-pixel, in order of decreasing brightness.&
如根据以上规则得到的像素光源数量小于质量设置中的像素光源数量(Pixel Light Count),为了减少亮度,会有更多的光源以逐像素的方式进行渲染
Rendering of each object happens as follows:
用以下的方法渲染每个物体:
Base Pass applies one per-pixel directional light and all per-vertex/SH lights.&
基础通道渲染一个逐像素方向光和所有的逐顶点/球面调和光。Other per-pixel lights are rendered in additional passes, one pass for each light.&
其他逐像素光在附加的通道中进行渲染,每个光源都需要一个通道
For example, if there is some object that's affected by a number of lights (a circle in a picture below, affected by lights A to H):
例如,如果有一个物体受到若干光源的影响(下图中的圆圈,受到光源A到H的影响)
Let's assume lights A to H have the same color & intensity, all all of them have Auto rendering mode, so they would be sorted in exactly this order for this object. The brightest lights will be
rendered in per-pixel lit mode (A to D), then up to 4 lights in per-vertex lit mode (D to G), and finally the rest of lights in SH (G to H):
假设光源A到H都有相同的颜色和强度,且它们的渲染模式都为自动的(Auto),那么它们严格的按照其名字排序。最亮的光源以逐像素光照模式的方式进行渲染(A到D),然后最多有4个光源以逐顶点光照模式进行渲染(D到G),其他光源以球面调和的方式进行渲染(G到H)。
for example last per-pixel light blends into per-vertex lit mode so there are less &light popping& as objects and lights move around.
注意不同的光照组间有重叠,如,最后一个逐像素光源也以逐顶点光照模式的方式渲染,这样能减少当物体和灯光移动时可能出现的&光照跳跃&现象。
Base Pass 基本通道
Base pass renders object with one per-pixel directional light and all SH lights. This pass also adds any lightmaps, ambient and emissive lighting from the shader. Directional light rendered in
this pass can have Shadows. Note that Lightmapped objects do not get illumination from SH lights.
基础通道用一个逐像素方向光和所有球面调和光渲染物体。此通道还负责渲染着色器中的光照贴图,环境光和自发光。在此通道中渲染的方向光可以产生阴影。需要注意的是,使用了光照贴图的物体不会得到球面调和光的光照。
Additional Passes 附加通道
Additional passes are rendered for each additional per-pixel light that affect this object. Lights in these passes can't have shadows (so in result, Forward Rendering supports one directional
light with shadows).
附加通道用于渲染影响物体的其他逐像素光源。这些通道中渲染的光源无法产生阴影(因此,前向渲染支持一个能产生阴影的方向光)。
Performance Considerations 性能注意事项
Spherical Harmonics lights are&very&fast to render. They have a tiny cost on the CPU, and are&actually free&for
the GPU to apply (that is, base pass always computes SH but due to the way SH lights work, the cost is exactly the same no matter how many SH lights are there).
渲染球面调和光很快。它们只花费很少的CPU计算时间,并且实际上无需花费任何GPU计算时间(换言之,基础通道会计算球面调和光照,但由于球面调和光的计算方式,无论有多少球面调和光源,计算它们所花费的时间都是相同的)。
The downsides of SH lights are:
球面调和光源的缺点有:
They are computed at object's vertices, not pixels. This means they do not support light Cookies or normal maps.&
它们计算的是物体的顶点而不是像素。这意味着它们不支持投影遮罩和发现贴图。SH lighting is very low frequency. You can't have sharp lighting transitions with SH lights. They are also only affecting the diffuse lighting (too low frequency for specular highlights).&
球面调和光只有很低的频率。球面调和光不能产生锋利的照明过渡。它们也只会影响散射光照(对高光来说,球面调和光的频率太低了)。SH ligh point or spot SH lights close to some surface will &look wrong&.&
球面调和不是局部的,靠近曲面的球面调和点光和聚光可能会&看起来不正确&。
In summary, SH lights are often good enough for small dynamic objects.
总的来说,球面调和光的效果对小的动态物体来说已经足够好了。
延迟光照渲染路径的细节&Deferred Lighting Rendering Path Details
Deferred Lighting is rendering path with the most lighting and shadow fidelity:
延迟光照是一种当前最高级的能实现光线和阴影保真的渲染路径
There's no limit how many lights can affect any object.&
对于能影响任何物体的光线数量没有上限All lights are evaluated per-pixel. Which means that they all interact properly with normal maps etc.&
完全采用以每像素的方式评估光线,这等于意味着全部将以正常贴图的方式正确的和物体交互All lights can have Cookies.&
所有光线都能拥有信息缓存All lights can have Shadows.&
所有的光线都能产生阴影
Deferred Lighting's advantages&延迟光照的优点:
Lighting cost is proportional to light size on screen. Does not matter how many objects it shines on. Small lights = cheap!&
光照的开销与屏幕的光线尺寸成正比,不用担心光线所照射的物品的数量,少量光线 等价于 廉价的花费Consistency. All lighting for all lights is computed per- there are no lighting computations that break down on large triangles etc.&
一致性,所有的光线的光照采用按像素为计算分割单位来计算。比如,不会有在大规模三角形情况下光照计算使计算性能发生崩溃的情况发生。
Disadvantages&缺点:
No real anti-aliasing support.&
没有实时抗锯齿支持Deferred Lighting can't handle semi-transparent objects. Those are rendered using Forward Rendering.&
延迟光照不能处理半透明物体,也不能用在哪些使用前向渲染的物体之上Limited lighting model support (Blinn-Phong). All lighting is c you can't have drastically different lighting models on different objects.&
有限的光照模式支持(Blinn-Phong)。所有光照以同样的方式计算,你不能够在不同的物体上采用完全不同的光照模式No support for &receive shadows& flag and limited support light Culling Masks.&
没有对接收阴影特征的支持和对光线遮罩剔除有限的支持
Requirements for Deferred Lighting 延时光照的需求
Requires&Unity Pro.&
需要Unity专业版Graphics card with Shader Model 3.0 (or later), support for Depth render textures and two-sided stencil buffer. Most graphics cards made after 2004 support it: GeForce FX and later, Radeon
X1300 and later, Intel 965 / GMA X3100 and later.&
显示卡支持Shader Model 3.0(或更高),深度纹理渲染和双面模板缓冲特性。许多2004年后的显卡都支持:如Geforce Fx或更高,Radeon X1300或更高 Intel 965/ GMA X3100 或更高Currently does not work on mobile platforms.&
目前在移动平台不支持。
Performance Considerations 性能注意事项
Cost of realtime lights in Deferred Lighting is proportional to number of pixels and&not&dependent on scene complexity. So small
point or spot lights are very cheap to render. Point or spot lights that are fully or partially occluded by some scene objects get their pixels skipped on the GPU, so they are even cheaper.
延迟光照中实时光线的开销和光线照亮的像素值的数量成正比。而不取决于场景的复杂性。微小的点光源和聚光灯光源非常容易渲染。点光源或者完全或者部分被场景物体遮挡的聚光灯光源所照射的像素则被GPU所跳过,因此更加廉价。
Of course, lights with shadows are much more expensive than lights without shadows. In Deferred Lighting, shadow casters still need to be rendered once or more for each shadow-casting light. And
the lighting shader that applies shadows is also more expensive than one without shadows.
当然,拥有阴影的光源比没有阴影的光源要昂贵许多。使用延迟光照,光影投射器仍然需要为每个阴影投射渲染一次或者多次。而且产生阴影的光线着色器也比不产生阴影的光线着色器要昂贵许多。
Implementation Details 实现细节
When Deferred Lighting is used, rendering process in Unity happens like this:
当延迟光照生效时,在Unity中发生的渲染过程如下:
Base Pass: objects are rendered, producing screen-space buffers with depth, normals, and specular power.&
基本渲染:被渲染的对象产生带有深度,法线,和反射量的屏幕空间缓冲Lighting pass: lighting is computed using the previous buffers. Lighting is computed into another screen-space buffer.&
光照渲染:使用上一步的缓冲计算出光照。结果放入另一个屏幕空间缓存Final pass: objects are rendered again. They fetch computed lighting, combine it with color textures and add any ambient/emissive lighting.&
最后渲染:物体再次渲染。取来已经计算好的光线和颜色纹理混合在一起,然后再加上环境光以及散射光照。
Objects with shaders that can't handle Deferred Lighting are rendered after this process is done, using&&path.
不能采用延迟光照技术的带阴影的物体在延迟光照渲染完后使用前向渲染路径处理。
Base Pass 基本渲染阶段
Base pass renders each object once. View space normals and specular power are rendered into single ARGB32&&(normals in RGB channels, specular power in A). If platform & hardware supports reading Z buffer as a texture, then depth is not explicitly rendered. If Z buffer can't be accessed as a texture, then depth is rendered in additional rendering pass,
基本渲染将每个物体都渲染一次。视图空间法线和高光强度被渲染进单一的ARGB32渲染纹理(法线在RGB通道,高光强度在A通道)中。如果平台和硬件支持将Z缓冲按纹理读取,那么深度不会被明确的渲染。如果Z缓冲不能被以纹理的方式访问,那么深度将在额外的渲染处理中被使用着色器替代技术渲染。
Result of the base pass is Z buffer filled with scene contents and Render Texture with normals & specular power.
基本渲染的结果是被屏幕内容填满的Z缓冲和带有法线和高光强度的渲染纹理。
Lighting Pass 光照渲染阶段
Lighting pass computes lighting based on depth, normals and specular power. Lighting is computed in screen space, so it's independent of scene complexity. Lighting buffer is single ARGB32 Render
Texture, with diffuse lighting in RGB channels and monochrome specular lighting in A channel. Lighting values are encoded using logarithmic encoding to provide extended dynamic range than usually possible with ARGB32 texture.
光照渲染基于深度,法线和高光强度计算光照。光照是被屏幕空间被计算的,因此和屏幕复杂性无关。光照缓冲是一个单一的ARGGB32渲染纹理,纹理的RGB通道带有漫反射的光照信息,在A通道带有单一特定颜色的光照。光照值采用对数值编码以产生比通常ARGB32纹理所能达到的动态扩展范围。
Lighting model is fixed to Blinn-Phong.
光照模式固定为Blinn-Phong。
Point and Spot lights that do not cross camera's near plane are rendered as 3D shapes, with Z buffer test against scene enabled. This makes partially or fully occluded Point and Spot lights very
cheap to render. Directional lights and Point/Spot lights that cross the near plane are rendered as fullscreen quads.
不能跨越临近平面的点光源和聚光灯光源被作为带有开启测试场景的Z缓冲3D形状渲染,这部分和完全屏蔽的点光源和聚光灯光源可以非常廉价的渲染。 跨越临近区域的平行光或者点光源能作为全屏四边形。
If a light has shadows enabled, they are rendered and applies in this pass as well. Note that shadows are not &free&; shadow casters need to be rendered and a more complex light shader needs to
be applied.
如果一个带有阴影的光源生效,在这个处理过程中会被很好的渲染。注意阴影并不免费,阴影投射器需要开销来渲染,同时一个更加复杂的光线着色器需要应用。
Final Pass 最后渲染阶段
Final pass produces final rendered image. Here all object with shaders that fetch the lighting, combine it with textures and add any emissive lighting.
Lightmaps are also applied in the final pass. Close to the camera, realtime lighting is used, and only baked indirect lighting is added. This crossfades into fully baked lighting further away
from the camera.
最终渲染阶段产生最后渲染后的图像,到这一步,所有的对象都将被再次渲染,其中着色器将混合前一步生成的光源和纹理以及所有自发光照明。
在最后渲染阶段光照贴图也被应用。靠近相机,使用实时光照,并仅烘焙间接光照。
其他:lightingmap 烘焙贴图不在及时光的技术范围内。烘焙灯光是通过贴图记录光照信息来模拟固定的光照效果,场景中本身不包含及时灯光。
Rendering Paths Comparison 渲染路径比较
Deferred Lighting&延时光照
Forward Rendering&正向渲染
Vertex Lit&顶点光照
Features 功能
Per-pixel lighting (normal maps, light cookies)
每像素计算光照(法线贴图、灯光cookies)
Realtime shadows&实时阴影
1 Directional Light(一盏平行光)
Dual Lightmaps&双光照贴图
Depth&Normals Buffers&深度与法线缓冲区
Additional render passes&额外渲染通道
Soft Particles&软粒子
Semitransparent objects&半透明的物体
Anti-Aliasing&抗锯齿
Light Culling Masks&灯光剔除蒙板
Lighting Fidelity&光照保真度
All per-pixel&全部像素
Some per-pixel&某些像素
All per-vertex&所有顶点
Performance 性能
Cost of a per-pixel Light&每像素光照的花费
Number of pixels it illuminates
照亮的像素数
Number of pixels * Number of objects it illuminates
像素数*照亮的像素数
Platform Support 支持平台
PC (Windows/Mac)&台式机
Shader Model 3.0+
Shader Model 2.0+
Mobile (iOS/Android)&移动设备
OpenGL ES 2.0
OpenGL ES 2.0 & 1.1
Consoles &(游戏)平台
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:27989次
排名:千里之外
转载:25篇
评论:11条
(1)(1)(1)(1)(1)(3)(1)(2)(1)(1)(1)(1)(3)(2)(2)(1)(3)(1)(4)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'Unity(31)
Shader(14)
在Unity的Camera中常常会看到一个Rendering Paths的选项,里面有5个选项,其中两个比较重要的选项分别是“Deferred Shading”和“Forward Rendering”,在我还是初学Unity的时候,并没有在意太多。如今随着学习Shader的深入慢慢领会到了这两个渲染路径的重要性。下面就这两个渲染路径的区别和优缺点做一个学习记录。主要参考文献
维基百科:
Unity官网:
在介绍这两个渲染路径的开始不得不先介绍一下现在的图形渲染管线,如图所示为一个现代GPU的渲染过程。因为,硬件的限制,我们不能改变如何绘制单个的像素,只能通过给硬件输送不同的纹理来进行改变。自从有了可编程图像管线,我们现在可以通过代码来修改顶点,或扭曲或移动来改变像素的外观,至此从本质上改变图形硬件如何渲染目标物体。
首先要介绍的就是常用的延迟着色渲染(Deferred Shading)
二、延迟着色渲染(Deferred Shading)
在计算机3D图形学中,延迟渲染技术是一种在屏幕坐标空间渲染的技术。所谓延迟渲染,即在顶点和片段着色器中的第一个通道中没有真正的渲染被执行,而是延迟到第二个通道中被渲染。
在第一个通道中,仅仅是收集渲染所需的计算数据。每个表面的位置、法线和材质信息被渲染到几何缓冲区(G-Buffer)中,这种渲染技术被重围渲染到纹理技术。之后,片段着色器使用贴图缓冲信息在屏幕坐标空间为每一个像素计算直接或间接的光照。屏幕坐标空间方向的遮挡能作为延迟渲染管道的一部分,给物体的阴影和相互之间的光照反射提供方向性。如图所示为延迟着色的渲染过程
1.1、漫反射颜色几何缓冲区
1.2、深度缓冲区(Z-buffering)
1.3、表面法线几何缓冲区
1.4、最后的合成效果(图中还含有阴影,
因此计算阴影映射和阴影
卷必须和延迟渲染一起使用)
延迟着色的主要优点是场景几何面的渲染和光照渲染的解耦。只需要一个几何通道,并且每个光源只计算它实际影响的那些像素。这为GPU在场景中有多个光源的渲染减少了性能上的开销。还有一些附加在这个上面的优点,如,对复杂的光源管理更为方便、其他的着色器资源也易于管理以及简化软件渲染流水线。
延迟渲染的关键缺点就是它不能处理算法内的透明度,虽然这个问题在Z缓冲(深度缓冲)场景中是一个常见的问题,通常的处理方法都是采用将场景中的透明部分进行排序和延迟。深度剥离在延迟渲染中可以被用来实现顺序无关的透明度,但是付出的代价就是增加几何缓冲区(G-Buffer)和附加批次的大小。
支持DirectX 10以及更高版本的现代GPU显示硬件通常能够足够快的执行批次处理,以保持交互式帧率的稳定。当需要产生顺序无关的透明度时(通常在一些游戏中),延迟渲染并不会比正向渲染使用相同的技术有效。
(注:延迟渲染在正交摄像机模式下也是不支持的,如果摄像机切换到了正交模式之后就会默认使用正向渲染)
&&&&&& 延迟着色中的实时渲染开销与由光照射的像素的数量成比例,并且不依赖于场景复杂度。因此,小小的点光源和聚光源都是开销非常小的渲染,特别是不会穿过摄像机的近平面的点光源和聚光源,渲染开销就更小。另外,带阴影的光源比不带阴影的光源开销要更高。因为在延迟渲染中,阴影投射到的物体上需要为每个阴影投射光渲染一次或多次。
另外一个比较严重的缺点是使用多材质比较困难。要使用多材质不是不可能,需要在几何缓冲区存储更多的数据,这就需要更大的内存宽带。
&&&&&& 一个更致命的缺点是,由于光照和几何渲染的分离,导致抗锯齿变得不稳定,主要是因为这种分离会导致内插子样本会产生不稳定的位置、法线和切线属性。克服这种限制的常用方法是在最终的图像上使用边缘检测,然后在边缘上使用模糊处理。而且,如今有更高级的边缘平滑处理技术,如MLAA(Efficiently MovingAntialiasing from the GPU to the CPU,/sites/default/files/m/d/4/1/d/8/MLAA.pdf),时间反混叠法(Temporal
anti-aliasing https://en.wikipedia.org/wiki/Temporal_anti-aliasing用在虚幻引擎中),尽管它不是一个完全的边缘平滑处理技术,但是能使得给定的边缘一个平滑的表面。
4、延迟光照(内容有争议)
&&&&&& 延迟光照是延迟渲染的修订。这个技术在延迟渲染的时候使用了3个通道,而不是2个。第一个通道覆盖了场景几何体,仅仅将计算每个像素照明所必需的属性写入几何缓冲区。在屏幕空间,“延迟”通道然后输出仅仅漫反射和高光反射光数据信息,因此,必须在场景上进行第二遍,以回读光照信息和最终输出的逐像素渲染。延迟光照最明显的优点是动态的减少了几何缓冲区的大小。最明显的成本就是需要渲染场景几何体两次而不是一次。另外一个额外的消耗是在延迟光照的延迟通道必须单独输出漫反射和镜面反射,然而延迟渲染的延迟通道仅仅需要输出一个两者组合的辐射值。
&&&&&& 由于几何缓冲区的大小的减少技术,部分克服了延迟着色的一个严重缺点—多个材质。
5、Unity中的延迟渲染
&&&&&& 当使用延迟渲染,影响一个游戏物体的光照的光源数量没有限制。所有光源都是逐像素评估,这就意味着它们都与法线贴图进行正确的交互。另外,所有光源都有Cookies和阴影。
&&&&&& 它要求显卡具有MRT(多渲染目标),渲染模型3.0或者更高,并且支持深度渲染纹理。在2006年之后的PC显卡都支持延迟渲染技术,如GeForce 8xxx、Radeon x2400和Intel G45。在手机端,延迟渲染是不支持的。
(注:延迟渲染在正交摄像机模式下也是不支持的,如果摄像机切换到了正交模式之后就会默认使用正向渲染)
&&&&&& 延迟着色中的实时渲染开销与由光照射的像素的数量成比例,并且不依赖于场景复杂度。因此,小小的点光源和聚光源都是开销非常小的渲染,特别是不会穿过摄像机的近平面的点光源和聚光源,渲染开销就更小。另外,带阴影的光源比不带阴影的光源开销要更高。因为在延迟渲染中,阴影投射到的物体上需要为每个阴影投射光渲染一次或多次。
三、延迟着色渲染(Forward Rendering)
& &正向渲染是标准的多数引擎使用的白箱渲染技术,给图形渲染硬件提供几何图形数据,最后转换并分割为片段或像素,在传递到屏幕之前进行最终渲染。它是线性的,几何图形一个一个的传递到管线中以产生最终图像。
&&&&&& 正向渲染对一个对象会在多个通道上进行渲染,并且渲染取决于影响物体的光源。光源本身也会根据其设置和强度在进行正向渲染的时候进行不同的处理。
2、Unity中使用它
&&&&&& 在正向渲染中,影响每个对象的一些数量的最亮的光源以完全每个像素光照模式渲染。然而,每个顶点最多计算4个点光源。其他光源被计算成球面谐波(Spherical Harmonics),这是更快,但只是一个近似。一个光源是否进行逐像素光照主要依靠以下几点:
●当光源的渲染模式被渲染成Not Important,则光源是进行逐顶点计算或者SH
●最亮的直光源是总是逐像素
●光源渲染模式设置为Important总是逐像素光照
●如果在Quality Setting里面设置的光源数量在上述设置中超过了,那么超过的光源按照亮度的顺序逐像素的渲染。
比如,如果一个物体的渲染被如图2.1所示的A—H的光源影响。假设A到H的光源都有同样的颜色和强度并且渲染模式都是Auto,那么这些光源将按照距离远近的顺序进行排序最后渲染。最近的光源,也即是最亮的光源将被作为逐顶点渲染
如图2.2所示为各个光源的渲染模式。
(注意:光源的重叠)
2.1:影响游戏对象的周围光源
2.2:影响游戏对象的周围光源的渲染
●正向渲染是计算物体的顶点而不是像素,这就意味着它们不支持光源Cookies和法线贴图映射。
●球谐波是非常低频的方法。你不能用球谐波渲染进行快速的转换。它们也仅仅影响漫反射光源以及非常低频的高光反射。
●球谐波不是局部的;点或者聚光源靠近一些表面的时候会产生混乱和模糊。
总得来说,球谐波是非常适合一些动态的物体。
四、Unity中其他的渲染路径
1、传统延迟光照渲染(Legacy Deferred LightingRendering Path)
&&&&&& 这是随着Unity5.0遗留下来的延迟光照特性,新的工程都应该考虑使用前面讲的延迟渲染。
2、顶点光照渲染(Vertex Lit Rendering Path Detail)
&&&&&& 顶点光照渲染通常渲染每一个物体都在一个通道上,计算在物体每个顶点上的所有光源的光。这是最快的渲染方式,并且有着最为广泛的硬件支持。(当然不能工作在控制台上)。因为,所有的光照计算都发生在顶点着色器上,因此这个渲染方式不能计算许多逐像素的效果,比如,阴影、法线映射以及光源Cookies
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:47610次
排名:千里之外
原创:34篇
评论:29条
文章:11篇
阅读:18584
文章:15篇
阅读:20016
(1)(1)(2)(5)(5)(1)(1)(1)(2)(1)(3)(2)(3)(3)(1)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'}

我要回帖

更多关于 unity3d forward 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信