UnityMMD+UnityChan+Shader从0到放弃

会逐一从0开始说说UnityChan的Shader

UnityChan应该可以说是二次元人模渲染的一个标准了

以下使用了2017年1.2.1的UnityChan版本

主要考虑是资料比较多(起码,乐乐姐有详细说),比较稳定,比较容易入门,适配的Unity的版本比较多

最后会附上整个项目吧,尽量把(估计难,涉及了MMD的2个模型,外加2个UnityChan的模板)

Falloff Texture

falloff 的 skin 是一个渐变图

 

看看乐乐姐怎么额说的:

计算包含衰减的光照颜色。我们通常计算漫反射是通过对贴图采样后再乘以漫反射系数(n点乘l)。而这里的做法是使用法线和观察方向的点积结果去采样一张衰减纹理,得到衰减值。然后靠这个衰减值去混合原贴图颜色和变暗后的原贴图颜色(其实就是取平方)。这样得到的效果其实并不能说是漫反射光照,因为并没有考虑光源方向,而是使用了类似算边缘高光的方法(算n点乘v)来计算光照衰减。这也是卡通效果里的一些trick吧。附上源码:

// Falloff. Convert the angle between the normal and the camera direction into a lookup for the gradient
float_t normalDotEye = dot( normalVec, i.eyeDir.xyz );
float_t falloffU = clamp( 1.0 - abs( normalDotEye ), 0.02, 0.98 );
float4_t falloffSamplerColor = FALLOFF_POWER * tex2D( _FalloffSampler, float2( falloffU, 0.25f ) );
float3_t shadowColor = diffSamplerColor.rgb * diffSamplerColor.rgb;
float3_t combinedColor = lerp( diffSamplerColor.rgb, shadowColor, falloffSamplerColor.r );
combinedColor *= ( 1.0 + falloffSamplerColor.rgb * falloffSamplerColor.a );


————————————————
版权声明:本文为CSDN博主「妈妈说女孩子要自立自强」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/candycat1992/article/details/51050591

Sphere Cube 和 Cube Map的区别

发现并不能用”别人家“的反射Cube Map 直接拖拉到自己的材质

	#ifdef SPHEREMAP_MUL
	half3 sph = (half3)texCUBE(_SphereCube, uvw_Sphere);
	baseC = albedo * sph;
	baseD = baseC * tempDiffuse; // for Diffuse only.
	#elif SPHEREMAP_ADD
	half3 sph = (half3)texCUBE(_SphereCube, uvw_Sphere);
	baseC = albedo + sph;
	baseD = albedo * tempDiffuse + sph; // for Diffuse only.
	#else
	baseC = albedo;
	baseD = albedo * tempDiffuse;
	#endif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值