shader中,向量的三种乘法

总结一下
两个向量的元素相乘、点乘和叉乘可以使用内建的GLSL(OpenGL Shading Language)函数进行计算。以下是如何在Cocos的GLSL着色器中实现这些操作:

元素相乘(Element-wise multiplication):

vec2 vecA = vec2(1.0, 2.0);
vec2 vecB = vec2(3.0, 4.0);
vec2 result = vecA * vecB; // 结果:(1.0 * 3.0, 2.0 * 4.0) = (3.0, 8.0)

点乘(Dot product):

vec2 vecA = vec2(1.0, 2.0);
vec2 vecB = vec2(3.0, 4.0);
float dotProduct = dot(vecA, vecB); // 结果:1.0 * 3.0 + 2.0 * 4.0 = 11.0

对于3D向量:

vec3 vecA = vec3(1.0, 2.0, 3.0);
vec3 vecB = vec3(4.0, 5.0, 6.0);
float dotProduct = dot(vecA, vecB); // 结果:1.0 * 4.0 + 2.0 * 5.0 + 3.0 * 6.0 = 32.0

叉乘(Cross product)

vec3 vecA = vec3(1.0, 2.0, 3.0);
vec3 vecB = vec3(4.0, 5.0, 6.0);
vec3 crossProduct = cross(vecA, vecB); 
// 结果:(-3.0, 6.0, -3.0)

你可能感兴趣的:(unity,shader,计算机图形学,unity,cocos2d,图形渲染)