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系统课程视频
  • 展厅场景搭建

    • 1. 学前说明、展厅效果
    • 2. Blender查看展厅模型
    • 3. vue3+Vite +threejs
    • 4. 加载展厅gltf模型
    • 5. 发光属性emissive
      • 6. Blender设置发光属性
      • 7. 发光贴图.emissiveMap
      • 8. Blender自发光贴图
      • 9. Blender烘焙光照到贴图
      • 10. Blender烘焙全景图
      • 11. Blender设置环境贴图、涂层
      • 12. gui调试环境贴图
      • 13 .gui调节材质涂层
      • 14. threejs渲染曝光功能
      • 15. 展厅背景音乐
      • 16. 练习题-按钮开关背景音乐
      • 视频作为纹理贴图
      • 18. 色差问题—视频纹理颜色空间
      • 19. 展厅屏幕播放宣传视频
    • 展厅漫游

    • Vue+Threejs展厅
    • 展厅场景搭建
    郭隆邦
    2024-05-27
    目录

    5. 发光属性emissive

    # 发光属性.emissive

    这节课给大家介绍一个threejs材质的发光属性.emissive。

    # 知识回顾:材质颜色color与光源

    在前面基础课程给大家介绍过,材质的颜色属性color,可以设置物体颜色,然后通过光照控制控制颜色明暗。

    const geometry = new THREE.BoxGeometry(100, 100, 100);
    const material = new THREE.MeshLambertMaterial({
        color: 0x00ffff,
    });
    const mesh = new THREE.Mesh(geometry, material); 
    scene.add(mesh); 
    
    const directionalLight = new THREE.DirectionalLight(0xffffff, 1.0);
    directionalLight.position.set(100, 60, 50);
    scene.add(directionalLight);
    

    改变光照强度可以看到颜色明暗的变化

    const directionalLight = new THREE.DirectionalLight(0xffffff, 0.2);
    

    对于受光照影响的材质,如果不设置光源,材质颜色属性color和颜色贴图map颜色值就是一片漆黑,也看不到。

    # 发光属性emissive

    threejs材质的发光属性emissive,和.color一样也可以用来控制物体的渲染颜色。但是区别在于发光属性emissive设置颜色值。

    const material = new THREE.MeshLambertMaterial({
        // emissive:0x00ff00//发射绿光
        emissive:0xff0000//发射红光
    });
    

    # 发光强度.emissiveIntensity

    直接设置emissive的颜色值,可以改变rgb某个颜色值的发光明暗

    const material = new THREE.MeshLambertMaterial({
        // emissive:0xff0000//发射更亮的红光
        emissive:0x440000//发射更暗的红光
    });
    

    也可以通过发光强度属性.emissiveIntensity整体调节emissive。

    const material = new THREE.MeshLambertMaterial({
        emissive:0xff0000,//发射红光
        emissiveIntensity:0.2//发光强度 默认值1.0
    });
    

    # .emissive和.color共同影响颜色

    当有光源时候,.emissive和.color会共同影响到渲染结果,相当于在.color基础上叠加一个发光颜色效果。

    你可以对比在有光源情况下,一个受光照影响材质,设置emissive颜色和不设置差异(.emissive默认是黑色)。

    const geometry = new THREE.BoxGeometry(100, 100, 100);
    const material = new THREE.MeshLambertMaterial({
        color:0xff0000,
        emissive:0x440000
    });
    const mesh = new THREE.Mesh(geometry, material); 
    scene.add(mesh); 
    
    const directionalLight = new THREE.DirectionalLight(0xffffff, 1.0);
    directionalLight.position.set(100, 60, 50);
    scene.add(directionalLight);
    

    # .color黑色,设置.emissive

    有光源时候,你把color设置为黑色,这时候你设置.emissive产生颜色,不会受到color影响。

    const geometry = new THREE.BoxGeometry(100, 100, 100);
    const material = new THREE.MeshLambertMaterial({
        color:0x000000,
        emissive:0x440000
    });
    const mesh = new THREE.Mesh(geometry, material); 
    scene.add(mesh); 
    
    const directionalLight = new THREE.DirectionalLight(0xffffff, 1.0);
    directionalLight.position.set(100, 60, 50);
    scene.add(directionalLight);
    
    4. 加载展厅gltf模型
    6. Blender设置发光属性

    ← 4. 加载展厅gltf模型 6. Blender设置发光属性→

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