Three.js中文网 Three.js中文网
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
首页
免费视频
系统课 (opens new window)
  • Three.js基础课程
  • Vue3+Threejs 3D可视化
  • Threejs进阶课程
  • 展厅3D预览漫游
  • Threejs Shader
  • Blender建模基础
  • Three.js基础课程(旧版本) (opens new window)
  • 文章
WebGPU教程
  • WebGL教程
  • WebGL教程(旧版本) (opens new window)
3D案例
  • 本站部署(打开快) (opens new window)
  • 原英文官网文档 (opens new window)
Web3D系统课程视频
  • 0.学前说明

  • 1.Three.js快速入门

  • 2.几何体BufferGeometry

  • 3.模型对象、材质

  • 4.层级模型

  • 5.顶点UV坐标、纹理贴图

  • 6.加载外部三维模型(gltf)

    • 1. 建模软件绘制3D场景(Blender)
    • 2. GLTF格式简介 (Web3D领域JPG)
    • 3. 加载.gltf文件(模型加载全流程)
    • 4. OrbitControls辅助设置相机参数
    • 5. gltf不同文件形式(.glb)
    • 6. 模型命名(程序与美术协作)
    • 7. 递归遍历层级模型修改材质
    • 8. 外部模型材质是否共享的问题
    • 9. 纹理encoding和渲染器
    • 10. gltf模型更换.map(纹理.flipY)
    • 7.PBR材质与纹理贴图

    • 8.渲染器和前端UI界面

    • 9.生成曲线、几何体

    • 10.相机基础

    • 11.光源和阴影

    • 12.精灵模型Sprite

    • 13.后处理EffectComposer

    • 14.射线拾取模型

    • 15.场景标注标签信息

    • 16.关键帧动画

    • 17.动画库tween.js

    • Three.js教程
    • 6.加载外部三维模型(gltf)
    郭隆邦
    2023-01-28
    目录

    10. gltf模型更换.map(纹理.flipY)

    # 模型更换.map(纹理.flipY属性)

    下面给大家演示如何给gltf的网格模型Mesh更换颜色贴图.map。

    # 加载颜色贴图.map

    注意单独加载的纹理贴图的.encoding和webgl渲染器的.outputEncoding保持一致。

    const texLoader = new THREE.TextureLoader();
    const texture = texLoader.load('./黑色.png');// 加载手机mesh另一个颜色贴图
    texture.encoding = THREE.sRGBEncoding; //和渲染器.outputEncoding一样值
    

    # 更换gltf颜色贴图

    执行mesh.material.map = texture;新的纹理对象Texture赋值给.material.map就可以更换材质贴图。

    loader.load("../手机模型.glb", function (gltf) {
        const mesh = gltf.scene.children[0]; //获取Mesh
        mesh.material.map = texture; //更换不同风格的颜色贴图
    })
    

    注意:如果你直接给gltf模型材质设置.map属性更换贴图,会出现纹理贴图错位的问题,这主要和纹理对象Texture的翻转属性.flipY有关。

    # 纹理对象Texture翻转属性.flipY默认值

    .flipY表示是否翻转纹理贴图在Mesh上的显示位置。

    纹理对象Texture翻转属性.flipY默认值是true。

    // 纹理对象texture.flipY默认值
    console.log('texture.flipY', texture.flipY);
    

    # gltf的贴图翻转属性.flipY默认值

    gltf的贴图翻转属性.flipY默认值是false。

    loader.load("../手机模型.glb", function (gltf) {
        const mesh = gltf.scene.children[0]; //获取Mesh
        console.log('.flipY', mesh.material.map.flipY);
    })
    

    如果更换单独加载的纹理贴图,比如颜色贴图.map,注意把纹理贴图.flipY的值设置给gltf中纹理的值false。

    //是否翻转纹理贴图
    texture.flipY = false;
    
    9. 纹理encoding和渲染器
    1. PBR材质简介

    ← 9. 纹理encoding和渲染器 1. PBR材质简介→

    Theme by Vdoing | Copyright © 2016-2025 豫ICP备16004767号-2
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式