卡通渲染--Dot3 Cel Shading
来源:互联网 发布:韩帅净水器多少钱淘宝 编辑:程序博客网 时间:2024/05/01 14:44
按ShadeX 3中《Dot3 Cel Shading》的方法所渲染的卡通茶壶,简单的代码效果居然如此好。因为是卡通渲染,所以除了最后着色以外的大部分计算都可以移动到vertex shader中,不过因为我的代码是在普通渲染的基础上改的,所以vertex shader中只是做了基本的变换。另外如果加上高光,效果反而不真实了,直接用普通光照模型计算出的漫反射进行调整就能得出不错的效果。
普通渲染(漫反射+高光)+ 边缘轮廓线:
卡通着色:
多条过渡带:
完整的pixel shader代码:
void PixelShader(out half4 color : COLOR0,
in float3 worldPos :TEXCOORD0,
in float3 normal : TEXCOORD1)
{
normal = normalize(normal);
float3 lightVect = normalize( lightPos - worldPos);
float diffuse = saturate( dot ( normal,lightVect));
float3 eyeVect = normalize( eyePos - worldPos);
half scale = saturate(dot( normal, eyeVect));
int scaleFactor = floor(scale * shaders);
scale = scaleFactor / shaders;
if(scale < exclude / shaders)
{
color.xyz = 0;
}
else
{
diffuseColor = lightColor * diffuseColor * diffuse;
color.xyz = diffuseColor * scale + diffuse / shaders;
}
color.w = 1.0;
}
shaders是颜色带的数量,exclude是边缘轮廓线宽度,上面中间的三幅图中shaders=4,exclude=1。
- 卡通渲染--Dot3 Cel Shading
- 卡通渲染(Toon Shading/Cel Shading)
- Planet GameCube Editorial:Cel-Shading: Why all the Fuss?
- 卡通渲染最新进展汇报
- ShaderSimpler(3) : 卡通渲染
- 卡通渲染效果脚本
- NPR-卡通渲染
- 【NPR】卡通渲染
- 卡通渲染简报
- 延迟渲染(Deferred Shading)
- 延时渲染(Deferred Shading)
- 延迟渲染(Deferred Shading)
- Unity3d shader之卡通着色Toon Shading
- Cg Programming/Unity/Toon Shading卡通着色
- 卡通渲染的一点心得
- 卡通渲染进展(一)
- 卡通渲染效果shard-1
- 卡通渲染效果shard-2
- 关于MSDE 的两个问题
- 你只有一次机会
- 章14 网站测试
- Security in Computing (4th Edition)
- Universal XP Drivers Pack 2
- 卡通渲染--Dot3 Cel Shading
- 读网070215
- 提示“文件挂起”,SQL Server 无法安装
- SQL Server 无法安装
- Hibernate学习笔记(一)
- 华师大首页公告漏洞
- 一个偷来的创意
- 错误百出嘿嘿
- 关于这个blog