码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Sampling Area Lights


    Overview

    这里只介绍AreaLight的采样,下面默认的Light都是Area Light,Delta Light不在该文范围内。

    目的:在path tracing中,Sampling Lights的目的不是为了获得某个光源某个方向的radiance,而是要估计当前path的交点被整个场景所有光源对其产生的irradiance。

    样本:任何估计都是通过一个样本去做估计的,那么在Sampling Lights中的样本,就是当前path的交点发射的一个方向。

    Integrals over Area

    由于计算光源的面积产生的irradiance比计算点半球方向的积分容易很多,所以irradiance的计算可以用光源的面积作为积分计算。

    面积和立体角的关系:

    来自pbrbook
    来自pbrbook

    从上图可以看出dA和dω的关系: 

    \rm d\omega = \frac{\rm dA \cos \theta}{r ^2}

    Sampling Light Source

    如前面所说,采样到一个光源后,我们需要估计这个光源的总体irradiance,irradiance是由半球内的立体角积分得到。根据蒙特卡洛方法,我们需要知道这个从这个光源出发到达一点的方向的pdf,最后参与到bsdf的计算去。

    下面整理了采样光源的具体步骤。

    1)由于场景可能有多过光源,根据光源分布(或可以用均匀采样)采样,需要计算出该光源的pmf。

    2)采样光源的具体一个面,计算出该面在光源中的pmf。

    3)在该面上随机采样一个点,并和光照点生成射线先做可见性检测。

    4)假如该方向可见,计算方向的pdf。

    光照方向的pdf推导如下:

    采样的AreaLight的面的面积是A,方向是ω,由于pdf(ω)的积分是1,我们有:

    \int pdf(\omega)\rm d\omega = 1

    根据dω和dA的关系,上面的积分可以从方向转成点的积分:

    \int _A pdf(\omega) \frac{\cos \theta}{r ^2}\rm dA = 1

    所以可得到:

    pdf(\omega) \frac{\cos \theta}{r ^2} = \frac{1}{A}

    pdf(\omega) = \frac{r^2}{\cos \theta A}

    把最后这个pdf做irradiance的估计。

    必须明白一个原则:样本是什么,就需要计算该样本的pdf,例如如果样本是点,那么pdf就是点的pdf,样本是方向,那么就是方向的pdf。

    Reference

    Sampling Light Sources

    Working with Radiometric Integrals

  • 相关阅读:
    linux部署服务相关基础操作:磁盘挂载、jdk安装、docker安装、docker-compose环境安装、mysql、redis、jenkins等
    AI :微软推出 AutoGen 框架,帮开发者创建基于大语言模型的复杂应用
    ByteBuffer
    【Python爬虫】安装requests库解决报错问题
    计算机毕业设计ssm餐饮管理系统uto0o系统+程序+源码+lw+远程部署
    springcloud-config git配置源加载(部署公钥问题)
    RabbitMQ(原理,下载,安装)
    Jmeter 使用BeanShell断言,实现自动获取文章列表,并判断文章是否为当天发布的
    走出心理舒适区的七个最佳方法
    电商商品详情如何快速高效获取,api来帮你!
  • 原文地址:https://blog.csdn.net/air_liang1212/article/details/123619173
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号