在 GLSL 中调酒能以某种方式减去吗?例如: vec.-yx-wz
这样做的目的是通过简单的定义获得 2d 法线:
#DEFINE NORMALE_PACK(v) (v).-yx-wz
#DEFINE NORMALE_1(v) dir.-yx
#DEFINE NORMALE_2(v) vec.-wz
void main(){
...
float l = dot( NORMALE_PACK(dir), dir2);
}
没有这个,我通过以下方式实现:
void main(){
...
vec4 normale = vec4(-dir.y, dir.x, -dir.w, dir.z); // +1 cycle on modern hardware, more - on older
float l = dot( normale, dir2);
}