因此,在 WebGL 中,我可以存储最多 2 个维度的纹理,并使用 texture2D(whatever) 在着色器中读取它;
如果我想存储一个 3 维纹理以便我可以在着色器上读取 3 维的数据,我该怎么做?
这是我的想法 - 我想知道我是否正确地接近它:
在 Javascript 中:
var info = [];
for (var x = 0; x < 1; x+=.1) {
for (var y = 0; y < 1; y+=.1) {
for (var z = 0; z < 1; z+=.1) {
info.push (x*y*z);
info.push(0);
info.push(0);
info.push(0);
}
}
}
//bind texture here- whatever
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 10, 100, 0,
gl.RGBA, gl.FLOAT, data_on_shader);
//other texture stuff
在着色器上:
uniform sampler data_on_shader;
x= texture.r//
y = texture.g//
z = texture.b//
xfixed = floor(x*10.)/10. + .5;
yfixed = floor(y*10.)/10. + .5;
zfixed = floor(z*10.)/10. + .5;
float data_received = texture2D(data_on_shader, vec2(xfixed, yfixed*10. + zfixed)).r;
在二维纹理中使用行主要顺序的效果?想法?
提前致谢!