[gdc13]Particle Shadows & Cache-Efficient Post-Processing

本文详细探讨了粒子阴影技术的变化,从之前的translucencyshadow转变为使用类似LightPropagationVolume的方法,通过voxel方式存储particletransmittance,并利用geometryshader、computeshader等技术进行高效计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Particle Shadows

这里particle shadow已经不是之前的sc2和crysis里面的particle投到正常场景上面的translucency shadow了:

使用类似LightPropagationVolume的做法,只不过是把indirect lighting信息换成了transmittance信息。

  • 以voxel的方式(也就是3d texture)存储particle transmittance,填充过程使用到geometry shader
  • 顺着light dir方向进行扩散(使用compute shader计算)
  • sample
一些优化:
  • 加一个低分辨率(8x8)的coverage mask,这样一些完全空的地方就可以跳过计算
  • 使用tesselation,在domain shader这里进行particle shadow map的sample,domain shader这里精度是比在pixel shader阶段的要低,算是一个low resolution计算的变种了,不过更加自然了
CacheEfficientPostProcessing
围绕着spatial locality来做文章,思路很棒,正常带着kernel sample screen space texture的做法(ssao,ss reflection...),常常用一个不规则kernel(poison filter...),这样就会让cache效率很差。
nv采用把用于sample的贴图,以这种方式:

,拆分成多几个,然后在sample的时候(使用texture array),一个kernel就在同一张贴图上面采,cache效率就好太多了:2.3x


sum
几个技术就是都用到了dx11,算是一个推广dx11努力吧,geometry shader, tessellation(domain shader), compute shader, texture array...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值