game-engine - 表示为法线和偏移的平面?

标签 game-engine computational-geometry raytracing

我正在阅读别人的代码,他将平面表示为法线和偏移,但是 我不确定那个偏移量是多少。我猜它是从世界原点到平面中心的距离?

谢谢

最佳答案

很可能是从世界原点到平面的“距离”。不是到“平面中心”(什么是“平面中心”?),而是到平面本身。

我把“距离”这个词放在引号里,因为它可能会证明你的“距离”没有被归一化,即它乘以了某个因子。

3D平面的方程,你可能知道,是

A*x + B*y + C*z + D = 0

其中 (A, B, C) 是法向量,D 实际上是从原点到平面的有符号 距离。但是,当且仅当向量 (A, B, C) 被归一化时,D 将表示常规欧氏距离,即 A 的值, BCD 被缩放以便 |(A, B, C)| = 1。如果向量未归一化,则 D 是距离乘以 |(A, B, C)|

有时术语“偏移量”用于指代非归一化平面方程中的系数D。换句话说,在您的情况下,飞机可能仅由其 ABCD< 表示 系数。它们是否已归一化 - 您必须自己检查。

关于game-engine - 表示为法线和偏移的平面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434698/

相关文章:

reflection - BRDF 通常是如何实现的?

c++ - 内存泄漏问题

c# - 计算给定距离、方位、起点的端点

math - 求第一象限中圆和两条直线的切点

python - 访问搅拌器对象的旋转

c++ - 游戏引擎 C++ 和 Objective-C/Xcode 编码

java - Java中的最远点Voronoi图

open-source - 有哪些更好的开源光线追踪器?

unity3d - 在 Unity 2d 中使用坐标系和游戏屏幕?

c++ - 无法使用 vkCreateWin32SurfaceKHR 创建 vulkan 表面