预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN108776987A(43)申请公布日2018.11.09(21)申请号201810483649.1(22)申请日2018.05.19(71)申请人成都明镜视觉科技有限公司地址610041四川省成都市高新区天府五街200号4号楼A区12楼(72)发明人程正(51)Int.Cl.G06T15/00(2011.01)A63F13/60(2014.01)权利要求书1页说明书3页附图3页(54)发明名称一种基于屏幕空间的模型轮廓绘制方法(57)摘要本发明方法具备高效率和精确且算法简易等优点。基于屏幕空间的模型轮廓算法主要的思想在于栅格化后的模型物体在屏幕空间的轮廓扩张,本发明方法是在屏幕空间进行处理,因此不存在轮廓线不连续以及不均质的情况。此外屏幕空间的像素处理从应用场景上来讲效率较高,绘制成本不随场景规模成比例增长。本发明方法的处理只是与屏幕像素分辨率相关,与场景数据大小无关。CN108776987ACN108776987A权利要求书1/1页1.一种基于屏幕空间的模型轮廓绘制方法,其特征在于,包括如下步骤:S1、导入待绘制物体的图片,图片为实心;S2、将待绘制物体的图片的所有网格数据和对应的材质收集到渲染队列中;S3、根据渲染队列中的材质特效,分析影响轮廓线效果的因素,处理得到纯色材质,然后将原渲染队列的材质全部替换成对应的纯色材质;S4、掏空待绘制物体的图片并进行轮廓水平拓展;S5、将步骤S4中进行水平拓展后的图片进行垂直方向的处理;S6、将步骤S5中的处理结果通过透明混合叠加到主场景中。2.根据权利要求1所述的一种基于屏幕空间的模型轮廓绘制方法,其特征在于,所述步骤S4中,对掏空的待绘制物体的图片进行水平拓展,包括以下步骤:S41、根据我们所需的轮廓厚度设定我们需要的像素个数n,n≥1;S42、依次扫描某像素的分别左右2个像素,并根据此像素与左右2个像素颜色差异设置该像素的Alpha通道值,如果此像素与左右的2个像素颜色均相同则设置这个像素的Alpha通道为0即将其抠空;如果此像素与其左右2个像素存在差异,则将此像素的颜色写成填充色并将Alpha设置为1。3.根据权利要求2所述的一种基于屏幕空间的模型轮廓绘制方法,其特征在于,所述步骤S5中,将步骤S4中进行水平拓展后的图片进行垂直方向的处理,包括以下步骤:S51、取出正在处理的像素的Alpha值记为A,该像素与上下两个像素任意一个存在差异,则将该像素的alpha通道写成1否则写成A。2CN108776987A说明书1/3页一种基于屏幕空间的模型轮廓绘制方法技术领域[0001]本发明涉及计算机图形技术领域,更具体地说,涉及一种基于屏幕空间的高性能的模型轮廓绘制方法。背景技术[0002]物体轮廓绘制这一个功能在游戏和模型编辑器中很常见,比如在游戏场景中物件选取高亮等。[0003]在图形学实时渲染技术中,常用的模型轮廓绘制算法中一般采用法线扩充加stencil-buffer的处理技术。简要操作如下:[0004]1、开启并清空StencilBuffer。[0005]2、绘制物体并设置StenciBuffer.物体可以是不透明或者透明。[0006]3、然后设置StencilMode为只当Stencil值没有设置值的时候才写入像素。[0007]4、将物体的顶点沿着法线方向扩充,扩充长度与物体中z-buffer里面的深度值成正比,然后用纯色shader绘制.[0008]5、关闭StencilBuffer。[0009]这种算法实现起来相对比较简单,但是存在一些缺点:[0010]效率相对低下,因为这种算法要求绘制物体两次,相当于加倍了渲染开销。涉及StencilBuffer的管理,对体系要求相对较高。如图1所示,这种方法最主要的一个缺点就是可能出现轮廓线不连续以及不均质的情况。此外,像素处理从应用场景上来讲,绘制成本随场景规模成比例增长。发明内容[0011]为了解决上述问题,本发明提供一种基于屏幕空间的模型轮廓绘制方法,包括如下步骤:[0012]S1、导入待绘制物体的图片,图片为实心;[0013]S2、将待绘制物体的图片的所有网格数据和对应的材质收集到渲染队列中;[0014]S3、根据渲染队列中的材质特效,分析影响轮廓线效果的因素,处理得到纯色材质,然后将原渲染队列的材质全部替换成对应的纯色材质;[0015]S4、掏空待绘制物体的图片并进行轮廓水平拓展;首先根据我们所需的轮廓厚度设定我们需要的像素个数n,n≥1;然后,依次扫描某像素的分别左右2个像素,并根据此像素与左右2个像素颜色差异设置该像素的Alpha通道值,如果此像素与左右的2个像素颜色均相同则设置这个像素的Alpha通道为0即将其抠空;如果此像素与其左右2个像