我有一个基于 Three.js 的示例,我正在研究一个更大的项目。为了超级简化,我有一个带有围绕中心点运行的纹理的平面。它实际上是附加到中心点,然后旋转中心点。(进一步测试表明 parenting 和 offset from center 没有影响,只是与相机角度的不同导致了翘曲,随着角度的增加,转动相机而不是物体仍然显示翘曲)
使用 WebGL 渲染器一切正常。使用画布渲染器,我必须调整纹理加载(imageutils 无法正确加载画布,必须明确使用纹理和图像加载器),但它在 chrome 中工作正常。然而在 safari 中,当飞机移动时,纹理会暴露飞机的角落(位置会扭曲和偏移),直接放在相机上就可以了(https://dl.dropbox.com/u/6768888/StackOverflow/Screen%20Shot% 202013-03-20%20at%202.37.47%20PM.png),但从侧面看它真的变形了(https://dl.dropbox.com/u/6768888/StackOverflow/Screen%20Shot%202013-03- 20%20at%202.38.04%20PM.png , https://dl.dropbox.com/u/6768888/StackOverflow/Screen%20Shot%202013-03-20%20at%202.38.17%20PM.png )
我这似乎是画布渲染器中的一个错误,但我不确定,基于我之前遇到的纹理加载问题,也许有解决办法?我正在使用透支:真
var geometry = new THREE.PlaneGeometry(width, height, 1, 1);
var material = new THREE.MeshBasicMaterial( { overdraw:true, map:texture, side:THREE.DoubleSide } );
mesh = new THREE.Mesh( geometry, material );
任何想法或建议将不胜感激,不想在没有更多信息的情况下提交错误报告,因为这是我在 Three.js 的第一次真正的尝试,所以不确定是我还是系统......
还应该注意的是,删除过度绘制只是广告接缝,它不会影响移动,也使对象更大或添加更多细分只会使移动沿着那些新的中断发生,它不会从根本上改变问题。