游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3844|回复: 7

【翻译】Tabula Rasa中的延迟着色技术(星际2支持这个技术

[复制链接]

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2009-3-3 01:23:00 | 显示全部楼层 |阅读模式
http://blog.csdn.net/noslopforever/archive/2009/03/03/3951273.aspx

Deferred Shading,看过《Gems2》 的应该都了解了。无论是Unreal3、Crysis还是星际2,都已经支持或者准备支持这个技术。

不过因为国内这种环境,真正在项目中能用到的可能并不多,不知道这次星际2出来后,情况会不会有所变化。^_^

关于星际二中的DS支持,请看:http://games.enet.com.cn/article/A0120080828003_3.html

本文是对Gems2这篇文章的一个补充,小生在做此次外包的时候,由于需要,翻译了这篇文章,不敢独享,遂贴于此,望能抛砖引玉,愿众位前辈不吝赐教。 ^_^

摘要:


这篇文章是对GEMS2里《Deferred Shading in S.T.A.L.K.E.R.》(中文译名《S.T.A.L.K.E.R.中的延期着色》,原作者Oles Shishkovtsov)的一个补充。它是在我们耗时两年时间、为游戏Tabula Rasa(Richard Garriott担纲的MMORPG)完成的渲染引擎的基础上形成的。GEMS2的这篇文章覆盖了实现一个Deferred Shading引擎的基本原理,而我们将重点放在了基于Deferred Shading引擎的工作中时可能遇到的更高层面的问题、技术和解决方案上。

1 Introduction
在计算机图形学的词典里,Shading表示“对受光物体的渲染”,这个渲染过程包括下面几步:

1,  计算几何多边形(也就是Mesh)。

2,  决定表面材质特性,例如法线、双向反射分布函数(bidirectional reflectance distribution function,BRDF)等等。

3,  计算入射光照。

4,  计算光照对表面的影响,并最终显示。



一般渲染引擎,渲染场景中的物体的时候,是将这四步一次执行完的。延迟着色则将前两步和后两步分开到渲染管道相互独立的两个部分来执行。

我们希望读者在阅读本文前,能先了解一下延迟着色的基本原理。以下的文章都不错,可以读读:Shishkovtsov 2005,Policarpo and Fonseca 2005,Hargreaves and Harris 2004。

在本文中:Forward Shading(前向渲染)是指4个步骤一齐处理的传统着色方法。Effect就是Direct3D的D3DX Effect,而Technique,Annotation和Pass,与它们在D3DX中的概念一样。

材质着色(Material Shader)是指用来渲染几何图元的Effect(也就是前两步),光着色则是指用来渲染可见光源的Effect。几何体(Body)用来指代那些需要渲染的物体。

在这里我们忽略了显卡相关的优化或实现,所有的解决方案都是普遍适应于SM2和SM3硬件的。我们希望能强调这个技术,而非实现。

………………

14

主题

156

帖子

158

积分

注册会员

Rank: 2

积分
158
QQ
发表于 2009-3-5 10:29:00 | 显示全部楼层

Re:【翻译】Tabula Rasa中的延迟着色技术

出新文章了,你博客都有好一会没发新博文啦,呵呵

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2009-3-5 20:28:00 | 显示全部楼层

Re:【翻译】Tabula Rasa中的延迟着色技术

deferred Rendering吧?

前段时间刚了解到,肯定是未来的大趋势。

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2009-3-8 09:05:00 | 显示全部楼层

Re:【翻译】Tabula Rasa中的延迟着色技术

呵呵,实在惭愧,公司不能上网,我现在完全成了瞎子、聋子了 T_T。
正在翻译KillZone2的DS文章,争取今天晚上能放出来,个人觉得它的那个MRT的设计很不错。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-3-8 10:05:00 | 显示全部楼层

Re:【翻译】Tabula Rasa中的延迟着色技术(星际2支持这个技

最近deferred shading确实比较流行
deferred shading最大的优点就是做多光源动态光照比较方便,也很高效
不过也不是没有缺点
高带宽,高显存需求,dx9硬件浮点RT缺乏对alpha blend的支持,MRT不支持mutisampling
所以在底端显卡(包括Geforce 6)上,ds并不一定是最好的选择

虽然S.T.A.L.K.E.R号称在sm2.0的卡上也能跑,不过画质已经降低了很多,而且S.T.A.L.K.E.R的df系统是从dx7时代就开始研发了(汗一个....),已经相当成熟

当然,如果目标平台是dx10,做起df来就相当舒服了

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2009-3-8 16:55:00 | 显示全部楼层

Re:【翻译】Tabula Rasa中的延迟着色技术(星际2支持这个技

没错,您说的很对,DS的问题很多,主要是高带宽,半透明和AA。
由于外包的原因,正在写一个基于DX10的渲染器,替代06年写的基于DX9b的渲染器。其实外包对此的要求并不是特别高,
也是矛盾了很久,最后决定全面转向支持DS,主要是考虑到
一是DX10中有很多好的特性可以辅助DS,比如直接获取Depth、MSAA Render Target、更多可支持的RT数,既然是基于DX10,就可以用上这些优势了。 *^_^*
另外的……就是按照我现在这种时间分配(每天只有2~4个小时编码时间),估计等整个渲染器写出来,DX11都普及了……所以就当是休闲+学习了。 T_T

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2009-3-9 10:29:00 | 显示全部楼层

Re:【翻译】Tabula Rasa中的延迟着色技术(星际2支持这个技

noslopforever兄,基本上半年不见了,看起来工作挺忙的啊

15

主题

363

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
 楼主| 发表于 2009-3-10 21:30:00 | 显示全部楼层

Re:【翻译】Tabula Rasa中的延迟着色技术(星际2支持这个技

嗯,呵呵,忙啊,公司的项目一直很紧张,不过好在现在轻松一些了。 [em10]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 04:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表