首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于平板的射线盒相交,算法中Tnear和Tfar的含义是什么?

基于平板的射线盒相交,算法中Tnear和Tfar的含义是什么?
EN

Stack Overflow用户
提问于 2012-04-19 08:05:39
回答 1查看 2.7K关注 0票数 0

实际上,我曾经读过这里描述的算法:http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter3.htm这个算法可以决定光线是否击中轴对齐框。

该算法计算平面的相交距离,即: T1 = (boxmin - o) /d T2 = (boxmax - o) / maximum (xl,yl,zl)是盒子的最小范围,boxmax(xh,yh,zh)是盒子的最大范围。o(xo,yo,zo)是射线的原点,d(xd,yd,zd)是射线的方向矢量。它们都是vector3或float3变量。

然后,该算法在T1中找到最大分量,在T2中找到最小分量,并将它们分别设置为Tnear和Tfar。如果接近

虽然它很优雅,但我不明白为什么这个算法能做到这一点,有什么数学理论吗?

我不明白为什么他们需要T1和T2,为什么要这样计算,以及Tfar和Tnear在数学上的意义是什么。也许我们有三维空间中的直线方程,即(x-x0)/xd = (y-y0)yd = (z-z0)/zd,然后将x,y,z设为boxmin和boxmax。但我不确定。

非常感谢你为我解释这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-25 15:05:13

在三维几何中,t通常表示某点在直线上的位置。直线通常由x0 + n*t定义,其中x0是直线上的一个点(通常是“原点”),n是直线的方向向量。t_min和t_max是两个交点的t值。当t_min < t_max时,行与框相交,因此它们的名称。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10223985

复制
相关文章
FPGA中的CLOCK REGION和SLR是什么含义
不同类型的TILE按列排列构成了CLOCK REGION,如下图所示。实际上,考虑到时钟走线,每片FPGA都被分割为多个CLOCK REGION。
Lauren的FPGA
2020/04/27
3.9K0
空间射线与三角形相交算法的两种实现
任何复杂的三维模型都可以视作空间三角面片的集合,很容易碰到的一个问题就是空间射线与三角形相交的问题,例如拾取、遮蔽检测等。这里就总结下该问题的两种算法实现。
charlee44
2020/02/24
2.6K1
Linux 中的用户模式和内核模式是什么含义?
在 Linux 系统中,用户模式和内核模式是操作系统的两种不同运行模式。本文将深入探讨这两种模式的含义、区别以及运行原理,帮助读者更好地理解 Linux 系统的运行机制。
疯狂的KK
2023/07/01
1.3K0
Makefile中:=, =, ?=和+=的含义
在Makefile语法中,时不时会见到各种“=”号的赋值语句,除了常见的“=”和“:=”,还有“?=”等 那么这些赋值等号分别表示什么含义呢? “=” “=”是最普通的等号,然而在Makefile
看、未来
2022/05/06
1.5K0
Python中[ : n]、[m : ]、[-1]、[:-1]、[::-1]、[2::-1]和[1:]的含义
print(a[-1])     取最后一个元素 结果:[5] print(a[:-1])     除了最后一个取全部 结果:[ 1 2 3 4 ] print(a[::-1])     取从后向前(相反)的元素 结果:[ 5 4 3 2 1 ] print(a[2::-1])     取从下标为2的元素翻转读取 结果:[ 3 2 1 ]
狼啸风云
2020/04/02
8.8K0
Ray-AABB交叉检测算法
  最近在解决三维问题时,需要判断线段是否与立方体交叉,这个问题可以引申为:射线是否穿过立方体AABB。   在3D游戏开发中碰撞检测普遍采用的算法是轴对齐矩形边界框(Axially Aligned Bounding Box, AABB)包装盒方法,其基本思想是用一个立方体或者球体完全包裹住3D物体对象,然后根据包装盒的距离、位置等相关信息来计算是否发生碰撞。 slab的碰撞检测算法   本文接下来主要讨论射线与AABB的关系,主要对box2d碰撞检测使用的slab的碰撞检测算法(Slabs method
waylon
2018/03/08
5.1K0
Ray-AABB交叉检测算法
算法练习(11) - 寻找相交链表的相交节点
将长度比较长的链表指针提前赶到短链表的头结点位置,然后2个指针以同样步伐一步一步往下走,直到找到相交节点或返回空值
惊羽-布壳儿
2022/06/15
2990
算法练习(11) - 寻找相交链表的相交节点
FPGA中的BEL, SITE, TILE是什么含义
BEL(Basic Element)是FPGA内部的基本单元,属于器件对象,也就是器件结构的一部分。换言之,即便是一个空设计,只要打开Device视图,也能看到BEL。具体地,BEL包括触发器、查找表、进位链、F7MUX、F8MUX和F9MUX(这里以UltraScale系列芯片为例,不难看出,这些基本单元都在SLICE内)。BEL还包括DSP内部的基本单元。如下图所示。不同系列器件对BEL的定义略有不同,但SLICE中的基本单元都是BEL,也是最常用的BEL。事实上,选中器件内部单元,在其属性窗口中,查看Class值就看确定它是不是BEL。
Lauren的FPGA
2020/04/27
3.9K0
《火炬之光》中的“X射线”效果
刚开始玩就注意到人被遮挡时, 并不是像其它游戏那把遮挡物半透明化, 而是把被遮挡的部分处理成一种透视效果:
逍遥剑客
2019/02/20
8300
Python中 *args 和 **kwargs 的含义?
小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
程序员小猿
2021/01/19
7520
基于相交线的立体平面SLAM
标题:Stereo Plane SLAM Based on Intersecting Lines
点云PCL博主
2020/12/17
1.2K0
基于相交线的立体平面SLAM
Python中 *args 和 **kwargs 的含义?
答:在python中,*args和**kwargs通常使用在函数定义里。*args 和 **kwargs 都允许你给函数传不定数量的参数,即使在定义函数的时候不知道调用者会传递几个参数。ps: *args和**kwargs只是一个大家都遵守的习惯,名字可以任意写的 。
用户1564362
2019/11/12
1.2K0
Python中变量的含义和作用
变量可以说是任意一个编程语言都存在的一个定义,变量是必学。变量分为三个方面来讲解,分别是变量的作用,定义变量、认识数据类型。三个方面也就是三篇文章,大家可以持续关注来进一步学习Python变量。
python自学网
2022/02/24
1K0
Java中static的含义和用法
3.当成员被static修饰之后,就多了一种访问方式,除了可以被对象调用之外,还可以直接
全栈程序员站长
2022/09/07
7360
【笔记】《计算机图形学》(12)——图形学的数据结构
之前我的笔记都是在OneNote上记录的,苦于OneNote羸弱的跨平台性,我决定抛弃OneNote,今后的笔记都用Markdown记录,方便迁移也方便调整格式。文章一开始编辑后会保存在我的Github仓库中(https://github.com/ZFhuang/Study-Notes),整理完后会发到公众号上,并延时同步到我的腾讯云。
ZifengHuang
2021/02/04
6.1K0
IPtables中SNAT、DNAT和MASQUERADE的含义
IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT。
全栈程序员站长
2022/07/02
9200
UIVIew中center,bounds和frame的含义
frame - this is the property you most often use for normal iPhone applications. most controls will be laid out relative to the “containing” control so the frame.origin will directly correspond to where the control needs to display, and frame.size will determine how big to make the control.
EltonZheng
2021/01/22
5130
numpy数组中冒号和负号的含义
numpy数组中":"和"-"的意义 在实际使用numpy时,我们常常会使用numpy数组的-1维度和":"用以调用numpy数组中的元素。也经常因为数组的维度而感到困惑。 总体来说,":"用以表示当前维度的所有子模块 "-1"用以表示当前维度所有子模块最后一个,"负号用以表示从后往前数的元素,-n即是表示从后往前数的第n个元素"#分片功能 a[1: ] 表示该列表中的第1个元素到最后一个元素,而,a[ : n]表示从第0个元素到第n个元素(不包括n) import numpy as np POP_SI
演化计算与人工智能
2020/08/14
2.2K0
无序性和不可重复性的含义是什么
无序性和不可重复性是集合的两个基本特征,它们使得集合成为了一种非常有用的数据结构。在编程中,我们经常使用集合来存储一组唯一的元素,并且可以方便地进行元素的添加、删除、查找等操作。
程序员朱永胜
2023/10/14
5190
游戏开发中的物理之射线投射
游戏开发中最常见的任务之一是投射光线(或自定义形状的物体)并检查其撞击。这样就可以进行复杂的行为,AI等。本教程将说明如何在2D和3D中执行此操作。
海拥
2021/08/23
8630

相似问题

射线盒相交理论

50

我的射线盒相交算法效率有多低?

13

基于矩阵变换的场景遍历中的射线盒相交

14

射线盒相交计算错误距离

10

射线追踪射线盘相交

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档