Threejs - 将纹理应用于平面始终呈现黑色,

时间:2013-06-30 07:21:09

标签: javascript 3d three.js

我正在尝试将纹理应用于平面。我正在使用和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);

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

谢谢!

3 个答案:

答案 0 :(得分:0)

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

此外,您可以考虑包含纹理,以便任何人都可以对其进行测试。我只是使用自定义纹理在r.58中运行你的代码,它对我来说很好。

答案 1 :(得分:0)

我自己一直在努力解决这个问题。检查图像的文件系统权限。我的设置为640.当我将它们更改为664时,图像按原样呈现。

答案 2 :(得分:0)

您的问题可能是场景中没有环境光,尝试添加白色环境光以查看它是否能解决您的问题