从THREE.js DataTexture获取uv-Coordinates

时间:2013-08-18 10:01:08

标签: three.js textures

我正在尝试使用THREE.js实现一个小型Volumerenderer。为此,我有一个大的(至少65000个元素)数组,其强度值(太大而不能作为一个统一的数组传递)到着色器,光线投射和所有这些将发生。我想使用THREE.DataTexture,但我似乎在着色器中没有任何uv坐标并得到以下错误:

Error: WebGL: vertexAttribPointer: must have valid GL_ARRAY_BUFFER binding 
Error: WebGL: drawArrays: bound vertex attribute buffers do not have sufficient size for given first and count 

这是我的设置:

在init-function中:

var data = new Uint8Array(textureArray);
var texture = new THREE.DataTexture(data, 128, 128, THREE.AlphaFormat);
texture.needsUpdate = true;
uniforms = {
texture: {type: "t", value: texture}
}

在顶点着色器中:

varying vec2 vUv;
void main(){
vUv = uv;
}
片段着色器中的

uniform sampler2D texture;
varying vec2 vUv;

着色器用于粒子系统上的THREE.ShaderMaterial。只要我在顶点着色器中没有vUv = uv赋值,并且当我将它放在像这样的立方体上时纹理就可以工作,一切正常:

cube = new THREE.CubeGeometry(10,10,10);
material = new THREE.BasicMaterial({map: texture});
mesh = new THREE.Mesh(cube, material);
scene.add(mesh);

有没有人有类似的问题或想法我的错误可能是什么?

0 个答案:

没有答案