gpt4 book ai didi

c++ - 如何在 opengl Tessellation Evaluation 着色器中插入矩阵

转载 作者:行者123 更新时间:2023-11-30 04:44:16 27 4
gpt4 key购买 nike

在互联网上找不到任何地方。使用 tessalation 评估着色器,我可以像这样为 vec2 或 vec3 插入值:

vec3 interpolate3D(vec3 v0, vec3 v1, vec3 v2)
{
return vec3(gl_TessCoord.x) * v0 + vec3(gl_TessCoord.y) * v1 +vec3(gl_TessCoord.z) * v2;
}

我如何做同样的事情来传入和插值矩阵?希望这个用于法线贴图的切线矩阵和变换矩阵以从高度图计算新的顶点法线。谢谢

最佳答案

您无需从标量构造 vector 来计算 vector 与标量的乘积。可以将 vector 乘以标量。如果 vector 乘以标量,则 vector 的每个分量都乘以标量。
请注意,如果二元运算符(如 *+)的两边都是 vector (具有相同的大小),则运算将按分量执行。如果一侧是 vector ,另一侧是标量,则运算应用于 vector 的所有分量。
参见 Vector and Matrix Operations .

所以你的问题的表达可以写成:

return v0 * gl_TessCoord.x + v1 * gl_TessCoord.y + v2 * gl_TessCoord.z;

同样的规则适用于矩阵。甚至矩阵也可以乘以标量并按分量求和。如果 m0m1m2mat3 类型,那么您可以:

mat3 m = m0 * gl_TessCoord.x + m1 * gl_TessCoord.y + m2 * gl_TessCoord.z;

关于c++ - 如何在 opengl Tessellation Evaluation 着色器中插入矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57878130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com