• 实时 Path Tracing 实现


    1.代码优化

    求交计算很多都可以优化简化减少计算量

    2.屏幕空间

    首先就是屏幕空间在一个3D场景中 只计算显示在屏幕的三角形 减少了在场景之外的三角形计算,按分辨率2000*2000=4000000个三角形需要计算,大部分是重复的我们直接记住索引,有索引标记的就光线追踪

    3.光线追踪分辨率精简

    在屏幕空间基础上,分辨率20002000,我们500500 可以再优化4/3的性能

    4光线追踪反射分辨率精简

    光线追踪有反射深度128SPP, 原本2K的分辨率,我们50*50分辨率光线追踪,可以再优化20倍的性能

    实时 Path Tracing

    路径追踪是需要多帧合成的图片,每张图片大量噪点,把合成的光线追踪结果存放在贴图坐标上(创建一个数组按贴图坐标存放),如此离线存在贴图坐标中,我们每次去噪或者以30帧后亮点微弱混合,便可看不到路径追踪的噪点(这里直接/30亮点权重不一样,后面++1才能颜色无偏差)

    贴图坐标优化

    贴图坐标有光线追踪后保存了颜色可以离线显示,没有照到的坐标是0(黑色的)摄像机移动是黑色一片片的,光线追踪这部分是大量噪点的(解决办法)用一个很小的贴图比如1010图片,混合保存光线追踪追踪
    有一张大的精细的光影图片和这张小的光影图,没有照到的坐标是黑色,直接用这个小光影图的颜色(为什么用小光影图,因为一张2K分辨率的图片需要渲染10分钟,但是1张10
    10的颜色图片光线追踪很快)

    降噪

    从30亮点开始还是能看到轻微的噪点变动,50亮度也许看不出噪点但是需要的帧数太多所以还是需要降噪,降噪屏幕模糊,TAA,SVGF

  • 相关阅读:
    Mybatis懒加载
    Java多线程(6)----浅谈13个原子操作类
    bit band
    2022 Moonriver全球黑客松优胜项目名单
    C++ 多线程(包含linux) cmake
    永续资金费率说明
    加密与安全_探索数字证书
    浅谈Rob Pike的五条编程规范
    教育领域数据可视化:点亮知识之路
    margin 塌陷和重合的理解
  • 原文地址:https://blog.csdn.net/asaqlp/article/details/126124074