【发布时间】:2014-10-12 09:22:58
【问题描述】:
最近切换到three.js 作为我的渲染器,我现在想建立一个映射纹理的系统。但是,我不太确定最佳实践是什么。这是我的用例
- 我的关卡由许多几何形状的盒子组成
- 我需要能够将各种纹理映射到每个盒子几何体(草、水、石头、岩石等)的每个面
- 我希望尽可能以最高效、最注重性能的方式执行此操作,因此最好将其卸载到 GPU 上
- 我正在使用 Web GL 渲染器
我目前在精灵表中设置了我的纹理;每个纹理都是一个 64x64 像素的正方形,因此每个不同的纹理根据其位置偏移 64 个像素。
这是必要的,还是我应该只拥有一个包含许多不同纹理的目录,循环遍历它并为每个纹理创建一个 THREE.ImageUtils.loadTexture( "textures/someTexture.png" ); 的新实例?
或者有更有效的方法吗?
【问题讨论】:
-
我正在添加评论,因为我不确定这是否直接回答了问题;但我现在使用PxLoader 预加载内容,然后在需要时简单地创建一个
new THREE.Texture(),因为图像已经加载。我没有使用精灵表,我所有的纹理都是单独的文件。如果有人有更好的解决方案,请告诉我。
标签: javascript three.js game-engine texture-mapping node-webkit