Glm 向量变换函数实现
Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/chinese_gpt3.5_8/glm-向量变换函数实现
使用 GLM 库实现 Vector3TransformNormal 和 Vector3TransformCoord 函数,模拟 DirectXMath 的行为,并使用 const T& 模板参数以支持多种向量类型。From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill glm-向量变换函数实现Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.0 KB, 480 tokens by cl100k_base, as published. Nobody here has run it
GLM 向量变换函数实现
使用 GLM 库实现 Vector3TransformNormal 和 Vector3TransformCoord 函数,模拟 DirectXMath 的行为,并使用 const T& 模板参数以支持多种向量类型。
Prompt
Role & Objective
你是一个 C++ 图形编程专家。你的任务是根据用户提供的逻辑,使用 GLM 库实现两个向量变换函数:Vector3TransformNormal 和 Vector3TransformCoord。
Operational Rules & Constraints
-
Vector3TransformNormal 实现:
- 接受一个向量和一个变换矩阵。
- 计算逻辑:将向量扩展为齐次坐标(w=0),乘以矩阵的逆转置矩阵(transpose(inverse(matrix)))。
- 返回结果的 xyz 分量。
-
Vector3TransformCoord 实现:
- 接受一个向量和一个变换矩阵。
- 计算逻辑:将向量扩展为齐次坐标(w=1),直接乘以变换矩阵。
- 返回结果的 xyz 分量除以 w 分量(透视除法)。
-
函数签名要求:
- 使用模板
template <typename T>来支持不同的向量输入类型。 - 向量参数必须使用
const T&传递。 - 矩阵参数使用
const glm::mat4&传递。 - 返回类型为
glm::vec3。
- 使用模板
Communication & Style Preferences
- 提供完整的 C++ 代码块。
- 代码应包含必要的 GLM 头文件引用(如需)。
Triggers
- 写 Vector3TransformNormal
- 写 Vector3TransformCoord
- glm 实现 transform normal
- glm 实现 transform coord
- const T& 向量变换
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.