资讯中心

Blockbench 顶点颜色实战:低多边形着色 3 分钟出效果

📅 2026/8/25 8:41:40
Blockbench 顶点颜色实战:低多边形着色 3 分钟出效果
Blockbench 顶点颜色实战低多边形着色 3 分钟出效果【免费下载链接】blockbenchBlockbench - A low poly 3D model editor项目地址: https://gitcode.com/GitHub_Trending/bl/blockbench你给模型铺了十层贴图真不如一笔顶点颜色来得省事。Blockbench 的 Vertex Color顶点颜色把色彩直接写进模型的顶点里低多边形渐变、局部着色一次搞定文件还轻。先动手3 分钟跑通最小案例不用先啃概念打开任意一个低多边形模型跟着做这五步就能看到效果选面用鼠标选中模型上你想上色的面选个十几面就够了。开颜色面板在工具栏找到颜色面板挑一个黄昏橙当主色RGB 滑块可以微调。涂第一笔选填充工具点一下选中的面整面瞬间变色——这就是顶点颜色。分面加深换个深一号的色调涂下半部你会发现上亮下深模型立刻立体了。转一圈检查侧光打过来时颜色会跟着明暗变化说明颜色已经吃进光照计算里了。顺手说一句有数位板的同学会更有感觉Blockbench 的笔刷支持压感笔压直接映射到不透明度和笔刷大小。它到底在做什么原理极简版说白了顶点颜色就是贴在每个顶点上的一组 RGBA 值。渲染时相邻顶点之间的颜色被实时插值——一个顶点红、另一个顶点蓝中间的三角形自然就过渡成红到蓝不需要任何贴图也不占额外文件体积。渲染端的混合逻辑在 js/shaders/texture.frag.glsl 里核心就这么几行vec4 color texture2D(map, vUv); // 取出纹理颜色 vec4 lit vec4(lift color.rgb * light, color.a); gl_FragColor lit; // 先写进屏幕 gl_FragColor.rgb * LIGHTCOLOR.rgb; // 再乘上环境光颜色通俗地说就是颜色 × 光照 补光再乘上灯光颜色顶点颜色会乘进同一条链路里。这也解释了为什么顶点颜色会随光照变暗——贴图很难做到的事它天然就做到了。一个真实小项目给低多边形小狐狸做黄昏渐变 目标很具体头背是暖橙腹部和耳朵内侧偏冷蓝侧面要有一条从橙到蓝的渐变带。先铺底色。选中所有朝上的面用暖橙填满这是黄昏的顶光。配色拿不准就参考下面这张低多边形黄昏场景暖色压在上方、冷色沉在下面。这时候处理侧面也就是渐变的核心。中段选深一号的橙色腹面再选蓝灰。你会发现三段颜色交界处不会生硬断开——共享顶点的地方渲染器会自动插值橙蓝过渡自然带出来。如果过渡带太短太硬用环切工具把那块网格加密再重涂顶点越多渐变越柔。顺手把耳朵内侧颜色的 Alpha 拉到 0.6 左右半透明的耳朵立刻有了灵气火焰、玻璃这类部件也是同一招。导出成 GLB 后这套渐变会以 COLOR_0 属性的形式落在文件里每行一个顶点的 RGBA从上到下正好是橙、深橙、半透明蓝灰COLOR_0: [ [1.00, 0.55, 0.30, 1.0], [0.85, 0.42, 0.28, 1.0], [0.25, 0.35, 0.60, 0.6] ]最后做对称检查。只画了半边也没关系开着镜像绘制把另一侧同步过来再转一圈确认两侧渐变一致让效果再上一步进阶玩法给颜色打关键帧做顶点颜色动画一句话结论顶点颜色能进时间轴像位置一样打关键帧。打开动画时间轴F3在 0 帧涂白天色拖到 30 帧改夜色颜色关键帧自动落下插值方式在 js/animations/keyframe.js 里定义线性、阶梯、贝塞尔随手可换。导出前查一眼 COLOR_0别让渐变白做GLTF 导出器里有这么一行代码决定你的渐变能不能活到导出之后if (!options.exportFaceColors attributeName COLOR_0) continue;通俗地说导出面颜色的开关没开COLOR_0 属性就被跳过顶点颜色全部蒸发。相关逻辑在 js/lib/GLTFExporter.js导出前记得勾选。镜像绘制省一半时间对称模型只画一侧开着镜像轴另一侧即时同步镜像目标的计算就写在 js/texturing/painter.js 里。踩坑速查症状原因修复预览里颜色是死板一片材质的顶点颜色选项没开颜色被材质盖住在材质面板启用顶点颜色选项渐变出现生硬的色块分界交界处顶点太少插值没空间用环切工具加密网格后重涂导出后颜色全丢导出面颜色没勾COLOR_0 被跳过导出设置里勾上对应选项关键帧之间颜色不过渡关键帧插值方式被设成了阶梯改成线性或贝塞尔插值接下来可以玩什么批量生产低多边形资产底色 渐变 局部透明这套组合拳熟了之后一批风格化角色可以不贴一张图就上色纹理系统可以翻 js/texturing/textures.js。用 Molang 表达式驱动动态变色做基岩版内容时颜色可以交给 Molang 实时计算逻辑在 js/util/molang.ts。把颜色动画打进动画控制器颜色关键帧加骨骼动画一起导出见 js/formats/bedrock/animation_controller_codec.js。直接读源码git clone https://gitcode.com/GitHub_Trending/bl/blockbench把仓库拉下来从顶点颜色一路追到 Shader链路比想象中短。打开 Blockbench挑个小模型先涂一笔顶点颜色试试。【免费下载链接】blockbenchBlockbench - A low poly 3D model editor项目地址: https://gitcode.com/GitHub_Trending/bl/blockbench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考