我们都知道,3D 渲染分为两类,一种是基于物理的渲染( PBR ),一种是非真实渲染(NPR)。
今天就和「字符无限科技」一起来了解一下NPR渲染技术。
NPR渲染可以把三维场景渲染出丰富且特别的新视觉效果,NPR渲染受欢迎的原因,不仅是它的表现形式丰富多样,最重要的是,它能快速完成原本工作量大、难度高的创作工作,也就是我们常说的三渲二。
例如火爆的影视动漫作品《灌篮高手:全国大赛》、《蜘蛛侠:纵横宇宙》、日漫番剧《鬼灭之刃》,手游《原神》、《星穹铁道》、《晶核》等等。
可以说近几年,随着日式卡通渲染类型游戏、动漫的逐渐流行,越来越多的游戏、动漫、影视作品等都或多或少地出现了NPR卡通渲染的身影。
什么是NPR渲染?
NPR(Non-Photorealistic Rendering),即风格化渲染,也就是图形渲染中的非真实感渲染,常见的 NPR 渲染包括卡通渲染、油画渲染、像素感渲染、素描画、水墨画等类型。特点为非拟真,表现的是风格化、非真实的运动。
我们常见的风格化渲染风格可大体分为美式和日式的。美式风格整体光照、阴影着色更贴近真实效果,而日式卡通往往与真实自然效果差别巨大。
如今的二次元游戏画面很多以风格化渲染技术为基础。
实现NPR的四个要素是?
NPR最核心的处理在于使用色块表现体积感,因为要追求手绘感因此光影之间的过度不会非常圆滑,一般还会加上描边线增强效果
要实现基本的卡通效果一般要实现四部分:
1.简化阴影
由于引擎默认的光照是写实光照,要做到卡通效果首先要对阴影的过度进行简化,这里会分为美式卡通风格和日式卡通风格;
美式卡通风格一般会有较多色阶过度,色彩上会有比较多的渐变色,阴影的处理也会比较大胆和夸张,
而日式卡通一般使用纯色色块进行着色,整体会更偏向现实一点,不会有过于夸张的表现,阴影通常表现为赛璐璐样式的二分阴影,带有很明显的分界线。
通常情况下,使用基于兰伯特光照模型得到的 NDotL(法线方向点乘光入射方向)可以计算出一个物体的顶点光照结果。
此时的结果为物理光照效果,我们只需要在此基础上使用step函数对计算结果进行二值化,就可以得到一个基础的二分阴影效果。
除此之外还有第二种实现方式,使用 Ramp 贴图来定义光照情况下的颜色,从而控制阴影的外观:在顶点着色器中,计算NdotL(法线与光照方向的点乘),并将结果作为采样 Ramp 贴图的 U 轴坐标。
这样,Ramp 贴图的纹理坐标根据光照角度进行采样,将采样到的Ramp图的颜色与模型基础贴图颜色进行混合,得到最终的颜色。
这种方式的好处在于阴影颜色可以更加灵活的定义,尤其是对于一些皮肤或者丝袜材质可以实现很漂亮的阴影过渡色带(有点像次表面)。
2.法线修正
使用上述方法简化阴影后会发现有的地方会有明显的阴影异常,尤其是角色模型的面部,由于默认的光照模型计算,面部的模型较为复杂,简单对阴影进行二值化会出现很奇怪的阴影块。
尤其是在面部,对于NRP来讲非常影响观感。那么我们就可以通过对面部的法线进行统一方向的操作来平滑面部的阴影。
目前有三种方式来实现:
第一种就是借助法线修正工具来对面部的法线进行调整,使其统一朝向,但这样会有很大的弊端,法线的变化会影响很多其他的效果,并且法线的调整就算有工具也比较麻烦。
第二种方式可以通过将另一个球形的法线信息转移到角色面部。这通常是通过在角色模型上创建一个球形投影,然后将球形的法线信息传递给角色模型的表面,使角色的面部使用球形的阴影效果实现平滑阴影
第三种方式可以使用SDF贴图,在着色器中根据贴图中的距离信息来调整阴影计算。这样可以在面部产生更加可定义的平滑阴影,避免了法线对阴影的影响。
3.添加描边线
为了使3D模型更具有动画感,描边线是必不可少的,目前基本上有四种实现方式:
- 本村线,本质就是为一些内描边画贴图线。优点是线条真实(毕竟是真手绘)。缺点也很明显:不能实现外描边,只能做衣服或肌肉骨骼的内描边线条
- 多通道渲染,本质就是将模型复制一份再放大,将大于原模型的位置调整为描边线。具体实现:创建一个新的 Shader,包含两个 Pass,一个用于正常渲染模型,另一个用于描边效果。在描边效果的 Pass 中,通过在顶点着色器中沿着法线方向进行位移来实现对模型进行一定程度的外扩,之后剔除模型正面。之后在描边效果的 Pass 中,对颜色进行一定的处理就完成简单的实现了。
- 基于屏幕后处理使用法线和深度信息进行边缘检测,最终实现描边线效果。但这种方式不好调整线条,并不推荐。
- 将菲涅尔效果调节为非常小的值,使其成为边缘轮廓的形状,然后在做颜色处理。优点是实现简单,缺点是形成的轮廓并不是很可控,并且粗细不均因有些不像线条,另外颜色处理也很麻烦。
4.高光边缘光处理
高光处理主要体现在头发上,日式赛璐璐经典的天使环状高光是肯定需要单独实现的,可以使用Kajiya-Kay或者Marschner实现,也有用各向异性来实现或者直接在画在贴图上的。
边缘光较为简单的方法是使用菲涅尔效果获取到模型边缘的Mask,然后进行边缘光调色即可实现简单的效果。
不同于PBR总是强调光照、算法、材质参数的正确性,NPR则是以美术效果为最优先考量,也恪守着计算机图形学的第一定律:“只要它看起来是对的,那么它就是对的。”
所以从某种程度上说,NPR更能激发出研发人员天马行空的想象力。也正因如此,NPR的世界才那么丰富多彩而又富有魅力。
如何学习NPR渲染技术?需要掌握哪些知识点?
对于大部分美术从业人员来说,学习卡通渲染并非易事。
风格化的渲染离不开自定义的着色器开发,也就是需要写Shader,而对游戏开发者而言,着色器更是游戏开发中的重要部分。
优秀的着色器可以创造非常精美的游戏画面,同时保证极高的性能,这也导致会Shader的设计师们薪酬日渐上涨,令很多行内人士艳羡不已。
学习NPR渲染技术需要掌握:
基础知识:学习Shader需要了解一些图形学基础知识,比如顶点、像素、矩阵变换等。虽然可以从简单的效果开始,但对于高级效果而言,图形学知识至关重要。
开发工具:不同平台有不同的Shader开发工具。比如在Unity中可以使用Shader Graph、在Unreal中可以使用Material Editor、在Cocos中可以直接编写GLSL代码。选择一个适合自己的平台进行学习,可以事半功倍。
ASE材质节点编辑器:了解ASE材质节点编辑器的界面基本内容及操作,为日式卡通材质的制作打好基础。掌握ASE输出节点,讲师会教导大家如何通过调整材质节点、让建模更加真实。
卡通材质制作:利用ASE制作卡通材质,通过节点材质的编辑,了解日式卡通材质的制作流程,制作卡通材质外描边outline,同时快速梳理卡通材质的制作逻辑。
贴图绘制渲染:利用PS、C4D制作卡渲贴图,了解贴图的制作和用处。掌握阴影贴图以及处理结构线的绘制,明白光照贴图绘制的要点难点,了解对smooth平滑效果和边缘光优化的实际应用。
Shader很难吗?不,相反它其实特别简单,无须手工编写代码,只要在一个图形网络中创建并连接节点,就可以设计和调试着色器,并且每一步都可预览。
如果你想快速制作炫酷特效,高效渲染日漫风角色模型!但是又没有掌握核心技能,也没那么强的自学能力?
✅推荐来找「字符无限科技」相比于自学,专业培训更系统和专业,对于追究效率高,想要快速出师的宝子,报班系统地学习是很有必要的~
👉在技术教育领域积累了多年的高级讲师经验精通3A级游戏的美术效果制作和虚幻引擎的高级应用。
👉毕业生在业界领先的公司如腾讯、网易、米哈游、开天工作室等取得了卓越的成绩。致力于培养学生的创新思维和艺术表达能力。
👉在不同的学习阶段,针对不同学员每个阶段进行一对一的定制化作品产出和作品设计,辅导学生进行面试和招聘。
完整就业指导流程,辅导学生完成个人作品集、以及简历制作和面试模拟指导。