学了一段时间了,中间特效就先跳过啦。
还是先试试看卡通渲染时如何实现的吧。
哈吉马路哟~
这套课程应该是根据下面这个制作的,以后忘了可以去看看。
前期准备,我们先来看看各个贴图的作用。
Base Map:嗷tga格式的还不能上传诶,总之basemap就是给定了角色的基础色,它的alpha通道,用于区分皮肤区域。
SSS Map:与base差不多,但它是暗部的颜色,而上面的是亮部的颜色,它的alpha待定
ILM:这个贴图就比较抽象了,原因在于他把信息都分通道存储着。
R通道:控制高光强度。不需要高光的地方就全黑!
G通道:控制NdotL光照的偏移值。
B通道:控制高光范围的大小(类似光滑度)
Alpha通道:记录了模型的内描线
Detail Map:记录一些细节,但没那么精细,感觉我的detail map贴出来不对劲,后续再看看会不会影响效果。
顶点颜色
R通道:AO,自身对环境光的遮挡
G通道:好像没作用
B通道:有些作用,后续拓展
前期准备就是这样啦,之后有时间补充一下背景的实现。
嗷,课上有时间,就先来把背景的shader贴一下,背景分为两部分,天空球和一个平面,平面的纹理由天空盒的反射纹理再做个镜面得到,纹理由脚本获取,需注意纹理命名在脚本和shader里须一致。
平面的shader挺简单的,
这里面有个非常常见的i.screen_pos.xy/i.screen_pos.w,之前都混过去了,现在去查了一下。具体的贴下面了。
在Unity中的Shader中,i.screen_pos.xy
表示屏幕空间中的片段(像素)的位置,而i.screen_pos.w
表示屏幕空间中的片段的透视除法分量。i.screen_pos.xy / i.screen_pos.w
结果就是在裁剪空间(Clip Space)中的位置。
通过使用 i.screen_pos.xy / i.screen_pos.w
,你可以获得在屏幕上的坐标,而不是在裁剪空间或标准化设备坐标中的坐标。这在一些特定的效果和计算中可能会有用,比如屏幕空间的图像后期处理或特效。
总之应该是这样才能获取到真正的屏幕上的坐标吧,感觉上面写的还是挺模糊的,我日后再看看。
这边获取到的screen_uv为-1,1范围,转换到0-1即可。
后面就到了天空球的部分。
比较复杂,大佬也没有细讲,大概有一个非常高深的雾效,加上贴图和一个noise的扰动。
前期的准备工作就先到这吧。
本文地址: 仿碧蓝幻想卡渲学习——前期准备
您必须 登录 才能发表评论