游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4553|回复: 8

GDC 2008笔记

[复制链接]

27

主题

179

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2008-3-8 01:16:00 | 显示全部楼层 |阅读模式
GDC 2008一些Presentation的笔记,因为就在家门口开的,所以去逛了逛。这里有我自己记的,也有同事写的:

Harnessing the power of multiple GPUs - AMD
    1. 主要讲了2种使用多个GPU的方式,SFP( Split Frame Rendering ). 也就是一贞数据放在2个GPU上同时计算,使用动态平衡。
    2. AFR ( Alternate Frame Rendering ) 每个GPU渲染不同的贞。这种方式比较流行,但是也有很多问题。比如很难解决上一贞和下一贞之间的依赖关系,motion blur就是的例子。

The technology of Uncharted: Drake’s Fortune
    这个主要是讲Drake's Fortune PS3 游戏的。主要是分2个部分,下面是一些比较有趣的要点:
    1. 所有的static light information都是存在vertex buffer里的,只有dynamic light使用一个grid object management system 管理
    2. 所有的level data分成多个固定大小的data block, 用来减少内存碎片,使loading 更快(我很喜欢这个优化)
    3. 使用自己写的texture memory defragmentation. 当然PC上都是dx管理拉,所以用不到。
    4. Physic System, 很普通。。。。没啥好说的
    5. Scene management: PVS ( SPU version ), Sorting on PPU

Stupid spherical harmonics tricks (看下面的link吧。差不多就这些)
    1. http://www.ppsloan.org/publications/StupidSH35.pdf

Insomniac’s SPU programming practices
    又是PS3的SPU,看来PS3可能要崛起了.
    1. 对SPU programming 来说,Data layout是最关键的。
    2. 尽量少用Synchronization,
    3. 把data block size 定在 16 bytes, 128 bytes aligned
    4. code和data是一样的,对于SPU programming来说,可以把code当作data 来看待。如果SPU需要run不固定的code,直接从main memory传code过去就是了。
    5. SPU run shader是个很不错的主意。

Procedural data generation in Far Cry 2 - Ubisoft
    Nothing special,
    1. 他们的经验就是procedural terrain非常难调试,一个小的参数变化会引起无数个bug。汗个,虽然procedural map很先进。。。。没想到这么恐怖。

GPU optimization with the latest Nvidia performance tools - Nvidia
    Nvidia每年固定的广告presentation, 内容应该都在这里:
    http://developer.download.nvidia.com/shaderlibrary/webpages/shader_library.html

Crysis next-gen effects
    这个是我最感兴趣的,不过看过以后发现实在没啥特别的:不过扔在3年前他们开始做的时候,还是很厉害,下面是一些水面效果的tips:
    1. Tessendorf model, using render to texture and vertex displacement
    2. Simulated reflection
    3. Refraction做的不错,使用上一贞的数据做输入,mask out所有水面上的东西
    4. Procedural caustics, 使用单独一个pass
    5. "God" rays for under water effect

Practical light and color
    3个link,感觉很象他的个人广告:
    http://www.thegnomonworkshop.com/dvds/jvi01.html
    http://www.amazon.com/Vision-Art-Margaret-S-Livingstone/dp/0810904063
    http://www.jermilex.com/Jermilex.com/Home.html

Lightmap compression in Halo 3
    懒的写了,都在这:
    http://www.bungie.net/images/Inside/publications/presentations/Lightmap_Compression_2008_02_22.pptx

Advanced visual effects with direct3d 主要是DX10
    1. Optimization tips:
       - 不要同时使用多过3,4个constant buffer, 如果要更改constant buffer里的内容(dx9是static buffer) 最好是创建一个新的buffer来替换旧的。因为如果使用lock/copy/unlock(注意是第2次,第一次数据初始化不会), 驱动会把video memory里的buffer移动到system memory里。变成dynamic buffer.
       - 尽量压缩Vertex Size
       - 如果Pixel shader很慢,使用Depth prepass. (先render depth buffer,这样可以利用Z-Pre-rejection )
       - 尽量少用temp register,虽然temp register很多,但是你用的越多,能同时并行运行的shader code就越少。所以少用能增加并行。
       - 不要用 D24_UNORM_S8_UINT format ,非常慢。
       - 使用1x1的texture来检查是不是texture sampling bottle neck
       - int 和 float的之间的转换非常慢,尽量不要用。
      http://ati.amd.com/developer/gdc/2008/Ultimate_Graphics_Performance_for_DirectX_10_Hardware.pdf
http://ati.amd.com/developer/gdc/2008/DirectX10.1.pdf

xbox360懒的写了。

=====================================
原文在我的blog上:http://blog.sina.com.cn/aear

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2008-3-9 15:36:00 | 显示全部楼层

Re:GDC 2008笔记

顶下。。虽然目前还看不怎么懂

4

主题

17

帖子

23

积分

注册会员

Rank: 2

积分
23
发表于 2008-3-10 12:12:00 | 显示全部楼层

Re:GDC 2008笔记

好文章~ 国内很少GPU技术和前檐性的文章,感谢楼主。blog也不错,C++基本功和 Design Pattern系列很好啊!

26

主题

125

帖子

125

积分

注册会员

Rank: 2

积分
125
发表于 2008-3-10 13:51:00 | 显示全部楼层

Re:GDC 2008笔记

楼主很强大!

34

主题

443

帖子

478

积分

中级会员

Rank: 3Rank: 3

积分
478
发表于 2008-3-15 21:09:00 | 显示全部楼层

Re: GDC 2008笔记

aear: GDC 2008笔记
GDC 2008一些Presentation的笔记,因为就在家门口开的,所以去逛了逛。

??
楼主EA的?

27

主题

179

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
 楼主| 发表于 2008-3-16 05:22:00 | 显示全部楼层

Re:GDC 2008笔记

我在take two, 不过也可能快变成EA了,正在被EA收购中。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-3-16 21:46:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

27

主题

179

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
 楼主| 发表于 2008-3-18 02:47:00 | 显示全部楼层

Re: Re:GDC 2008笔记

niexuchina: Re:GDC 2008笔记

想请教一个问题。
“使用上一贞的数据做输入,mask out所有水面上的东西”,一般屏幕分辨率不是power of 2的,怎么作为“输入”?


一般的流程是先把所有的东西 Render To Texture, 然后做Post Effect, 然后使用软件或者硬件的 MSAA. 这里说的上一贞的数据,就是第一步里Render To Texture的结果。只要你的texture是 pow of 2的,一般都不会有什么问题。有些显卡也支持non-pow of 2 texture。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-3-18 21:51:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 11:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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