人物渲染篇(一) —— 基础卡通渲染 上

本文是关于Unity中卡通角色渲染的第一部分,涵盖了梯度漫反射、顶点扩张描边法、边缘光和基于切线的高光等知识点。通过ShaderLab实现角色的渲染,包括hair、body、eye和other四种材质效果。模型导入时需要注意MAX单位设置、导出选项及贴图管理。
摘要由CSDN通过智能技术生成

人物渲染篇开篇,暂停下手边的Java Web,决定开始练习角色的渲染,以后会尝试更多的效果
shaderlab编写前后对比:
在这里插入图片描述

这一次用到的知识点复习&总结
  1. 梯度漫反射
float3 diffuse = _LightColor0.rgb * albedo * tex2D(_Ramp, float2(diff, diff)).rgb;

在这里插入图片描述 通过对这类梯度图进行采样,控制漫反射

  1. 顶点扩张描边法
    用一个pass在视角空间下把模型顶点沿着法线方向向外扩张一段距离
viewPos=viewPos+viewNormal*_Outline;

为了防止一些内凹的模型出现背面遮挡正面面片,给顶点法线z分量一个定值,然后归一化

viewNormal.z=-.05;
viewNormal=normalize(viewNormal);
viewPos=viewPos+viewNormal*_Outline;
  1. 边缘光
    视角方向与法线方向点成的方法控制边缘光
 float edge=abs(dot(worldNormal,worldViewDir));
 edge = pow(1-edge,_ReflectionCount);
  1. 基于切线的高光(各向异性高光)
    高光扰动图与算法都来自于
    https://gameinstitute.qq.com/community/detail/100050
模型导入

从爱给网下的模型资源

链接:https://pan.baidu.com/s/1O8cpmApY8D5mMlyIhTNgpQ 
提取码:u20h 

关于MAX单位设置,导出设置,轴心问题,可以参考博客
https://blog.csdn.net/fmx521/article/details/30315085?utm_source=blogxgwz1
导出MAX之前,一定要把贴图资源复制到Textures文件夹下,不然贴图丢失,材质也无效
我用2018.3导出失败了,然后请网友用5.6成功了,怀疑与新prefab系统有关。。。
在这里插入图片描述

关于ShaderLab

附上一张效果图
在这里插入图片描述
整个人物也只用到4个Shader,hair、body、eye、other

  • 我不太懂建模与MAX,这个模型有很多没有暴露在表面或者暴露面积很少的Mesh,我赋给它们一个other材质,这个材质只有边缘光效果。(可能是专门用来描边的?不太清楚)
  • 眼睛部分就是梯度漫反射+高光
  • 身体部分shader为 顶点扩张+梯度漫反射+边缘光
  • 头发最麻烦,梯度漫反射+顶点扩张描边+边缘光+各向异性高光
    各项异性高光可以参考
    https://www.jianshu.com/p/7dc980ea4c51
    https://gameinstitute.qq.com/community/detail/100050

以bodyShader为例

Shader "MyShaders/body" {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值