Files
XCEngine/docs/api/XCEngine/Core/Math/Math.md

3.5 KiB
Raw Blame History

Math

命名空间: XCEngine::Math

类型: submodule

描述: 定义向量、矩阵、四元数、颜色和基础几何体等运行时数学类型。

概览

Core/Math 是引擎运行时的基础数学层。它承载了场景变换、摄像机矩阵、包围体计算、颜色处理和几何查询依赖的核心类型。

从结构上看,它大致分成几层:

这套 API 的设计方向很接近商业引擎常见的运行时 math layer但当前不同类型成熟度并不完全一致。向量、Matrix4Quaternion 已经比较可用;部分几何类型和个别矩阵构造路径仍然需要结合源码行为理解。

设计要点

  • 当前所有基础数学类型都采用公开字段和轻量值类型设计。
  • 大部分函数是静态工厂或内联运算,倾向直接可读而不是极限泛型化。
  • 若和 Unity 风格类比:
    • Vector3 / Quaternion / Matrix4 的心智模型比较接近 Unity 同名类型
    • 但具体行为仍应以当前源码为准,而不是默认等同 Unity
  • 当前数学层默认不做运行时边界检查,例如向量和矩阵的 operator[] 都没有保护。

当前实现现状

  • Lerp() 在当前向量实现里会 clamp t[0, 1],不是无界线性插值。
  • MultiplyPoint() 当前只是把点乘以齐次矩阵并直接取 x/y/z,不会做透视除法。
  • Matrix4::Inverse()Matrix3::Inverse() 在奇异矩阵情况下都会返回 Identity(),不会报错。
  • Matrix3::RotationX/Y/Z() 当前实现从零矩阵开始填值,未设置的主对角项保持为 0,这会让结果和标准旋转矩阵不同。

头文件

推荐阅读顺序

  1. 先读 Math,确认常量、角度换算和 EPSILON 约定。
  2. 再读 Vector3Quaternion,这是变换和空间计算最常用的两类。
  3. 然后读 Matrix4,理解当前矩阵乘法、投影和分解约定。
  4. 需要二维或齐次向量时再补 Vector2Vector4

相关指南

相关文档