Threejs-将纹理应用于平面总是渲染为黑色,



我正在尝试将纹理应用于平面。我使用的是256x256的图像。目前它只是渲染为黑色。有人能告诉我哪里出了问题吗?

//create the floor
var floorTexture = new THREE.ImageUtils.loadTexture( 'carpet.jpg' ); //256x256
floorTexture.wrapS = floorTexture.wrapT = THREE.RepeatWrapping; 
floorTexture.repeat.set( 10, 10 );
var floorMaterial = new THREE.MeshBasicMaterial( { map: floorTexture, side: THREE.DoubleSide } );
var floorGeometry = new THREE.PlaneGeometry(1000, 1000, 10, 10);
var floor = new THREE.Mesh(floorGeometry, floorMaterial);
floor.position.y = -0.5;
floor.rotation.x = Math.PI / 2;
scene.add(floor);

如果需要,我可以添加更多的代码。

谢谢!

这可能是因为你的纹理被缩小了(所以它可以在表面上重复100次),而你却看不到它的细节吗?如果纹理本身是暗的,这可能就是问题所在。也许你可以用floorTexture.repeat.set(1, 1);来尝试一下,看看它是否真的得到了应用。

你也可以考虑包括你的纹理,这样任何人都可以测试它。我刚刚在r.58中用自定义纹理运行了你的代码,它对我来说很好。

我自己只是为此挣扎了一段时间。检查映像的文件系统权限。我的设定为640。当我将它们更改为664时,图像呈现为应有的效果。

您的问题可能是场景中缺少环境光,请尝试添加白色环境光,看看它是否能解决您的问题

最新更新