渐变三角形

Three.js 渐变三角形效果 | 三维可视化 / AI 提示词
📋 AI 提示词
prompt
1
使用 Three.js 的顶点颜色创建渐变三角形,展示顶点颜色的插值效果。
🖼️ 效果预览
🎮 案例演示
效果描述
这是一个展示如何使用顶点颜色创建渐变三角形的示例。
效果特性
- 顶点颜色:为每个顶点设置不同颜色
- 颜色插值:顶点颜色在三角形上插值
- 渐变效果:创建颜色渐变效果
- 双面渲染:DoubleSide 渲染双面
- 索引缓冲:使用索引创建三角形
- BufferGeometry:使用 BufferGeometry 创建几何体
核心参数
| 参数 | 值 | 说明 |
|---|---|---|
| 顶点数量 | 3 | 3 个顶点 |
| 颜色1 | (1, 0, 0) | 红色 |
| 颜色2 | (0, 1, 0) | 绿色 |
| 颜色3 | (0, 0, 1) | 蓝色 |
| 顶点1 | (0, 0, 0) | 原点 |
| 顶点2 | (0, 200, 0) | Y 轴方向 |
| 顶点3 | (200, 0, 0) | X 轴方向 |
核心代码解析
创建几何体
javascript
1
2
3
4
5
6
7
let geometry = new THREE.BufferGeometry();
let vertices = new Float32Array([
0, 0, 0, // 顶点p1
0, 200, 0, // 顶点p2
200, 0, 0, // 顶点p3
]);
geometry.setAttribute("position", new THREE.BufferAttribute(vertices, 3));
设置顶点颜色
javascript
1
2
3
4
5
6
7
let colors = [
1.0, 0.0, 0.0, // 颜色1 (红色)
0.0, 1.0, 0.0, // 颜色2 (绿色)
0.0, 0.0, 1.0, // 颜色3 (蓝色)
];
let colorAttribute = new THREE.BufferAttribute(new Float32Array(colors), 3);
geometry.setAttribute("color", colorAttribute);
设置索引
javascript
1
2
3
let indices = [0, 1, 2]; // 索引0, 1, 2 表示顶点数组中的p1, p2, p3
let indexAttribute = new THREE.BufferAttribute(new Uint16Array(indices), 1);
geometry.setIndex(indexAttribute);
创建材质
javascript
1
2
3
4
5
let material = new THREE.MeshBasicMaterial({
vertexColors: true,
side: THREE.DoubleSide,
wireframe: false,
});
技术亮点
- 顶点颜色:为每个顶点设置独立颜色
- 颜色插值:顶点颜色在三角形上平滑插值
- 渐变效果:创建红绿蓝三色渐变
- 索引缓冲:使用索引创建三角形
- 双面渲染:DoubleSide 渲染双面
调试技巧
- 颜色范围:确保颜色值在 0-1 范围内
- 顶点对应:确保颜色与顶点一一对应
- 材质设置:vertexColors: true 启用顶点颜色
- 顶点位置:调整顶点位置改变三角形形状
- 颜色顺序:调整颜色顺序改变渐变效果
扩展方向
- 动态颜色:动态更新顶点颜色
- 颜色动画:动画顶点颜色
- 多三角形:创建多个渐变三角形
- 复杂渐变:创建复杂渐变效果
- 透明度:添加顶点透明度
本文档由 ThreeLab 编辑整理,如需转载,请注明出处。








京公网安备 11010502038735号
💬 评论区
评论功能即将上线,敬请期待!