1

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

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

谢谢!

4

3 回答 3

0

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

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

于 2013-06-30T17:47:52.457 回答
0

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

于 2015-09-24T21:55:18.610 回答
0

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

于 2017-07-29T23:33:43.460 回答