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.模型对象、材质

    • 1. 三维向量Vector3与模型位置
    • 2. 欧拉Euler与角度属性.rotation
    • 3. 模型材质颜色(Color对象)
      • 4. 模型材质父类Material
      • 5. 模型材质和几何体属性
      • 6. 克隆.clone()和复制.copy()
    • 4.层级模型

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

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

    • 7.PBR材质与纹理贴图

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

    • 9.生成曲线、几何体

    • 10.相机基础

    • 11.光源和阴影

    • 12.精灵模型Sprite

    • 13.后处理EffectComposer

    • 14.射线拾取模型

    • 15.场景标注标签信息

    • 16.关键帧动画

    • 17.动画库tween.js

    • Three.js教程
    • 3.模型对象、材质
    郭隆邦
    2023-01-25
    目录

    3. 模型材质颜色(Color对象)

    # 模型材质颜色(Color对象)

    你去文档搜索MeshBasicMaterial、MeshLambertMaterial、MeshPhongMaterial等网格材质,可以看到他们都有一个颜色属性.color。

    下面结合threejs文档,带领大家探索一下,如何通过查询文档来修改模型材质的颜色值.color。

    # 材质颜色属性.color

    如果你想修改材质的颜色属性.color,那么你就需要了解该属性对应属性值的形式。

    1. 查文档,找到.color属性,可以发现threejs材质对象颜色属性.color是threejs的颜色对象Color。

    2. console.log()打印:浏览器控制台查看材质颜色属性的属性值

    console.log('material.color',material.color);
    

    # 颜色对象Color

    查看颜色对象Color文档,可以看到颜色对象有三个属性,分别为.r、.g、.b,表示颜色RGB的三个分量。

    // 创建一个颜色对象
    const color = new THREE.Color();//默认是纯白色0xffffff。
    console.log('查看颜色对象结构',color);//可以查看rgb的值
    
    // 查看Color对象设置0x00ff00对应的的.r、.g、.b值
    const color = new THREE.Color(0x00ff00);
    

    # 通过.r、.g、.b属性改变颜色值

    color.r = 0.0;
    color.b = 0.0;
    

    # 改变颜色的方法

    查看Color文档,可以看到Color提供了.setHex()、.setRGB()、.setStyle()、.set()等修改颜色值的方法。

    color.setRGB(0,1,0);//RGB方式设置颜色
    color.setHex(0x00ff00);//十六进制方式设置颜色
    color.setStyle('#00ff00');//前端CSS颜色值设置颜色
    

    .setHex()、.setStyle()风格的颜色值都可以作为.set()的参数

    color.set(0x00ff00);//十六进制方式设置颜色
    color.set('#00ff00');//前端CSS颜色值设置颜色
    

    # 重置模型材质的颜色

    十六进制颜色

    material.color.set(0x00ffff);
    

    前端CSS风格颜色值:'#00ff00'、'rgb(0,255,0)'等形式

    material.color.set('#00ff00');
    material.color.set('rgb(0,255,0)');
    
    2. 欧拉Euler与角度属性.rotation
    4. 模型材质父类Material

    ← 2. 欧拉Euler与角度属性.rotation 4. 模型材质父类Material→

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