Simone
云澹澹,水悠悠,一声横笛锁空楼
posts - 41,  comments - 70,  trackbacks - 1
   卡通渲染(Catoon Rendering/Toon Shading/Cel Shading)是NPR技术中的一种。 下面是老外关于卡通渲染的定义:

    Cel shading is a flat looking 3D image, with a cartoonish look exemplified by animated movies.The basic elements of a cel shaded effect are :
    - Sharp shadows
    - Little or no highlight
    - Outline around objects
    一般使用三种色调着色:一种用于明亮的漫反射区域;另一种用于暗的漫反射区域;第三种用于反射强光。也有的只使用两种色调,即没有反射强光。基本原理就是把传统的光照模型计算得到的连续的颜色转换为离散的2-3种颜色,可以用一个1D或2D纹理作为阶梯函数来实现这种转换。

    在卡通渲染中,除了着色,边界(outline)绘制是更关键的部分。卡通渲染中的边界有以下几种:
   (1)Boundary or  border edge:仅为一个多边形所拥有的边界。一个立体造型一般是没有这样的边界;
   (2)Crease or hard edge:为2个多边形共有的边界,而且2个多边形的夹角(dihedral angle)大于一个阈值。这个阈值的参考值为60度;
   (3)Material edge:不同材质的2个多边形的公共边界,也可是艺术家希望总是显示的线条;
   (4)Silhouette edge:相对于当前观察方向而言,面向不同朝向的2个多边形的公共边界。

    这里使用VS1.1实现卡通渲染,可以加载X模型渲染,颜色随材质的不同而不同。目前实现了动态点光源的光照效果。但光源运动时会出现比较明显的抖动效果,这是卡通渲染遇到的常见问题。解决的方法是设法使3种颜色的过渡尽量平滑,可以使用纹理双线性过滤采样来实现。
    放出一张效果截图:
   

---------------------------------------------------
Author: Skyman (吴俊)
版权所有,未经允许,不得转载
---------------------------------------------------
posted on 2007-07-05 12:08 Skyman 阅读(604) 评论(3)  编辑 收藏 所属分类: 研究

FeedBack:
2007-08-03 13:51 | taotaoyu [未注册用户]
牛人啊,关注
  回复  引用  查看    
2007-08-26 15:00 | ChenA [未注册用户]
能不能介绍一下4种outline都怎么实现啊?
  回复  引用  查看    
2007-08-29 13:01 | Skyman [未注册用户]
@ChenA
1.找出多边形的边界就可以啦,很简单的;
2.计算相邻2面的夹角(它们的法线的点积就是该夹角的余弦),当其大于某个预定值(比如60度)时,就认为是hard edge,然后你将该边的2个顶点复制一下,并做微小的偏移,然后以这4个顶点来绘制一个四边形,颜色为你所要的勾边颜色,这样就hard edge就实现了;
3.可以由美工在建模时指定;
4.和2相似,所不同的是,所谓的轮廓边,就是和该边相连的2个多边形,一个正对观察者,一个背对观察者。所以只要判断2个面的法线的点积为负就可以了,然后绘制方法同2.
  回复  引用  查看    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-07-06 12:52 编辑过
 
另存  打印
最新IT新闻:
· 56被关一月 危机的是整个视频业
· 李开复:中文搜索是谷歌战略核心
· 《星际争霸2》新图:黑暗圣堂武士Zeratul
· FriendFeed介绍
· 微软在台北发布新色鼠标产品
 


EMail:
jun.skyman2001'at'gmail.com
MSN:
skyman_2001@163.com

<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

与我联系

常用链接

留言簿(2)

我参与的团队

我的标签

随笔分类

随笔档案

Friends

  • LongGi
  • 一个搞Linux上的OGL的同志

搜索

  •  

最新评论

阅读排行榜

评论排行榜

60天内阅读排行