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.Vue+Three.js基础

  • 2.场景搭建Three+Blender

    • 1. 3D建模软件搭建3D场景
    • 2. Blender下载、安装、中文界面
    • 3. Blender基本操作:旋转缩放平移
    • 4. Blender编辑、保存网格模型
    • 5. GLTF格式简介(Web3D领域JPG)
    • 6. Blender生成gltf,threejs加载
    • 7. Blender导出gltf设置半透明材质
      • 8. 建模软件与threejs坐标系xyz对应
      • 9. 层级模型、获取模型节点
      • 10. 模型材质共享问题
      • 11. 加载gltf,相机设置(收费站)
      • 12. 练习题-相机参数设置(园区)
      • 13. 加载gltf模型相机.lookAt()设置
    • 3.渲染效果提升(材质光照)

    • 4.渲染性能、模型压缩

    • 5.封装、进度条、切视角

    • js 3D可视化
    • 2.场景搭建Three+Blender
    郭隆邦
    2024-03-09
    目录

    7. Blender导出gltf设置半透明材质

    # Blender导出gltf设置半透明材质

    回顾:上节课给大家演示了Blender创建一个模型,设置材质颜色,并导出gltf,最后threejs加载。

    const loader = new GLTFLoader()
    loader.load('./长方体.glb',function(gltf){
        scene.add(gltf.scene);
    })
    

    本节课继续上街内容讲解,通过Blender设置模型材质透明相关属性,threejs加载gltf,gltf模型默认实现如下材质的半透明效果。

    const material = new THREE.MeshLambertMaterial({
        color: 0x00ffff, 
        transparent:true,//允许透明
        opacity:0.5,//透明程度
    });
    

    # Blender设置材质透明

    Blender材质设置Alpha对应threejs材质的.opacity属性。

    Blender右侧材质选项里面找到融合模式Blend Mode,设置为Alpha Blend(alpha融合)。相当于threejs材质里面设置transparent:true

    提醒:不同版本Blender交互界面可能有差异,但是整体思路都一样。

    # 导出测试

    上面材质设置好以后,导出glb模型,使用上节课代码测试,你会发现Blender绘制的立方体和下面代码立方体一样具有透明效果。

    // 长方体网格模型
    const geometry = new THREE.BoxGeometry(100, 100, 100);
    const material = new THREE.MeshLambertMaterial({
        color: 0x00ffff, 
        transparent:true,
        opacity:0.5,
    });
    const mesh = new THREE.Mesh(geometry, material); 
    
    6. Blender生成gltf,threejs加载
    8. 建模软件与threejs坐标系xyz对应

    ← 6. Blender生成gltf,threejs加载 8. 建模软件与threejs坐标系xyz对应→

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