Blockbench 顶点颜色教程:5 分钟画好渐变,低多边形上色不用堆纹理
【免费下载链接】blockbenchBlockbench - A low poly 3D model editor项目地址: https://gitcode.com/GitHub_Trending/bl/blockbench
给低多边形模型上色,你常常只能在"堆一张大贴图"和"整个模型一个色"之间二选一。Blockbench 的顶点颜色(Vertex Color)是第三条路:把 RGBA 数值直接挂在网格顶点上,相邻顶点之间自动插值,颜色过渡平滑,文件几乎不膨胀。这篇 Blockbench VertexColor 教程会带你走完启用工具、画第一笔、做 3D 渐变着色、叠加 PBR 材质,最后把颜色做成关键帧动画的完整流程。
🎨 顶点颜色 vs 纹理贴图:低多边形上色技巧怎么选
顶点颜色不是纹理的替代品,而是互补:纹理负责细碎细节(木纹、锈迹),顶点颜色负责大色块的过渡(受光面与背光面、冷暖分区)。
| 对比项 | 纹理贴图 | 顶点颜色 |
|---|---|---|
| 文件体积 | 随分辨率增长,2048×2048 贴图轻松几 MB | 每个顶点 4 个浮点数,低模几乎无感知 |
| 精度 | 受像素密度限制 | 逐顶点线性插值,渐变天然平滑 |
| 适用风格 | 写实、细节密集的模型 | 低多边形 Low Poly、面片感强的设计 |
| 编辑成本 | 要进 UV 编辑器重画 | 选中顶点改数值,或画笔直接涂 |
着色时顶点颜色会和光照相乘后再输出,计算逻辑在 js/shaders/layered.frag.glsl 里,一两句带过即可,不用深究。
🖌️ 五分钟上手:启用顶点颜色工具并画上第一笔颜色
启用顶点颜色的两个入口
- 顶部菜单
Edit → Vertex Color打开顶点颜色工具; - 或按
Ctrl+Shift+V一键启用。
启用后,右侧工具栏会出现颜色选择器和画笔选项区,后面所有操作都在这里完成。
画笔、填充与 RGBA 调节
- 在视口中点选要着色的顶点或面;
- 点面板里的色块选色,也可以在 RGBA 输入框直接填
0–1的数值,A控制不透明度; - 用画笔在模型表面直接涂抹,笔刷大小、边缘软硬度在工具条调节,绘制逻辑在 js/texturing/painter.js 中实现;
- 选中一整块区域后切到"填充"模式,一次性灌入单色,适合面片感强的 Low Poly 风格。
每个顶点的颜色就是一组0–1的 RGBA 数组:
// 顶点颜色数据:每个顶点一组 [R, G, B, A] [1.0, 0.42, 0.2, 1.0] // 橙色,不透明 [0.1, 0.5, 0.9, 0.5] // 蓝色,半透明(A=0.5)🌈 3D 渐变着色:从双色过渡到多段渐变
渐变不需要专门的"渐变对象"——把不同颜色按顺序写到一排顶点上,插值本身就是渐变。
渐变控制点怎么加
- 在顶点颜色面板点"渐变"按钮打开渐变编辑器;
- 渐变条两端各有一个颜色停靠点,点中间即可插入新控制点;
- 拖动控制点改位置,点色块改颜色,控制点建议不超过 8 个。
渐变方向与多段渐变
- 方向三选一:水平、垂直、径向,基于所选区域的局部坐标计算;
- 双色过渡只留两端;多段渐变控制在 3–5 个点,比如"暗红→橙→黄"的熔岩感;
- 调好后点"应用",渐变写入选中区域。不想动纹理、只要大面积冷暖过渡时,这是最省的做法。
🎭 PBR 材质叠加:颜色强度、金属度与局部透明
颜色强度配合金属度粗糙度
- 在材质面板打开"顶点颜色影响"开关;
- 用"颜色强度"滑块控制顶点颜色叠在贴图上的比重:
0是完全贴图,1是颜色完全接管; - 配合 PBR 参数出效果:
metalness 0 / roughness 1是哑光陶瓷感;metalness 1 / roughness 0.2时顶点颜色会变成金属渐变,氧化铜的色泽就靠这套组合。
用 Alpha 通道做局部透明
- 玻璃:整片顶点
A压到0.4–0.6,色相偏一点青; - 火焰:根部
A=1的橙红,沿尖端逐层降到0,颜色同步偏黄; - 记得把模型切到透明渲染模式,否则 Alpha 不生效。
🎞️ 关键帧动画:让顶点颜色随时间轴动起来
时间轴上打颜色关键帧
- 按
F3打开时间轴面板; - 把播放头拖到目标帧,在顶点颜色状态下改色,关键帧自动生成;
- 关键帧的存储与插值逻辑在 js/animations/keyframe.js,数据长这样:
{ "time": 12, // 关键帧所在帧 "easing": "smooth", // 插值:linear / smooth / bezier / step "values": { "r": 1, "g": 0, "b": 0, "a": 1 } }四种插值方式怎么选
linear:匀速变化,适合循环调色盘;smooth:两端缓入缓出,做呼吸灯、情绪色;bezier:拉手柄控制加速度,做"突然变红"的强调;step:帧间硬切,做赛璐璐式的逐帧换色。
📦 导出顶点颜色:OBJ / GLB 选项差异与排坑
OBJ 与 GLB 的导出选项差异
- GLB / GLTF 默认携带顶点颜色,导出即可用;
- OBJ 必须在导出对话框勾选"导出顶点颜色",颜色才会写进
v行末尾的r g b三个分量,规则在 js/formats/standards/obj.js; - 导出 Minecraft 模型时用 1.19+ 版本格式。
颜色不显示的 3 个排查点
- 材质面板里"顶点颜色影响"没开;
- 贴图被设成"覆盖颜色"模式,纹理色把顶点色盖住了;
- 预览卡在"仅纹理"显示模式,切回常规材质模式即可。
性能上,顶点颜色的插值发生在逐片元阶段,顶点数上万的大模型建议把用色顶点控制在几千个内并复用同一组颜色;渲染大场景时先关掉顶点标记、UV 辅助线这些 helper,给 GPU 减负。
顶点颜色这条路,本质是"少用贴图、多用插值":先从双色渐入手感,再叠 PBR 材质,最后让它在时间轴上跑起来,一个低模的视觉信息量能翻一倍,文件还是原来的大小。下一步可以往三个方向走:把低饱和纹理用混合模式叠在顶点颜色上层,细节和渐变一起保留;调预览渲染管线,在高面数下保住帧率;或者结合 Molang 表达式做动态变色,Bedrock 方向尤其值得深挖。
【免费下载链接】blockbenchBlockbench - A low poly 3D model editor项目地址: https://gitcode.com/GitHub_Trending/bl/blockbench
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考