threejs 设置颜色

在 Three.js 中设置颜色有多种方式,具体取决于你要为哪个部分设置颜色(如几何体颜色、材质颜色、顶点颜色等)。以下是常见的几种设置颜色的方法:

  1. 设置材质颜色
    使用 MeshStandardMaterial 或 MeshBasicMaterial 等材质时,可以通过构造函数或 .color 属性来设置颜色。
const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 }); // 绿色
// 或者
material.color.set(0xff0000); // 设置为红色
  1. 使用 THREE.Color 对象
const color = new THREE.Color(0x0000ff); // 蓝色
material.color = color;
  1. 为每个顶点设置颜色
    如果你希望每个顶点有不同的颜色,可以使用顶点颜色属性。
    步骤:
  • 在几何体中添加 colors 属性数组。
  • 使用 MeshStandardMaterial 并将 vertexColors 设为 true。
const geometry = new THREE.BoxGeometry(1, 1, 1);

// 为每个顶点设置颜色
// 在 Three.js 和 WebGL(GPU)中,颜色值使用的是 [0, 1] 的浮点数范围。
geometry.setAttribute(
  'color',
  new THREE.BufferAttribute(new Float32Array([
    1, 0, 0, // 红色
    0, 1, 0, // 绿色
    0, 0, 1, // 蓝色
    1, 1, 0, // 黄色
    1, 0, 1, // 品红
    0, 1, 1  // 青色
  ]), 3)
);

const material = new THREE.MeshStandardMaterial({ vertexColors: true });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
  1. 设置环境光和光源颜色
    你也可以通过光源来影响物体的颜色。
const ambientLight = new THREE.AmbientLight(0xffffff, 0.5); // 白色环境光
scene.add(ambientLight);

const pointLight = new THREE.PointLight(0xff0000, 1); // 红色点光源
pointLight.position.set(2, 2, 2);
scene.add(pointLight);
  1. 修改整个场景背景颜色
    你可以通过设置 scene.background 来改变背景颜色。
scene.background = new THREE.Color(0x202020); // 深灰色背景

// 或者设置渲染器的背景颜色
renderer.setClearColor(0xffffff,1.0); //1.0 不透明
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、材质种类: MeshBasicMaterial:为几何体赋予一种简单的颜色,或者显示几何体的线框 MeshDe...
    Ricoywang阅读 6,590评论 6 0
  • 1.几何体 内置几何体three.js的内置几何体大致可分为以下几类: 二维几何体 三维几何体 路径合成几何体 线...
    浮若年华_7a56阅读 1,166评论 0 0
  • Threejs 为什么? webGL太难用,太复杂! 但是现代浏览器都支持 WebGL 这样我们就不必使用 Fla...
    强某某阅读 6,228评论 1 21
  • 几何体 定义 几何体是物体在三维空间中的形状,它决定了物体的外观和结构。在 Three.js 中,几何体是通过TH...
    伶俜Monster阅读 67评论 0 1
  • Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它在 web 中创建各种三维场景,包括了摄影机、光影...
    了无_数据科学阅读 1,604评论 0 0