javascript - 从threejs中的数组生成纹理

标签 javascript three.js texture2d

我正在尝试从 threeJS 中的数组生成纹理,但它没有按预期工作。

看来我生成贴图的方式不对。

如果我使用以下纹理,它会按预期工作。 http://www.html5canvastutorials.com/demos/assets/crate.jpg

crateTex = THREE.ImageUtils.loadTexture('data/crate.jpg');

enter image description here

如果我生成一个虚拟纹理并尝试显示它,它是全黑的...

var dummyRGBA = new Uint8Array(4 * 4 * 4);
for(var i=0; i< 4 * 4; i++){
  // RGB from 0 to 255
  dummyRGBA[4*i] = dummyRGBA[4*i + 1] = dummyRGBA[4*i + 2] = 255*i/(4*4);
  // OPACITY
  dummyRGBA[4*i + 3] = 255;
}

dummyDataTex = new THREE.DataTexture( dummyRGBA, 4, 4, THREE.RGBAFormat );
dummyDataTex.needsUpdate = true;

dummyTex = new THREE.Texture(dummyDataTex);

enter image description here

最佳答案

我认为你的错误在于你制作了一个纹理的纹理。

当你这样做时:

dummyDataTex = new THREE.DataTexture( dummyRGBA, 4, 4, THREE.RGBAFormat );

您在此处创建的对象 dummyDataTex 已经是 THREE.Texture 类型。

所以你的下一步:

dummyTex = new THREE.Texture(dummyDataTex);

不是必需的。您应该立即使用 dummyDataTex

关于javascript - 从threejs中的数组生成纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28188775/

相关文章:

javascript - 重载属性有什么用?

javascript - 如何模拟点击显示:none on hover image (how to listen for any mouse click in a browser)

某些设备上的 Android 'white box' 纹理 OpenGL ES 1.0

c# - 将字节数组转换为 texture2D XNA

javascript - 如何使用php将动态添加的数据保存并显示到json?

javascript - 错误 : Uncaught (in promise): Error: Cannot match any routes RC4 Child Routes

javascript - 检测 Object3D 是否正在接收阴影 (r86)

three.js - 鼠标悬停时重新渲染对象

javascript - 将 Three.js 场景导出到 STL,保持动画完好无损

objective-c - 我如何复制另一个Texture2D的一部分来创建自己的Texture2D