【发布时间】:2015-03-25 03:25:49
【问题描述】:
我正在尝试将“volume._data”传递给我在threeJS 中的片段着色器。 它是一个 Float32Array,最多可以包含:512x512x512x4 个元素。
var mat = new THREE.ShaderMaterial({
uniforms: {
color: {type: 'f', value: 1.0},
ijk: {type: '??', value: volume._data},
dimensions: {type: 'vec3', value: volume._dimensions},
ijktoras: {type: 'mat4', value: volume._RASToIJK}
},
vertexShader: document.
getElementById('vertShader').text,
fragmentShader: document.
getElementById('fragShader').text
});
问题是我不知道该给它哪种类型。或者是传递 2D 纹理的最佳选择?
我对纹理的担心是它太大而无法传递给着色器。
是否有任何解决方法可以将这些信息量传递给着色器?
我的总体目标是,在片段着色器中,将屏幕像素位置映射到对象世界的坐标。然后将这个世界坐标映射到我的volume._data(ijk空间)上以在屏幕上显示特定的颜色。
谢谢你, 尼古拉斯
【问题讨论】:
标签: arrays three.js webgl texture2d