开篇定位
眼睛是二次元角色的"灵魂之窗"。 玩家首先看角色眼睛,其次看整体造型。眼睛处理粗糙,整个角色的"灵气"瞬间崩塌。 《原神》的可莉、《崩坏:星穹铁道》的银狼、《蔚蓝档案》的白洲梓—— 每个角色都因眼睛的不同设计而具有独立的辨识度。
眼睛渲染是卡通 Shader 中最容易"凑合"的环节。 多数独立游戏用一张平面贴图 + 基础透明,导致眼睛缺乏立体感、缺乏情感表达。 本文系统拆解卡通眼睛渲染的完整工程要点: 几何建模策略、瞳孔折射模拟、高光锁定技术、多层叠加结构、情绪状态切换。
读完本文,你将能够:为角色设计立体卡通眼睛、实现瞳孔折射效果、让眼睛高光随镜头稳定、搭建眼睛的多层 Shader 结构、用 Shader 驱动角色情绪表达。
本文目录
- 眼睛的几何建模策略:平面眼白 vs 弧面眼球
- 瞳孔折射模拟:视差贴图的立体魔法
- 高光锁定技术:眼睛高光随镜头的稳定策略
- 多层叠加结构:角膜 / 虹膜 / 瞳孔 / 高光的层级组织
- 情绪状态切换:瞳孔大小动态变化的 Shader 驱动
- 初级用户路径:第一个立体卡通眼睛
- 中级用户路径:商业级眼睛渲染
- 争议焦点:眼睛渲染的"风格一致"边界
一、眼睛的几何建模策略:平面眼白 vs 弧面眼球
眼睛的几何建模是一切眼睛渲染的起点。平面贴图与弧面模型的视觉差距远大于很多人想象。
1.1 平面眼白:最简化的方案
原理:眼睛用一张平面贴图贴在脸上,透过透明显示眼白、瞳孔、高光。
优势:
- 建模几乎零成本。
- 贴图绘制自由,不依赖 3D 建模技术。
- 性能极佳。
局限:
- 无立体感,玩家一眼能看出"这是一张贴图"。
- 无法表现眼神的深度,角色"呆滞"。
- 高光表现完全靠贴图,无法随镜头移动。
1.2 弧面眼球:立体感的来源
原理:眼球用球面或椭球面模型,配合多层贴图表现细节。 《原神》《蔚蓝档案》等顶级二游几乎全部使用此方案。
优势:
- 立体感显著,玩家"看到一双眼睛",而非"看到一张图"。
- 高光可在球面上自然移动。
- 支持复杂的光线交互。
局限:
- 建模需要美术建模能力。
- 贴图需要球面 UV 展开。
- 描边处理更复杂(曲面描边 vs 平面描边)。
1.3 选型建议
Xmohe 强烈建议:所有正式发行的二次元项目,用弧面眼球。平面眼白仅适合 demo / 早期原型。 视觉差异1 个数量级,这是值得的工程投入。
二、瞳孔折射模拟:视差贴图的立体魔法
瞳孔折射是让眼睛"有神"的关键技术。 平面贴图的眼睛没有深度感,玩家看不到瞳孔"在眼球内部"。 视差贴图(Parallax Mapping)是性价比最高的解决方案。
2.1 视差贴图的工作原理
用一张高度图(Height Map),在 Shader 中模拟"球面内部深度"。 当玩家视角变化时,瞳孔图案的视觉位置随之变化,产生立体感。
2.2 视差贴图的实现层次
基础视差(Parallax Mapping):单一高度采样,性能好,效果一般。 陡视差(Steep Parallax Mapping):多层高度采样,性能中等,效果好。 视差遮蔽映射(Parallax Occlusion Mapping,POM):完整光线步进,性能开销大,效果最佳。
2.3 二次元眼睛的视差贴图配置
二次元眼睛的瞳孔层通常使用基础视差或陡视差,因为眼睛曲面深度有限。 不建议使用 POM,性价比不高。
关键参数:
- 高度图分辨率:512×512 通常够用。
- 深度值范围:眼睛深度通常 0.1-0.3,调整到合适的立体感。
- 采样层数:陡视差用 8-16 层,平衡性能与质量。
三、高光锁定技术:眼睛高光随镜头的稳定策略
眼睛高光(眼反光)是角色"活感"的核心。 高光位置应该随镜头移动而稳定在眼球同一位置,而非随眼球角度变化。 这是二次元眼睛渲染的标志性技术。
3.1 高光不锁定的视觉问题
普通 PBR 渲染,高光随视角变化。眼睛转动时,高光"跟着眼球走"。 视觉表现:眼睛"呆滞",缺乏灵气。
3.2 高光锁定的实现原理
把高光视为"眼球上的固定纹理",而非物理光照结果。 在 UV 空间固定高光位置,与视角变化解耦。
3.3 视线方向对高光位置的影响
角色"看向不同方向"时,高光应该"反向移动"。 例如:角色向右看时,高光在眼球左侧。 这是通过 Shader 接收"视线方向"参数,调整高光 UV 偏移。
3.4 高光锁定 vs 物理高光的争议
米哈游级二游几乎全部用高光锁定,而非物理高光。 对独立游戏,高光锁定是性价比最高的选择。
四、多层叠加结构:角膜 / 虹膜 / 瞳孔 / 高光的层级组织
立体卡通眼睛,是多层 Shader 的叠加结果。 每层负责不同的视觉表现,独立控制。
4.1 标准多层结构
| 层级 | 职责 | 视觉作用 |
|---|---|---|
| 最底层:眼白(巩膜) | 眼睛的白色部分 | 基础色,通常带轻微蓝灰色阴影 |
| 第二层:虹膜(Iris) | 眼睛的彩色部分 | 角色主色,含瞳孔图案 |
| 第三层:瞳孔(Pupil) | 中心黑色部分 | 深色 + 视差贴图 |
| 最上层:高光(Highlight) | 反光点 | 白色硬高光,UV 锁定 |
| 覆盖层:眼睑阴影(Eyelid Shadow) | 眼睑对眼球的阴影 | 从上方投射的柔和阴影 |
4.2 多层 Shader 的实现模式
方式 A:单一 Shader 多 Pass。一个 Shader 文件,多个 SubShader,分别渲染不同层。 方式 B:多个 Material。不同层级用不同材质,叠加在同一个 Mesh 上。 方式 C:单 Shader + UV 分层。所有层在同一 Shader 中,用不同 UV 区域采样。
Xmohe 推荐方式 C,性能最好,管理最简单。
五、情绪状态切换:瞳孔大小动态变化的 Shader 驱动
眼睛的"情绪表达"是二次元角色"活感"的最高境界。 通过 Shader 参数实时调整瞳孔大小、虹膜颜色、高光强度,实现"惊讶"、"害羞"、"愤怒"等情绪的视觉表达。
5.1 情绪化眼睛参数
| 情绪 | 瞳孔大小 | 虹膜颜色 | 高光强度 |
|---|---|---|---|
| 平静 | 中等 | 原色 | 标准 |
| 惊讶 | 放大 | 变亮 | 增强 |
| 害羞 | 缩小 | 变红(红晕) | 减弱 |
| 愤怒 | 缩小 | 变暗 | 尖锐 |
| 悲伤 | 中等 | 饱和度降低 | 柔和 |
5.2 情绪参数传递架构
游戏逻辑层(C# / 蓝图)设置情绪参数,通过 MaterialPropertyBlock 传到 Shader。 Shader 根据参数动态调整眼睛表现。
5.3 情绪过渡的平滑性
情绪切换需要"插值过渡",不能瞬切。 建议过渡时长 0.3-0.5 秒,配合缓动函数。 否则眼睛会"闪烁",破坏沉浸感。
六、初级用户路径:第一个立体卡通眼睛
- 为角色建模一个球面眼球,直径约 0.024 米。
- 展开球面 UV,用 Substance Painter 绘制多层贴图。
- 创建单 Shader 多层结构,用 UV 区域分层。
- 实现高光锁定,固定高光 UV 位置。
- 添加视差贴图,使用基础视差模式。
这五步完成后,你就有了"有神"的卡通眼睛。不需要理解所有高级技术,先把"立体 + 高光锁定"做出来。
七、中级用户路径:商业级眼睛渲染
7.1 完整眼睛渲染管线
商业级二次元项目的眼睛渲染通常包含以下模块:
- 基础球面 + 多层贴图。
- 视差贴图(陡视差)。
- 高光锁定(多层高光)。
- 眼睑阴影(柔和投射)。
- 情绪化参数(动画系统驱动)。
- 视线方向控制(IK 头部 + Shader 视线方向)。
- 描边(眼睛 Mesh 单独的描边 Pass)。
7.2 性能基准
基于 Xmohe 联合 2 款独立游戏项目的实测(中端手机):
- 基础视差:每眼睛 +0.05ms。
- 陡视差(8 层):每眼睛 +0.15ms。
- 多高光 + 情绪化:每眼睛 +0.10ms。
- 5 个眼睛同屏:总开销 < 1ms,可接受。
7.3 视线方向的高级实现
视线方向不只是"眼球转动",更是角色"心理活动"的视觉表达。 高级技巧:
- IK 头部 + 眼球 + 高光联动,实现"看向"。
- 视线目标物体检测,角色自动看向玩家或剧情目标。
- 视线避让,角色"不直视其他角色",增加真实感。
八、争议焦点:眼睛渲染的"风格一致"边界
争议一:高光锁定 vs 物理高光
高光锁定派观点:"高光锁定是二次元的标准,物理高光会破坏风格"。 物理高光派观点:"物理高光更"真实",适合追求 3A 级画质的项目"。
Xmohe 判断:二次元项目几乎都用高光锁定。追求"米哈游级"二次元,高光锁定是必选项。
争议二:弧面 vs 平面眼白的成本
平面派观点:"平面贴图已够用,弧面建模成本高"。 弧面派观点:"弧面是商业发行的标准,平面会被差评"。
Xmohe 判断:商业级二次元项目必须用弧面。独立游戏 demo 可用平面,正式发行建议升级。
争议三:情绪化眼睛的"过度戏剧化"
支持派观点:"情绪化是二次元的灵魂,玩家喜欢"。 反对派观点:"过度戏剧化显得"夸张",失去美感"。
Xmohe 判断:情绪化是加分项,但需要克制。瞳孔变化幅度控制在 0.3 倍以内,过渡时长 0.3-0.5 秒。
Xmohe 编辑观点:眼睛渲染是独立游戏"灵气"的关键。 1 天的眼睛优化,就能让游戏从"呆滞"跨越到"灵动"。 这是新手最值得投入的"高性价比"渲染优化方向。
关键词
卡通眼睛渲染 · 瞳孔折射 · 视差贴图 · 高光锁定 · 多层眼睛 Shader · 情绪化 Shader · 眼睑阴影 · 二次元眼睛 · 视线方向 · URP 眼睛 · 独立游戏眼睛
Xmohe 寄语
眼睛是角色"灵魂"的入口。没有灵魂的眼睛,再精美的角色也只是"漂亮的塑料人偶"。 本篇系统拆解了卡通眼睛渲染的完整工程图谱:几何建模、瞳孔折射、高光锁定、多层结构、情绪化驱动。
配合专题 04(描边技术大全)、专题 08(SDF 面部阴影)、专题 20(原神技术解析)、专题 28(开源 Shader 横评)——本专题已建立"眼睛 + 描边 + 阴影 + 商业对标 + 选型决策"的完整角色渲染知识闭环。
Xmohe 作为中国独立游戏开发者的早期引路社群,希望这一篇"眼睛渲染工程师手册"能帮你的二次元项目从"呆滞的纸片人"走到"有灵的卡通角色",在 Steam 与 TapTap 评测里多出几条"角色灵气满满"的好评——这不仅是技术议题,更是独立游戏在 AI 时代获得玩家情感连接的关键能力。