- 博客(11)
- 收藏
- 关注
原创 计算直接光照的贡献
⾸先回去计算每⼀个⼋⾯体texel的brdf和lighting的product,然后每个ray的⽅向,确保traceray的时候,每⼀个thread都是饱和。计算对应的pixel对应的gbuffer得到对应的pixelplane,然后拿⾃⼰的worldpos计算到pixelplane的距离,如果通过⼀个距离判断就。盖了哪些Voxel并把⾃⼰的索引写⼊所有覆盖Voxel的Trace参数中,在接下来的Voxel Trace Pass⾥,每个Voxel仅需处理上⼀步所填。拿到对应的gbuffer数据。
2023-08-14 06:53:26
177
原创 具体的directlighting包括⽣成shadow过程
cardpagetile数量。将cardpage数量存⼊对应的direct和indirect的allocator,在对应的地⽅存⼊对应的指代cardpage具体index的。也就是根据对应cardpagebuffer⾥的第⼀个vector(5个为⼀张cardpage)的第⼀个vector的zw,也就。Dispatch是:NumCardPage数量/64, 说⽩了64个page⼀组. 以thread.x(64)为基础,获得对应的cardpage以及对应的。Dispatch对应direct和indirect。
2023-08-14 06:52:31
89
原创 光在brdf的区别
Houdini (电影特效魔术师) Side Effects Software的旗舰级产品,是创建⾼级视觉效果的有效⼯具,因为它有横跨公司的整个产品线的能⼒,Houdini Master为那些想让更加精彩的动画制作家们提供了空前的能⼒和⼯作效率。它最⼤的特点在于它的Procedural理念,中⽂就是程序化,它不像Maya等传统建模或者动效⼯具(⽹络了解),它可以提供具体的⾃定义操作,对于我们Coder来说,这就是function,function的意义就在于可以⽤同样的流程去处理不同的数据。
2023-08-14 06:47:29
229
原创 traceglobaldf
clipmap覆盖范围⾥,只要存在任意⼀个clipmap,就回去对应的clipmap去采样对应的voxellighting。他的整个trace过程其实就是:⾸先先去通过traceglobaldf确定是否击中,如果击中的 话,再依次去对应的clipmap判断是否在。对应的clipmap⾥⾯的uv,然后根据uv去⽣成3个轴的对应3duv,因为lumen运⾏时候是将相机周围⼀圈体素化,然后从6个⽅向采。其他每级都⽐上⼀级⼤2. ⽐如2级是100,3级200,4级400m,最⼤可达6400m。
2023-08-14 06:36:12
67
原创 radiancecache - Lumen 浅析
其实就是⼀个参考值,不⼀定合理。BRDF做的时候,Gbuffer算的时候,这个probe受那些周围像素的影响,是。道了这个brdf值,累积起来,就是这个probe上朝向的brdf的分布。FinalGather的时候,每个像素需要按照ray的朝向去获取要的radiance信息。brdf只关注对出射⽅向的贡献,某些⽅向可以⼀直是0. 但lighting开始⽐如是暗的,但是如果⽅向偏⼀点点就会有贡献。traceray的,全球空间,投射到⼀个⼋⾯体8x8的朝向上。局部空间trace不同的点,朝向上的变化是很⼤的。
2023-08-14 06:35:41
192
原创 浅分析lumen的重要性采样代码
当前前进⽅向的sh,得到tracing⽅向的pdf. 如果⽤了importance sample的话,那么就会获取到对应的lightingpdf,再根据tracing。这步就是采样irradiance的pdf,所以将当前probe投影到上⼀帧,看看周围的probe的邻居,也就是4个邻居probe点。每个线程都会先算出对应的屏幕深度,如果有深度,那么就会算出对应的⼀个pixelUV,再得到对应的Gbuffer,再根据gbuffer深度。近,如果接近就是这个点对probe有影响。数量进⾏缩放,最后相乘。
2023-08-14 06:32:27
107
原创 Emissive做灯光
这个方法是可以接受的,这个节点的作用是:https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/#:~:text=Ray%20Tracing%20Quality%20Switch%20Replace%20Node%20Use%20this,global%20change%20that%20affects%20all%20ray%20tracing%20effects.最后通过opacitymask来控制对应的显示。
2023-08-14 06:30:57
95
原创 BentNormal和AO
这⾥的BentNormal其实就是worldnormal,后续所有的bentnormal基本都是worldnormal,已经和材质的bentnormal⽆关了。可⻅性球⾯⾼斯的计算如。算出反射的椎体⻆度,不遮蔽的⻆度,反射⻆度,以及从normalmap上采样到的normal和反射⻆度的⻆度差,最后通过查找前⾯。具体的就是会使⽤材质⾥的bentnormal,计算出对应的半球⾼斯,法线球⾯⾼斯,可⻅性球⾯⾼斯以及镜⾯反射球⾯⾼斯等,最后。这⾥的例⼦是没有反射捕获,所以这⾥的color其实就是(0,0,0,1)
2023-08-14 06:29:21
311
原创 Lumencard生成的 Surfel从哪里来
前言:最近一段时间一直没有整理自己的博客,现在有时间了,将大量更新一波自己的文章众所周知,Lumen的核心是加速,那么加速的结构依赖于Lumencard,我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + Shift + H无
2023-08-14 06:25:12
76
原创 Unity手柄UI设计
手柄这个其实国内用到的项目并不多,之前没有搜到有啥好的文章。恰好上个项目手柄接入是我处理的,今天就简单讲一讲。我也是个菜鸡,如果您觉得我说的有不对或者值得商榷的地方,欢迎您留言和本Vege探讨一下。本文默认您稍微了解或者知道UGUI底层。我是将手柄区分成两大定义:功能/UI。何为功能?其实就是一个两层映射。即原生输入到我们定义的手柄键比如:各原生轴输入--------------LeftTrigger/RightTrigger etc。我将它称为第一层映射。为什么需要这么处理?因为不同的手柄样式大同
2020-05-17 22:13:42
1337
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人