前言
作为一个二次元爱好者(就不说自己是资深大龄二刺猿了),从大学开始我就一直致力于在计算机中还原各类作品(MMD/CG)中NPR渲染,追求最佳的NPR表现。在完结(伪)了PBR专栏后,现在有时间整理一下这几年对NPR自己的实现和理解了。本专栏的目的是为了记录/整理/分享个人在学习过程中的收货,希望对大家也有所帮助。
首先是什么是NPR?NPR是Non-photorealistic rendering (非真实感渲染)的简称。与之对应的是现代渲染中常用的PBR(Physically Based Rendering,基于物理的渲染)概念,与PBR不同,NPR致力于还原艺术家的表达效果(原画/CG等)。虽说谈到NPR,往往想到的是日系动漫,当然NPR不仅仅包含日系卡通动漫,实际上NPR是一个非常广阔的概念。
那么为了表达NPR,是不是就意味着完全放弃PBR等效果呢?不是的!我们看到越来越多的NPR手游中参考了PBR的流程,也看到很多写实作品为了更好的画面表现添加了NPR元素。这些各种实现方案既有艺术上的考量,也有工业化上的考量。最关键的区别在于NPR源于艺术,首要功能是审美(表达原画/动画效果),所以在计算机中模拟会参杂着大量的trick(指通过特定的代码/公式进行特定艺术加工,没有物理上的解释;或者通过特殊的镜头表达)和不可思议的魔法数。所以本专栏虽然叫做NPR专栏,但是某些流程/渲染上仍会参考和掺杂了PBR渲染。
本专栏不是为了分析某一NPR作品/游戏,而是分析所有作品中的NPR元素和如何更好的利用PBR等其他要素表达NPR画面。也不是单纯分析NPR中的各种技术,而是将技术与艺术相结合进行讲解。我对国内CG的看法受老师的影响很深,所以本专栏对于艺术/艺术发展的分析大部分源于我大学老师的PPT(PS:数媒技),因为这种资料在网上找来比较费劲,不是充满了课程推销就是没什么干货。
本专栏的规划:不同于PBR专栏的笔记+实现分开的规划,NPR专栏中我会把笔记(原理)+实现+游戏产品实例(某种技术是在游戏中具体怎么做的,如何落地的,效果如何)相结合讲解。另外本专栏预期是一年内写完。。。一套相对完整的方案。
虽说各类网站中关于NPR的文章非常多,但是比较分散重复。本专栏同时也是对各种NPR资料的汇总,因为我看到各类技术要么就是各种实现过于零散专而注于某一个细节中,要么专注于某一个作品而没有进行更多的分析、对比。这些分享要么过于高大上让萌新爱好者们望而却步,要么过于专注于某一细节而忽视了整体画面的表现的影响,要么就是因为工业界发展过快太过古老。比如专注于角色渲染却忽视了环境渲染对角色渲染的烘托,或者有些方案在落地上存在或多或少的问题。如无特殊说明本专栏实现均是URP下实现的。
同时专栏里也会记录一些优秀艺术、游戏的实现方案,欢迎大佬们补充。 如果后面遇到优秀的相关的实现方式的新游戏,本专栏会不定期更新。
艺术参考:各种原画、动画作品。
游戏参考:各种优秀端游、手游实机画面。
我希望NPR这个专栏能帮助我自己、帮助国内更多的爱好者学习/参与到NPR制作与分享当中。不过个人能力有限,也希望大佬多指导包涵。
声明&license
本专栏所有文章中涉及的带有加密性质/知识版权的Model/Texture等资源,我不会以任何方式传播它们,仅作展示使用。
本专栏所有文章可以直接转载但是请备注出处。
目录
1. 动画(Animation)的概念与分类
2. 描边篇(Silhouette)
2.1 描边法线平滑工具
效果展示
描边
法线外扩法不透明描边
法线外扩法半透明描边
法线平滑工具效果1:法线平滑
法线平滑工具效果2:修正描边易断裂处
Github
MiToon(开发中...)
整个专栏文章涉及的参考or引用 (后续的子文章不再单独列出)
【1】https://github.com/Unity-Technologies/Graphics
【3】Pixel-Perfect Outline Shaders for Unity
【4】https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample
【5】https://github.com/TechMiZ/ToonShadingCollection
【7】【可米说】从线条所见的动画制作技术运用史【出崎统专题序章】
附录