繁体   English   中英

Threejs-在平面上应用纹理始终会呈现黑色,

[英]Threejs - Applying a texture to plane always renders black,

我正在尝试将纹理应用于平面。 我正在使用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);尝试floorTexture.repeat.set(1, 1); 看看它是否真的被应用了。

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

我自己为此苦了一段时间。 检查映像的文件系统权限。 我的设置为640。当我将其更改为664时,图像将按原样渲染。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM