我是一个 android 应用程序,我想计算一个曲面的法线依赖于该曲面的其他顶点。我不想在“主”程序中这样做,因为它需要很多时间。实际上,对于每个顶点,我为每个顶点传递 4 个浮点数组:
attribute vec3 a_bottom;
attribute vec3 a_left;
attribute vec3 a_right;
attribute vec3 a_top;
vec3 calculNormal( ) {
return normalize( cross( (a_left - a_right) , ( a_bottom - a_top ) ) );
}
我知道这是非常非常脏的代码,所以我不想传递 4 个数组,而是这样做:
vec3 calculNormal( ) {
vec3 a_left = CURRENT_FLOATBUFFER[ CURRENT_FLOAT_BUFFER_POSITION - 1 ];
vec3 a_bottom = CURRENT_FLOATBUFFER[ CURRENT_FLOAT_BUFFER_POSITION - X ];
...
return normalize( cross( (a_left - a_right) , ( a_bottom - a_top ) ) );
}
那么在顶点着色器程序中是否可以访问当前的浮动缓冲区?有没有像 currentFloat 这样的特殊关键字?还是我想念另一种可能性?