gpt4 book ai didi

three.js - 如何将纹理应用于 Three.js 中的自定义几何图形

转载 作者:行者123 更新时间:2023-12-04 19:02:18 24 4
gpt4 key购买 nike

我成功地将纹理应用于立方体几何图形:

var geometry = new THREE.CubeGeometry(10, 10, 10);
var meshMaterial = new THREE.MeshPhongMaterial({ transparent: false, map: THREE.ImageUtils.loadTexture('/app/images/wood.jpg') });
meshMaterial.side = THREE.DoubleSide;
var mesh = new THREE.Mesh(geometry, meshMaterial);

有了这个,我得到了一个漂亮的纹理立方体,如下所示:

enter image description here

现在我想将相同的纹理(512x512 jpg 图像)应用于我从 STL 加载的自定义模型,这就是我得到的(在这种情况下是金字塔):

enter image description here

这是代码:
loader.load(jsonParam.url, function (geometry) {
var meshMaterial = new THREE.MeshPhongMaterial({ transparent: false, map: THREE.ImageUtils.loadTexture('/app/images/wood.jpg') });
meshMaterial.side = THREE.DoubleSide;

var mesh = new THREE.Mesh(geometry, meshMaterial);

mesh.castShadow = false;
mesh.receiveShadow = true;
scene.add(mesh);
});

为什么没有应用纹理,而我只得到似乎是纹理颜色的平均值?

最佳答案

你需要UV贴图。
您可以在建模软件中编辑模型以添加 UV 坐标,也可以按照发布的答案生成它们 here .
我想另一种选择是创建自己的着色器,在不使用 UV 坐标的情况下将纹理映射到模型表面。

关于three.js - 如何将纹理应用于 Three.js 中的自定义几何图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34932860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com