- GPU driven rendering —- 理论到落地的距离是十万八千里
- unity polygon light
- GAMES 202 lecture 4
- GAMES 202 lecture 5
- robin hood hashmap
GPU driven rendering —- 理论到落地的距离是十万八千里
真的要把GPU driven rendering落地,才发现有很多问题是ppt里一句话带过,但引擎里却要花很大功夫才能迁移过去的。在列具体方案的时候,想起华为入职培训的时候关于敏捷开发的培训,第一个阶段到底要实现哪些功能,最小集究竟是什么,现在回过头再看还是很科学的,只是那个时候没有体会到。之后要把整个的心路历程都整理记录下来, mark.
unity polygon light
chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F%2Fadvances.realtimerendering.com%2Fs2016%2Fs2016_ltc_rnd.pdf
发现了一张有意思的图,real-time rendering里有很多feature的实现都像是这样,we may have descended research mountain, but we still need to scale the ‘dark tower’ of implementation, 同上一个标题,你也许费了劲搞懂了理论,然后发现我去,实现它我还要再爬一座dark tower.
GAMES 202 lecture 4
https://www.bilibili.com/video/BV1YK4y1T7yY?t=1097&p=4
回忆下 PCSS 的步骤
- getting the average blocker depth in a certain region
- use the average blocker depth to determine filter size
- percentage closer filtering
这样的性能消耗太大,如何把步骤1和步骤3的采样数降下来??variance soft shadow mapping
核心的一个近似
优化步骤3的性能
- 用一个近似的分布来拟合shadow map某点周围的depth分布 —-> 正态分布 —–> 均值和方差
- 如何求均值
- mipmap hardware
不准,插值,非正方形,那hi-z不是也不太准(插值来说,采样方式不一样取max??) - summed area tables (SAT)
我去,GPU driven里的都用上了。。
只是推广到2维场景,查4次表就可以得到精确的和
- mipmap hardware
- 如何求方差
那X^2就必须手动写到depth map了,默认的depth map支持两个通道么
可以用chebychev不等式来估计 CDF 的值,就是说 shadow receiver的点的depth是t,知道了shadow map里对应点的周围depth x的均值和方差,我可以估算得到 shadow receiver的点周围有多少比例被挡住(即x<t的概率)。
优化步骤1的性能
这些个假设真的太假了,居然还真的好用
moment shadow map
- VSSM 如果近似的分布离真实的分布差距很大怎么办
- moment shadow map 核心思想是用高阶矩来近似分布
GAMES 202 lecture 5
signed distance field (SDF)
可以继续深入看的点:
- SDF 梯度
- optimal transport
environment lighting
把light项单独拎出来积分,相当于filtering
- step 1
- step 2
这个推导还是要看下
robin hood hashmap
https://code.mforever78.com/security/2016/09/24/robin-hood-hashmap/
Robin Hood 的定址方式基于线性探测,但有一点不同,即它不是将新元素插到一个未被占用的地方,而是在线性探测的过程中,放在第一个 DIB 比它小的位置上去,而把原位置上的元素当做新元素继续依此规则向后查找,直到找到空位置为止。
- hash(x) = 1
- table[3] 已经被占用,当前 DIB(x) = 2,大于 DIB(d) = 0。将 x 放入 table[3] 并且继续查找 d 的新位置