Unity 二次元卡通 Shader 技术专题新手友好技术精华9 / 16 已发布

卡通眼睛渲染终极指南:从扁平贴图到三维玻璃球效果

几何建模策略 · 瞳孔折射 · 高光锁定 · 多层叠加 · 情绪化驱动

· 20 分钟阅读·3.0k 阅读·240
卡通眼睛渲染终极指南:从扁平贴图到三维玻璃球效果 — Unity 卡通 Shader 技术精华专题

开篇定位

眼睛是二次元角色的"灵魂之窗"。 玩家首先看角色眼睛其次看整体造型眼睛处理粗糙整个角色的"灵气"瞬间崩塌。 《原神》的可莉、《崩坏:星穹铁道》的银狼、《蔚蓝档案》的白洲梓—— 每个角色都因眼睛的不同设计而具有独立的辨识度

眼睛渲染是卡通 Shader 中最容易"凑合"的环节。 多数独立游戏用一张平面贴图 + 基础透明导致眼睛缺乏立体感、缺乏情感表达。 本文系统拆解卡通眼睛渲染的完整工程要点: 几何建模策略瞳孔折射模拟高光锁定技术多层叠加结构情绪状态切换

读完本文,你将能够:为角色设计立体卡通眼睛实现瞳孔折射效果让眼睛高光随镜头稳定搭建眼睛的多层 Shader 结构用 Shader 驱动角色情绪表达

本文目录

  1. 眼睛的几何建模策略:平面眼白 vs 弧面眼球
  2. 瞳孔折射模拟:视差贴图的立体魔法
  3. 高光锁定技术:眼睛高光随镜头的稳定策略
  4. 多层叠加结构:角膜 / 虹膜 / 瞳孔 / 高光的层级组织
  5. 情绪状态切换:瞳孔大小动态变化的 Shader 驱动
  6. 初级用户路径:第一个立体卡通眼睛
  7. 中级用户路径:商业级眼睛渲染
  8. 争议焦点:眼睛渲染的"风格一致"边界

一、眼睛的几何建模策略:平面眼白 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 传到 ShaderShader 根据参数动态调整眼睛表现

5.3 情绪过渡的平滑性

情绪切换需要"插值过渡"不能瞬切建议过渡时长 0.3-0.5 秒配合缓动函数否则眼睛会"闪烁"破坏沉浸感

六、初级用户路径:第一个立体卡通眼睛

  1. 为角色建模一个球面眼球直径约 0.024 米
  2. 展开球面 UV,用 Substance Painter 绘制多层贴图
  3. 创建单 Shader 多层结构用 UV 区域分层
  4. 实现高光锁定固定高光 UV 位置
  5. 添加视差贴图使用基础视差模式

这五步完成后你就有了"有神"的卡通眼睛不需要理解所有高级技术先把"立体 + 高光锁定"做出来

七、中级用户路径:商业级眼睛渲染

7.1 完整眼睛渲染管线

商业级二次元项目眼睛渲染通常包含以下模块:

  1. 基础球面 + 多层贴图
  2. 视差贴图(陡视差)
  3. 高光锁定(多层高光)
  4. 眼睑阴影(柔和投射)
  5. 情绪化参数(动画系统驱动)
  6. 视线方向控制(IK 头部 + Shader 视线方向)
  7. 描边(眼睛 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 时代获得玩家情感连接的关键能力

文章标签
Unity 卡通渲染URP ShaderCel Shading二次元渲染Toon Shading描边技术Ramp Texture独立游戏美术HDRPShader GraphPBR-ToonBack-Face Inflation
更多专题全部专题
觉得有价值?点赞或收藏支持内容持续产出。
← 返回专题:Unity 二次元卡通 Shader 技术专题