之前发过一些相关帖子 就懒得整理了 为什么呢?(因为懒 哈哈哈) 今后如果有需要补充的就放在这里了!
U3D frac 即 WebGL 内置函数 fract 返回x的小数部分
float frac(float x)
{
return x-floor(x);
}
//线性插值
float lerp(float from,float to, float t )
{
t = max(0.0, min(1.0, t));
return from + ( to - from ) * t;
}
vec3 lerp(vec3 from,vec3 to, float t )
{
t = max(0.0, min(1.0, t));
vec3 tmp;
tmp.x = from.x + ( to.x - from.x ) * t;
tmp.y = from.y + ( to.y - from.y ) * t;
tmp.z = from.z + ( to.z - from.z ) * t;
return tmp;
}
vec4 lerp(vec4 from,vec4 to, float t )
{
t = max(0.0, min(1.0, t));
vec4 tmp;
tmp.x = from.x + ( to.x - from.x ) * t;
tmp.y = from.y + ( to.y - from.y ) * t;
tmp.z = from.z + ( to.z - from.z ) * t;
tmp.w = from.w + ( to.w - from.w ) * t;
return tmp;
}
//返回0-1之间的数
float saturate(float x)
{
return max(0.0, min(1.0, x));
}
vec3 saturate(vec3 v)
{
v.x = max(0.0, min(1.0, v.x));
v.y = max(0.0, min(1.0, v.y));
v.z = max(0.0, min(1.0, v.z));
return v;
}
mul=matrixCmpMult 这两个是等效的