卡通渲染Shader】的更多相关文章

http://www.opengpu.org/forum.php?mod=viewthread&tid=17071http://www.opengpu.org/bbs/forum.php?mod=viewthread&tid=17072http://blog.csdn.net/liumazi/article/details/78858811https://blog.uwa4d.com/archives/usparkle_cartoonshading.html https://forum.u…
从csdn转移过来,顺便把写过的文章改写一下转过来. 一.边缘检测算法 3D模型描边有两种方式,一种是基于图像,即在所有3D模型渲染完成一张图片后,对这张图片进行边缘检测,最后得出描边效果.一种是基于空间,即针对3D模型的三角面三个顶点构成的线条做边缘检测(注:和基于图像的边缘检测的检测方式是不同的,但都叫边缘检测).在本文中使用的是基于空间的3D模型的描边. 空间的3D模型的描边的边是有类型的,大致总结有4种:轮廓边.边界边.折缝边.材质边.其中前3种是本文认为卡通渲染所必须有的. 图1 空间…
卡通渲染的主要原理包含两个方面: 1.轮廓线的描边效果 2.模型漫反射离散和纯色高光区域的模拟 描边: 描边的实现方法采用将模型的轮廓线顶点向法线(或顶点)的方向扩展一定的像素得到.也可通过边缘检测(基于法线和深度)来实现. 漫反射离散: 利用离散的Ramp纹理对漫反射光照效果进行采样,可以实现不同效果梯度的卡通渲染效果,例如: 注意此纹理的灰度变化并非均匀变化,而是类似于一种突变,仅在灰度变化的交界处进行了平滑过渡.这样的Ramp纹理正是卡通渲染所需要的颜色过渡模式,也是卡通渲染实现的核心内容…
最近在youtube上看了GDC,学了很多东西,最让我震撼的就是ggxx的卡通渲染了.感慨一下,想要用3D做出二次元的效果,真的不容易.现记录一些要点: 1)不要使用normal map来做cel-shading,否则做出来的明暗分界线就像狗啃一样,只使用vertex normal. 2)使用顶点色存储threshold,计算明暗面交接线,效果更佳. 3)由于完全使用顶点法线计算,舍弃了normalmap,所以可以多用三角面,放宽对面数的限制. 4)顶点法线需要手动调整,不能用自动生成的法线向量…
 本文在讨论的主题并不限于具体引擎或具体语言,为了说明方便可能会提到Unity的一些内容. 最近渐渐发现很多从事游戏开发的新人,对于学会写Shader似乎总是有几分神往,但一般入了门或者学了一段时间后,想再提高时就找不到方向,也不知道学这些东西有什么用,好像只能在不会的人面前显摆显摆.特别是如今像Unity这样特别普及的引擎,可用的资源太多,几乎不需要自己懂任何渲染的知识,更不需要动手写Shader. 我就自己知道的来谈谈”关于渲染知识在工作中有什么用”. 一.理解误区 不少客户端开发新手,甚至…
写在前面 我的博客讲过好几篇卡通渲染了,比如[Unity Shader实战]卡通风格的Shader(一).[Unity Shader实战]卡通风格的Shader(二).[NPR]漫谈轮廓线的渲染.[Shader拓展]Illustrative Rendering in Team Fortress 2.后来,我搞了个所谓的NPR实验室,来实现一些论文里或者网络博客里讲到的NPR渲染算法,这里面包含了一些卡通风格的渲染.这篇文章主要想介绍一下这个项目里的一些卡通渲染的方法.包括: 一个最常见的包含了卡…
http://forum.china.unity3d.com/thread-32273-1-1.html 今天我们继续分享米哈游技术总监贺甲在Unite Beijing 2018大会上的演讲<在Unity上实现高品质卡通渲染的效果>下篇,上篇请点击此处阅读. 下面为演讲内容: 接下来我们就来介绍一下头发的渲染.头发是卡通渲染角色较为重要且独特的部分.我们想要实现根据光源动态变化的高光和阴影渐变,并且这个实现还应具备直观的所见即所得的色彩调节能力. 和皮肤的材质一样,对于头发的漫反射渲染我们同样…
前面的话 unitychan是日本unity官方团队提供的一个Demo,里面有很好的卡通渲染效果,值得参考学习 上图是我整理出来的shader结构,可以看到Unity娘被拆分成了很多个小的部件,我想主要是为了挂动态骨骼吧.因为有很多部件的材质,shader其实都是一样的可以合并成少数几个 我打算分3个部分来学习 CharaMain.cginc 主要用于衣服等材质 CharaSkin.cginc 皮肤效果 Hair 头发.眼睛.睫毛等部位的渲染 CharaMain.cginc 本篇先写第一部分bo…
前面的话 上一篇Unity酱~ 卡通渲染技术分析(一) 写了CharaMain.cginc,服装的渲染是怎么实现的.这篇来分析一下头发跟皮肤的实现 头发 本来以为unitychan的头发会有各向异性的实现,没想到她也是用的CharaMain.cginc实现的.我们来看看头发的材质 其他实现都一样,也是通过高光反射贴图来控制高光区域跟反射区域 计算法线跟视角向量的点积,这样的效果是越垂直于视角向量的高光越大,然后用RGB贴图来控制哪些区域更容易出高光 反射依然是用A通道来控制,越白的地方,反射的越…
效果展示: 原模型: 一.简单分析 卡通渲染又叫非真实渲染(None-Physical Rendering-NPR),一般日漫里的卡通风格有几个特点: 1.人物有描边 2.有明显的阴影分界线,没有太平滑的过渡 以下就根据这两点来实现卡渲效果: 二.描边 1.法线外扩 实现描边方式多种,比如卷积区分边界: 这里使用更简单的两个Pass,一个只用纯色画背面,利用法线外扩顶点,根据深度的不同这个纯色的背面会被显示出来,同时又不会遮挡正面: Pass { Tags {"LightMode"=&…