之前给自己的渣引擎添加了简易的漫画效果·
简易的MangaShader其实和CartoonShader差不多一样·也一样需要额外准备一张(或者几张)纹理资源·作为网点·
主要的处理都在像素(片元)着色器·首先把颜色转换为亮度(直接dot一个float3(0.29f, 0.58f, 0.11f)就行)·先由预先指定的阀值决定划分出不同的色块·当处于网点的色块时·从模型坐标转换到屏幕坐标·然后贴上去就行了·
稍微不同的地方:
if(t_Value < s_ColorLevel1){ //填充色 Color.rgb = s_FillColor; } else if(t_Value < s_ColorLevel2){ Color.rgb *= SetDotsColor(i_VPos); //网点色 } else{ Color.rgb = float3(1.0f, 1.0f, 1.0f); //白色 }
t_Value是之前取得的亮度值,ColorLevel为划分的颜色等级越多实际效果的层级也就越多·这里只使用了一张网点纹理·
和Cartoon一样应该加上Edge·另外阴影的处理其实没弄好·
(PS:人物模型为 うさうさ 作者:ehehe さん·背景模型为 天界·出处不明···)