`
yanlijun250
  • 浏览: 752412 次
文章分类
社区版块
存档分类
最新评论

Deferred Lighting翻译后记【三】——从DS到技术

 
阅读更多

最近看了看星际争霸2的技术白皮书,感觉有块石头落了地:

暴雪使用了Deferred Shading,就表明这个技术的性能和表现是绝对没问题的,暴雪一向的风格都是适应性最好的技术(这其中,性能是一个重要的指标)实现在此适应性上,最好的效果。看来Deferred Shading正好是这样一种选择——对于星际2和暗黑3这种风格的游戏而言。

实用的就是好的,AO很好,可惜不实用,于是就有了SSAO,滋光很好,可惜不实用,就有了God Ray,次表面法线,Light Environment,各种各样的技术,其实莫过于如此。

很高兴,几个月前我的选择并没有错。

今天跟几个同事一起吃饭,有个同事突然聊起了Deferred Shading,第一句话就是:这个东西很简单嘛,有位前辈说他几个月前就搞定了。

我反应了老半天,没反应过来,下午上班了才大约反应过来,哦,原来是之前觉得这个太复杂了。复杂么?老外几年前都搞定了,很简单的啊!由于Victory的良好结构,我的老大更是花了不到一周的时间就全部解决了,体系还很好。看来我的同事没来看我的Blog ^_^,才会有这样的误解。其实一直以来,我对Deferred Shading的思路都是这样子的:

Deferred Shading,是以一种相对简单但有效的结构,以丧失一定的复杂度为代价,换取在高效率实现逐像素光照下,最好的效果。

可能很多人,对于新技术的看法往往是一个新技术,是很复杂的,是需要花很多脑子去学习的。我觉得,对于过去而言,这是很有道理的,因为在低端机器上,很多无用功其实是浪费到了优化上。BSP、ROAM……诸如此类的技术,都是换取效率而必须付出的代价。但在已经不用过多的优化,就可以达到这些数年前技术效果的层次上,新的技术则将眼光瞄准了更远更高的方向。这些方向包括但不限于:技术的易用性和实用性,效果,效率……最突出的一个感觉是,技术的易用性从未向今天这样被提高到一个如此的层次上。DX10的接口远比DX9易用,DS远比FS好进行设计,LE,SSAO,God Ray,没有一个是复杂的技术,全都是数十行到数百行代码都可以完成的。

那种一个人靠着掌握了一点毛皮,就可以横行整个业界的日子,一去不复返了!

难的,不再是技术,而是思想。

说白了,

都是抄,早一天,晚一天,不重要,重要的无非就是谁抄的好。

都是卖,口碑好,口碑差,不重要,重要的是只要有人买就好。

不同引擎,不同实现的DS,都是按照他们自己的思想来。

这就正如Unreal实现了一个基于状态转换的UI,我06年也实现了一个基于状态转换的UI,这种UI比起CEGUI等传统的UI而言显然更好一些。但是为什么CEGUI和Unreal卖得好?而我的默默无闻呢?是因为表面功夫。——这可不是什么贬义,因为对于用户而言,技术最直观的反映就是界面,仅此而已。

人的思想到了一定的层次,都会对相应的事情产生自己的解决方案,而且,绝大多数情况下,一个人和另一个人,对于同一个事情的解决方案,不会有太多的不同。基于状态的UI,Unreal想到了,我想到了,别人也有很多想到了。差别只是做下来的深度和广度而已。我的UI只能靠硬编码和挂函数,而Unreal就可以做到很方便的编辑,以至于在有的项目中,只需要两三个人,就可以轻松完成整个MMO的所有界面,还有的同事能做的像Flash那样,方便不做游戏的人。这也就是深度和广度的问题吧?或者说,需求,解决需求的过程中,那可怕的积累吧?!

或许这才是最重要的——对需求的把握,以及完成需求的决心!

曾经我感觉这个世界里有很多技术流氓,别人做的好的,他就要说做的差,别人努了力的,他就要说别人抄近路,总之,只有自己的才是好的,别人的都是垃圾。自信和自大都是可以的,冷静的面对技术就可以了。无论如何,技术懂得的越多,就越有机会,越有方法,来完成自己面对的需求,这或许就是这些技术存在的意义。看清自己的问题,永远比看清别人的问题更重要,明白自己的需求,永远比明白别人的需求更关键!

不知为何,开了春,过了年,突然感觉现在的技术流氓少了,应该大家都早已经明白了这一点了吧,或许,一直以来,最不明白的,只不过是我自己而已啊! :P

分享到:
评论

相关推荐

    Shawn的Deferred Shading翻译

    翻译《Deferred Shading》(2004年Shawn Hargreaves的经典文章)

    Shawn的Deferred Shading ppt 翻译

    Shawn的Deferred Shading ppt 翻译 Shawn的Deferred Shading讲解ppt是很好的学习延迟着色的资源!

    Decalicious – Deferred Decal System v1.5

    Full Lighting & Reflections: Thanks to Deferred Rendering, full lighting and reflections come cheap Dynamic Transform: Decals can be dynamically spawned, moved, rotated and scaled, and are batched ...

    2014-10-16-深入理解jQuery(4)——Deferred1

    1. Deferred与Callbacks 2. Deferred源码分析 3. promise源码分析

    Shawn的Deferred Shading原文讲解ppt

    Shawn的Deferred Shading原文讲解ppt 对初学者理解Deferred Shading有一定的帮助

    DS翻译 2003 PPS版本

    翻译《Deferred Shading》(2004年Shawn Hargreaves的经典文章) 本文是2003的PPT版本

    GPU pro 6、7

    《Gpu Pro6》Real-Time Lighting via Light Linked List:常规Deferred Lighting需要深度,因而半透一般是通过后续的Forward Lighting实现,文中通过自定义Software Depth Test,影响当前屏幕像素点的Light Link ...

    emacs-deferred:emacs lisp的简单异步函数

    API和实现是从 (由cho45编写)和 (由Bob Ippolito编写)翻译而来的。 (请注意, concurrent的README)安装您可以通过package.el从安装deferred.el。样例代码您可以在deferred-sample.el找到以下示例代码。 执行...

    android-deferred-object, 在 jQuery http上,Android实现延迟对象 Pattern的实现.zip

    android-deferred-object, 在 jQuery http上,Android实现延迟对象 Pattern的实现 Android延迟对象Android-Deferred-Object是一个of实用工具对象,可以以将多个回调 register 调回回调队列,调用回调队列和异步功能...

    Lux Plus – Physically Based Shader Framework v2.02d

    Lux Plus is the commercial branch of the open source Lux shader framework and brings Lux's advanced lighting features such as skin, translucent and anisotropic lighting to the deferred rendering ...

    Deferred Shading延迟光照

    Deferred Shading延迟光照,例子简单易懂,很容易理解哈

    深入解析jQuery中Deferred的deferred.promise()方法

    一个Deferred.Promise对象可以理解为是deferred对象的一个视图,它只包含deferred对象的一组方法,包括:done(),then(),fail(),isResolved(), isRejected(), always(),这些方法只能观察一个deferred的状态,而无法...

    Deferred:Deferred JS 库 - JQuery Deferred 的替代品

    阅读以了解为什么您应该从 JQuery Deferred 迁移到 Deferred.JS。 要从 JQuery Deferred 迁移到 Deferred.JS,请参阅 。 安装 只需在页面中包含 Deferred.js 文件。 例如: < script src =" /js/Deferred.js...

    DeferredShading

    DeferredShading,基于DX10的DeferredShading效果。讲解十分详细

    Decal Master Advanced Deferred Decals v1.24

    * 排除遮罩(贴花不会被投射到所选层上去) * 生成 API 和组件 *用于更快生成贴花的池 * 运行时 GPU Raycaster(无需碰撞体) * GPURaycast 到 SkinnedMeshRenderer * 地形贴花(按照世界位置和地形高度进行调配) *...

    Deferred Shading延迟渲染.zip

    Exercise 9:Deferred Shading的实现 要求: 1.在练习8的基础上,实现Deferred Shading算法; 考察目的: 1.阅读文献,理解并实现文献中算法; 2.通过FrameBufferObject实现render-to-texture技术; 3.实现multiple-...

    OpenGL+Deferred Shading实现放大镜

    用OpenGL+Deferred Shading实现放大镜的效果

    Easy Decal v2021.3.1

    —————————————————— Forum | Issue Tracker | Online | Docs —————————————————— Want to try before buy? Download an evaluation version here! ————————————...

    SSAO+HDR+deferredshading

    OpenGL写的Demo,使用Deferred shading,并加入SSAO和HDR的post processing,希望对你有所帮助。

Global site tag (gtag.js) - Google Analytics