ray tracing in one weekend_rocket用法

ray tracing in one weekend_rocket用法RayTracing文章目录RayTracing光线追踪Whitted-StyleRayTracing求交点加速求交点BoundingVolumes包围盒BVHBasicradiometry(辐射度量学)RadiantfluxintensityIrradianceRadianceBRDF双向反射分布函数概率论回顾蒙特卡洛路径追踪蒙特卡洛积分路径追踪光线追踪1.光沿直线传播2.光线不会发生碰撞3.光路可逆性Whitted-StyleRayTracing递归算法,包括了光

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

Ray Tracing

光线追踪

在这里插入图片描述

在这里插入图片描述
1.光沿直线传播
2.光线不会发生碰撞
3.光路可逆性

Whitted-Style Ray Tracing

递归算法,包括了光线的反射与折射
在这里插入图片描述
在这里插入图片描述

求交点

在这里插入图片描述
在这里插入图片描述
交点必定满足两个方程,则可以通过参数化解出来t(t > 0 射线),则可以求出交点。

光线与三角形求交点:
在这里插入图片描述
求解公式:
在这里插入图片描述
MT算法:用重心坐标表示三角形内的点,如果t>0,并且b1,b2,1-b1-b2 >=0,求出的解才有意义。

加速求交点

在这里插入图片描述
复杂图片,计算量会很大!

Bounding Volumes 包围盒

在这里插入图片描述
和包围盒的面求交:
在这里插入图片描述
只有当所有对面都进入,光线才真正进入;
光线离开任意一对对面,光线就离开;
在这里插入图片描述

满足求解条件:
在这里插入图片描述

BVH

主要思想:把物体分隔开,求取它的包围盒,保证物体不会重复出现在多个包围盒中,但是,它对空间的划分没有那么严格,有可能在空间上会重叠。
在这里插入图片描述在这里插入图片描述

划分方法:
想法1:选择最长的维度进行划分
想法2:取最中间的物体,进行划分,保持树高度上的平衡(可采用快速选择算法)
在这里插入图片描述
BVH数据结构:
在这里插入图片描述
伪代码:
在这里插入图片描述
KDtree 与 BVH:
在这里插入图片描述

Basic radiometry(辐射度量学)

在这里插入图片描述
辐射通量、辐射强度、 辐照度、辐射亮度
在这里插入图片描述

Radiant flux

在这里插入图片描述

辐射能力、接收能量、传播中的能量
在这里插入图片描述

intensity

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
LED灯的60W并不是60W,而是相当于60W的白炽灯
在这里插入图片描述

Irradiance

在这里插入图片描述
面积是垂直法线的面积:
在这里插入图片描述

Radiance

在这里插入图片描述

ray tracing in one weekend_rocket用法
在这里插入图片描述

BRDF 双向反射分布函数

在这里插入图片描述
反射方程:
在这里插入图片描述
困难:光线不止弹射一次,(递归)
在这里插入图片描述

渲染方程:
在这里插入图片描述
面光源采用积分;
对于其他物体发射出来的光,可以视为一个新的光源;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

概率论回顾

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

蒙特卡洛路径追踪

蒙特卡洛积分

在这里插入图片描述

在这里插入图片描述
例子:均匀采样
在这里插入图片描述

在这里插入图片描述
1.样本越多,越接近
2.在x上采样,在x上积分
在这里插入图片描述

路径追踪

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接光照伪代码:
在这里插入图片描述
引出间接光照:
在这里插入图片描述

在这里插入图片描述
问题:
在这里插入图片描述
N=1为路径追踪
在这里插入图片描述
在像素内发射多条路径:
在这里插入图片描述
ray tracing in one weekend_rocket用法
问题2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从光源采样:
在这里插入图片描述

ray tracing in one weekend_rocket用法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213951.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 利用Xstream注解生成和解析xml[通俗易懂]

    java 利用Xstream注解生成和解析xml[通俗易懂]java 利用Xstream注解生成和解析xml

    2022年4月23日
    46
  • Mock 测试

    Mock 测试Mock基本概念介绍mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。好处团队并行工作 团队间不需互相等待对方进度,只需约定好相互之间的数据规范(接口文档),即可使用mock构建出可用接口,然后尽快进行开发和自测,提前发现缺陷 测试驱动开发TDD(Test-DrivenDevelopment) 单元测试是TDD实现的基石,而TDD经常会碰到协同模块尚未开发完成的情况,但有了mock,当接口定义好后,测试人

    2022年6月20日
    34
  • java中strictfp关键字,java strictfp关键字用法大全详解

    java中strictfp关键字,java strictfp关键字用法大全详解一、strictfp关键字简介strictfp是Java中提供的一个保留关键字,该关键字是从这第javaJDK2版本儿开始出现的一直沿用到现在,只不过很多情况下都不怎么使用,所以容易被大家遗忘,因此今天我们来介绍一下这个关键字的用法和使用详解案例。strictfp实际上是对浮点类型做精确运算的一个关键字,实际意思是FP-strictfp,Java中的浮点类型有float和double两种,当这两…

    2025年7月24日
    3
  • 第一天python是干什么的–数字常量

    第一天python是干什么的–数字常量Python是干什么的?Python历史发明人:guidovanrossum1989名称:montypython马戏团发音:拍桑美国拍森英语Python能干啥?Python

    2022年7月5日
    20
  • java websocket框架_websocket监听数据库

    java websocket框架_websocket监听数据库HandlerSocket简介HandlerSocket是针对Mysql的一个NoSQL插件,它作为一个守护进程工作在mysqld进程里面,接收tcp连接,并处理来自客户端的请求。HandlerSocket不支持SQL查询,作为替代,它支持表的简单的CRUD操作。由于下面的原因,在某些情况下HandlerSocket比mysqld/libmysql对儿更快速:-HandlerSocket处理数据…

    2022年8月24日
    5
  • get请求中url传参中文乱码问题–集锦「建议收藏」

    =================================================分享一个好友的人工智能教程。零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助!点击查看教程================================================= 在项目中经常会遇到中文传参数,在后台接收到乱码问题。那么在遇到这种情况下我们应该怎么…

    2022年2月24日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号