public static Vertex GetPackedTo01(this Vertex me)
{
Vertex temp = new Vertex(me);
temp.Normalize();
temp= (temp * 0.5f) + new Vertex(0.5f, 0.5f, 0.5f);
return temp;
}
该代码是一个扩展方法,用于将 Vertex 对象中的向量值从范围 [-1, 1] 打包到范围 [0, 1]。以下是该方法的详细解析:
方法功能
输入:一个 Vertex 对象,表示一个3D向量。
输出:一个新的 Vertex 对象,其分量值被映射到 [0, 1] 范围内。
代码解析
1. 创建临时对象
Vertex temp = new Vertex(me);
创建一个新的 Vertex 对象 temp,并将其初始化为输入向量 me 的副本。
这一步是为了避免修改原始向量。
2. 归一化向量
temp.Normalize();
对 temp 向量进行归一化,使其长度为1。
归一化后的向量分量值范围仍然是 [-1, 1]。
3. 映射到 [0, 1] 范围
temp = (temp * 0.5f) + new Vertex(0.5f, 0.5f, 0.5f);
将归一化后的向量分量值从 [-1, 1] 映射到 [0, 1]。
具体步骤:
将向量分量值乘以 0.5,将其范围缩小到 [-0.5, 0.5]。
<
最低0.47元/天 解锁文章
72

被折叠的 条评论
为什么被折叠?



