ray tracing/shadow,reflection, caustic
看了一下午终于明白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的更多相关文章
- 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 ...
- WebGPU+光线追踪Ray Tracing 开发三个月总结
大家好~这三个月以来,我一直在学习和实现"基于WebGPU的混合光线追踪实时渲染"的技术,使用了Ray Tracing管线(如.rgen..rmiss等着色器). 现在与大家分享和 ...
- 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 ...
- Efficient GPU Screen-Space Ray Tracing
http://jcgt.org/published/0003/04/04/paper.pdf 一个号称只有2ms的实时gpu光线追踪 screen space reflection用到了 和其他ray ...
- games101 - 4 - Ray Tracing
games101 - 4 - Ray Tracing 目录 games101 - 4 - Ray Tracing 为什么需要Ray Tracing Recursive (Whitted-Style) ...
- OpenCascade Ray Tracing Rendering
OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现 ...
- 开始研究Ray tracing
几个月前面试时Boss问过我一个问题--"除了scanline渲染方法,你还知道什么其他渲染方式?",我没答出来,至今记忆犹新. 前段时间摆弄Intel VTune时看了它的示例代 ...
- Ray Tracing
Ray Tracing 题目链接:http://codeforces.com/problemset/problem/724/C 拓展欧几里得 //为什么这次C题这么难啊=.= 可以观察到,光线在矩形中 ...
- 《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐
<Ray Tracing in One Weekend> 优点: 相对简单易懂 渲染效果相当好 代码简短,只看书上的代码就可以写出完整的程序,而且Github上的代码是将基类与之类写在一起 ...
随机推荐
- 《java并发编程实战》读书笔记11--构建自定义的同步工具,条件队列,Condition,AQS
第14章 构建自定义的同步工具 本章将介绍实现状态依赖性的各种选择,以及在使用平台提供的状态依赖机制时需要遵守的各项规则. 14.1 状态依赖性的管理 对于并发对象上依赖状态的方法,虽然有时候在前提条 ...
- Partial Views
@Html.Partial("MyPartial") @Html.Partial("MyStronglyTypedPartial", new [] {&qu ...
- 关于在C#中对函数重载理解
函数重载是个什么概念,才接触的这个概念的时候我也是完全昏了,还在自己看看了书后就理解了.那什么是函数重载呢?我个人理解的是在同一个作用域下有多个同名的函数,但是他们的形参的类型是不同的,或者参数个数是 ...
- php在web服务器中的工作原理
1.web工作原理 我是学习PHP网站建设的,那么网站在客户端和服务端的运行是网站运行的根本所在,那个这个运行过程是怎样的呢?我们一探就将! Web:终端 服务器web:我们把提供(响应)服务的计算机 ...
- JavaWeb中常见的乱码处理(亲测)
常见编码方式: ISO-8859-1 西欧码 GB2312 简体中文码 GBK 大五码 UTF-8 全球码(推荐) 1.页面(HTML,JSP,Servlet) <%@ page lan ...
- 2017 Hackatari Codeathon B. 2Trees(深搜)(想法)
B. 2Trees time limit per test 0.75 seconds memory limit per test 256 megabytes input standard input ...
- Linux的重定向与管道
(1).输出重定向 定义:将命令的标准输出结果保存到指定的文件中,而不是直接显示在显示器上. 输出重定向使用>和>>操作符. 语法:cmd > filename,表示将标准输出 ...
- 27、Flask实战第27天:cms后台登录
cms后台登录界面 后台登录页面,我们不用自己写,只需要去Bootstrap中文网去找一个模板改一下就行 这里使用的模板是:https://v3.bootcss.com/examples/signin ...
- Oracle unique / distinct
[唯一]DISTINCT与UNIQUE的“区别” 今天一个朋友在Oracle中偶然发现UNIQUE也可以得到唯一的数据结果,问到DISTINCT与UNIQUE的区别.答案是:他们没有区别! d ...
- Python开发基础-Day3-列表、元组和字典
列表 列表定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序 ...