You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MeshPhongMaterial创建的地面添加草地纹理?

用THREE.MeshPhongMaterial实现带草地纹理的地面材质

要给地面加上草地纹理,只需在MeshPhongMaterial中配置纹理映射,同时处理好纹理的平铺逻辑,具体操作如下:

  • 用THREE.TextureLoader加载草地纹理图片,设置纹理的重复模式和重复次数,避免纹理拉伸变形
  • 在材质配置中添加map属性,关联加载好的纹理
  • 保留原有材质的高光、颜色等配置,按需调整参数

完整代码示例:

// 加载草地纹理
const textureLoader = new THREE.TextureLoader();
const grassTexture = textureLoader.load('你的草地纹理图片路径.jpg');

// 设置纹理平铺,适配大尺寸地面
grassTexture.wrapS = THREE.RepeatWrapping;
grassTexture.wrapT = THREE.RepeatWrapping;
grassTexture.repeat.set(20, 20); // 重复次数可根据地面尺寸调整

// 创建带纹理的Phong材质
var groundMaterial = new THREE.MeshPhongMaterial({
    color: 0xff43fee, // 基础颜色会和纹理叠加,可根据纹理色调调整
    specular: 0x360000,
    map: grassTexture // 关联草地纹理
});

// 创建地面网格并添加到场景
groundMesh = new THREE.Mesh(new THREE.PlaneBufferGeometry(2000, 2000), groundMaterial);
groundMesh.rotation.x = -Math.PI / 2;
scene.add(groundMesh);

额外注意:

  • 确保纹理图片路径正确,可使用本地资源或相对路径
  • 如果纹理加载存在延迟,可在load方法中加入回调,确保纹理加载完成后再执行后续逻辑:
    textureLoader.load('你的草地纹理图片路径.jpg', function(texture) {
        // 此处编写材质创建、网格添加的代码
    });
    

内容的提问来源于stack exchange,提问作者Aditya Jadhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:15:33