看了一下午终于明白raytracing的算法了 不知道这次能记住多久 ssr我又完全不记得了

按照Henrik所说 理解raytracing的核心在于,它是从Eye到light反着走的

需要一个前序的概念 Light Transport Notation

LD?S*E  light source-Diffuse reflection(0 or one)-Specular reflection(0 or more) ---Eye

每个pix有一条经过此pix和eye的唯一ray 沿着这条ray往light的方向走

如果最后一个表面是Specular reflection 那么ray在这个surface有唯一的前行方向 沿着这条方向走可以拿到第一个intersection的color

shadow

刚刚的intersection如果是lightsource 不形成阴影

reflection

surface每个点显示刚刚的color就可以

关键是降噪

raygen()

 raydirection =lightpos

if hit<xxx shadow

else enlight

reflection

raygen()

raydirection =reflect(light, normal)

color =payload.color

closehit()

payload.color = current shading color

(「」我打不出大括号来了 实在对不起观众

caustic不能用这种方法算是因为最后的光路是 DE

D的时候这条光可以往各个方向往回走就很confussing了

至于怎么算caustic。。就要看另外一篇paper了 我还没看

===============

raytracing 的as 有些地方可以100帧更新一次 小幅度慢速往返运动 草缓慢摆动 还反射。。。比如

这样hit区域会错边缘一小部分 但是算光照时的 vb是每帧更新的 roottable里面----这段写的没什么意义

判断hit的时候用的as 只有交界的部分对  比如草交界部分就很小

像灯笼在原地小幅度摆动 两次move 重叠部分比较大的话

在做反射的时候 如果反射很清晰 这种错误看起来会特别碍眼的 ,其实就是需要完全正确的 所以as还是要重建哒 除非 运动速度比100帧一次还慢呢

我想到了 这个完全不对的原因在于  如果不更新 完全不是上面想象出来那种表现

uv和pos会拿错  会显示重叠部分的轮廓 里面绘制的内容是完全错误的 因为新的hit 的index在错误的 as里面拿到的数据是完全对不上了

=====================

光子映射的算法 photon map

LS DE

LS的地方就是固定的

D这里

从另一个方向连 判断连到光子map上的 光子密度 用kdtree空间存储 多的地方亮

ray tracing/shadow,reflection, caustic的更多相关文章

  1. A Hands-on Look at Using Ray Tracing in Games with UE 4.22 GDC 2019

    A Hands-on Look at Using Ray Tracing in Games with UE 4.22 GDC 2019 talker: Sjoerd De Jong (SR.ENGIN ...

  2. WebGPU+光线追踪Ray Tracing 开发三个月总结

    大家好~这三个月以来,我一直在学习和实现"基于WebGPU的混合光线追踪实时渲染"的技术,使用了Ray Tracing管线(如.rgen..rmiss等着色器). 现在与大家分享和 ...

  3. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) C. Ray Tracing 数学

    C. Ray Tracing 题目连接: http://codeforces.com/contest/724/problem/C Description oThere are k sensors lo ...

  4. Efficient GPU Screen-Space Ray Tracing

    http://jcgt.org/published/0003/04/04/paper.pdf 一个号称只有2ms的实时gpu光线追踪 screen space reflection用到了 和其他ray ...

  5. games101 - 4 - Ray Tracing

    games101 - 4 - Ray Tracing 目录 games101 - 4 - Ray Tracing 为什么需要Ray Tracing Recursive (Whitted-Style) ...

  6. OpenCascade Ray Tracing Rendering

    OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现 ...

  7. 开始研究Ray tracing

    几个月前面试时Boss问过我一个问题--"除了scanline渲染方法,你还知道什么其他渲染方式?",我没答出来,至今记忆犹新. 前段时间摆弄Intel VTune时看了它的示例代 ...

  8. Ray Tracing

    Ray Tracing 题目链接:http://codeforces.com/problemset/problem/724/C 拓展欧几里得 //为什么这次C题这么难啊=.= 可以观察到,光线在矩形中 ...

  9. 《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐

    <Ray Tracing in One Weekend> 优点: 相对简单易懂 渲染效果相当好 代码简短,只看书上的代码就可以写出完整的程序,而且Github上的代码是将基类与之类写在一起 ...

随机推荐

  1. MySQL查找出重复的记录

    问题 查找表中多余的重复记录,重复记录是根据单个字段来判断的.例如:有张表中有uid和uname两个字段,现在需要查找出uname重复的所有数据列.数据表如下: id o_id uname 1 11 ...

  2. Linux下文件属性

    在Linux下输入命令ls -l /etc/termcap /root/install.log,我们经常看到,这后面的一串内容具体是什么含义呢?[root@www ~]# ls -l /etc/ter ...

  3. 史上最全的web前端系统学习教程!

    这份资料整理花了近7天,如果感觉有用,可以分享给更有需要的人. 在看接下的介绍前,我先说一下整理这份资料的初衷: 我的初衷是想帮助在这个行业发展的朋友和童鞋们,在论坛博客等地方少花些时间找资料,把有限 ...

  4. tmpfs文件系统

    centos 7测试OK 创建挂载点,挂载 mkdir -p /run/testdirmount -nt tmpfs -o size=500m,mode=755 tmpfs /run/testdir

  5. 原生js遍历每一个对象,给每一个对象添加onclick事件

    <script type="text/javascript"> window.onload = function () { var imgs = document.im ...

  6. Bzoj2818 Gcd(莫比乌斯反演)

    题面 题意都在题目里面了 题解 你可以把题意看成这个东西 $$ \sum_{i=1}^n\sum_{j=1}^m\mathbf f(gcd(i,j)) $$ 其中$\mathbf f(n)$为$是否是 ...

  7. 初生牛犊:Windows下Anti-sandboxes技术探究

    由于云端杀毒的流行,病毒基本上都会加上anti-sandboxes手段来躲避沙箱的探测,在这点上,由于一些原因,最近也一直在做这一块,所以算是总结一下吧. 一:什么是沙箱以及其他: 根据受控环境中的观 ...

  8. Sqli-labs less 5

    Less-5 这里说一下,有很多的blog是翻译或者copy的,这关正确的思路是盲注.从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,所以我们 ...

  9. RabbitMQ (十一) 消息确认机制 - 消费者确认

    由于生产者和消费者不直接通信,生产者只负责把消息发送到队列,消费者只负责从队列获取消息(不管是push还是pull). 消息被"消费"后,是需要从队列中删除的.那怎么确认消息被&q ...

  10. [BZOJ2006][NOI2010]超级钢琴(ST表+堆)

    2006: [NOI2010]超级钢琴 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 3679  Solved: 1828[Submit][Statu ...