From dd7d69859a458177dea102a133c3b8a648cf193d Mon Sep 17 00:00:00 2001 From: kenlee Date: Sat, 3 Jun 2017 16:13:17 +0800 Subject: [PATCH] add translations of a few of missing sentences of chap.05-08 --- docs/05 Advanced Lighting/08 Deferred Shading.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/05 Advanced Lighting/08 Deferred Shading.md b/docs/05 Advanced Lighting/08 Deferred Shading.md index d5376b3..acbaec7 100644 --- a/docs/05 Advanced Lighting/08 Deferred Shading.md +++ b/docs/05 Advanced Lighting/08 Deferred Shading.md @@ -4,7 +4,7 @@ ---|--- 作者 | JoeyDeVries 翻译 | Meow J -校对 | 未校对 +校对 | [KenLee](https://hellokenlee.github.io/) 我们现在一直使用的光照方式叫做**正向渲染(Forward Rendering)**或者**正向着色法(Forward Shading)**,它是我们渲染物体的一种非常直接的方式,在场景中我们根据所有光源照亮一个物体,之后再渲染下一个物体,以此类推。它非常容易理解,也很容易实现,但是同时它对程序性能的影响也很大,因为对于每一个需要渲染的物体,程序都要对每一个光源每一个需要渲染的片段进行迭代,这是**非常**多的!因为大部分片段着色器的输出都会被之后的输出覆盖,正向渲染还会在场景中因为高深的复杂度(多个物体重合在一个像素上)浪费大量的片段着色器运行时间。 @@ -24,6 +24,8 @@ 这种渲染方法一个很大的好处就是能保证在G缓冲中的片段和在屏幕上呈现的像素所包含的片段信息是一样的,因为深度测试已经最终将这里的片段信息作为最顶层的片段。这样保证了对于在光照处理阶段中处理的每一个像素都只处理一次,所以我们能够省下很多无用的渲染调用。除此之外,延迟渲染还允许我们做更多的优化,从而渲染更多的光源。 +当然这种方法也带来几个缺陷, 由于G缓冲要求我们在纹理颜色缓冲中存储相对比较大的场景数据,这会消耗比较多的显存,尤其是类似位置向量之类的需要高精度的场景数据。 另外一个缺点就是他不支持混色(因为我们只有最前面的片段信息), 因此也不能使用MSAA了。针对这几个问题我们可以做一些变通来克服这些缺点,这些我们留会在教程的最后讨论。 + 在几何处理阶段中填充G缓冲非常高效,因为我们直接储存像是位置,颜色或者是法线等对象信息到帧缓冲中,而这几乎不会消耗处理时间。在此基础上使用多渲染目标(Multiple Render Targets, MRT)技术,我们甚至可以在一个渲染处理之内完成这所有的工作。 ## G缓冲