一种计算机实时素描渲染算法

文档序号:8457831阅读:257来源:国知局
一种计算机实时素描渲染算法
【技术领域】
[0001] 本发明涉及计算机图学,具体涉及非真实感绘制技术。
【背景技术】
[0002] 非真实感绘制(NPR)是3D渲染中一个很重要的门类,其使用NPR技术,实时渲染 出类似于素描作品的渲染效果,与之相关的渲染技术主要包括:
[0003] 1.卡通风格的Shading植染;
[0004] 2.模型边缘和轮廓的风格化;
[0005] 3?模型表面的笔触效果。
[0006] WebGL作为一种新兴的技术,在实现一些效果的技巧方面仍处于空白的状态。

【发明内容】

[0007] 本发明针对WebGL技术,提出了一种基计算机实时素描渲染算法。
[0008] 为解决上述技术问题,本发明采用如下技术方案:一种计算机实时素描渲染算法, 其特征在于:使用两个不同的模型场景进行渲染,其中,3D场景是需要渲染的模型所在的 主要场景,2D场景是进行后期混合使用的场景,先在3D场景中渲染出模型的深度、法线和 Hatching算法的素描笔触结果,并将其输出到FrameBuffer里,然后在2D场景中进行混 合。
[0009] 优选的,2D场景仅包含一个非透视类型的摄像机和一个与视口大小相同的平面, 通过为这一平面编写Shader,并将之前输出到FrameBuffer中的渲染图作为贴图应用于 平面,就可以进行混合了。
[0010] 优选的,模型表面边缘的检测算法结合了采用深度检测的方法和采用法线方向检 测的方法,最终得到了Plane算法。
[0011] 本发明设计采用了WebGL,使用JavaScript和HTML显示3D效果,为了显示更加细 致的光影效果,再渲染明暗效果时引入了烘焙的方法决定贴图的混合模式,因此也能够显 示出阴影的效果。
【具体实施方式】
[0012] 本发明使用两个不同的模型场景进行渲染。其中,3D场景是需要渲染的模型所在 的主要场景,2D场景是进行后期混合使用的场景。
[0013] 本文先在3D场景中渲染出模型的深度、法线和Hatching算法的素描笔触结果,并 将其输出到FrameBuffer里。然后在2D场景中进行混合。2D场景仅包含一个非透视类 型的摄像机和一个与视口大小相同的平面。通过为这一平面编写Shader,并将之前输出到 FrameBuffer中的植染图作为贴图应用于平面,就可以进行混合了。
[0014] 模型表面边缘的检测算法结合了采用深度检测的方法和采用法线方向检测的方 法。最终得到了Plane算法。算法的基本原理是,对于在投影到屏幕上的两个相邻的像素 点。利用深度信息换算出其在摄像机坐标系中的坐标,然后结合两点在摄像机坐标中的法 线方向进行计算。
[0015] 设两点换算到摄像机坐标系中的位置坐标为pi;p2,法线方向为nl;n2。则我们可 以使用
[0016] y=max{(p1-p2) ? (p2-Pi) ?n2}
[0017] 作为这两点的一个距离函数。在决定某一像素po是否应该作为边缘加重时,采用 十字星采样的方法。取得其上下左右四个像素的位置和发现方向。设这四个点为pS;pn; pw,pe,取下列参数作为判定的参数
[0018] 0 〇=a|(y(ps,pn) ,y(pw,pe))
[0019] 其中a是一个缩放因子。使用p〇的深度值do作为阈值,当满足式1的时候将po设为边缘点予以加深。
[0020] 0〇^do (1)
[0021] 素描笔触的效果使用的Hatching算法的基本原理是,将三种不同密度的笔触贴 图应用在模型表面。根据笔触所在位置的明暗调整贴图的混合。为了实现交叉的笔触效果, 这里采用了复用相同的贴图并进行旋转混合的方式。
[0022] 设u(x;y)是对于贴图在其(x;y)坐标上的颜色深度值。以四个元素组成的向量 表示RGBA格式的颜色,那么最终采样使用的贴图颜色是:
[0023] uv(x,y)Xu(ay,ax)
[0024] 在Hatching算法中有两种混合方法:
[0025] 1.第一种混合方法,在混合时仅考虑当前色彩的明暗深度值,为各个贴图分配不 同的权重,然后将结果叠加起来。
[0026] 2.第二种混合方法,在渲染时将像素所在三角形表面的顶点信息考虑进来,分别 以三个顶点到对应边的垂线方向使用两张贴图进行混合,再将所有的结果混合起来。
[0027] 本文采用了使用烘焙贴图提供明暗信息的方法进行贴图混合,实现过程需要通过 OpenGL的实时渲染管线进行。此外第二种方法无法细致表现三角形平面内部细致的光影变 化。而场景中大部分三角形表面的尺寸较大,使用第二种方法无法表现细致的明暗变化。
[0028] 设TO;T1 ;……;T1是经过上述交叉处理之后产生的笔触贴图,s0;sl. ;sl分 别是他们的混合权重,则最终混合贴图的Hatching算法可以表示为
[0029]
【主权项】
1. 一种计算机实时素描渲染算法,其特征在于:使用两个不同的模型场景进行渲染, 其中,3D场景是需要渲染的模型所在的主要场景,2D场景是进行后期混合使用的场景,先 在3D场景中植染出模型的深度、法线和Hatching算法的素描笔触结果,并将其输出到 FrameBuffer里,然后在2D场景中进行混合。
2. 根据权利要求1所述的一种计算机实时素描渲染算法,其特征在于:2D场景仅包含 一个非透视类型的摄像机和一个与视口大小相同的平面,通过为这一平面编写Shader,并 将之前输出到FrameBuffer中的渲染图作为贴图应用于平面,就可以进行混合了。
3. 根据权利要求1所述的一种计算机实时素描渲染算法,其特征在于:模型表面边缘 的检测算法结合了采用深度检测的方法和采用法线方向检测的方法,最终得到了Plane算 法。
【专利摘要】本发明公开了一种计算机实时素描渲染算法,使用两个不同的模型场景进行渲染,其中,3D场景是需要渲染的模型所在的主要场景,2D场景是进行后期混合使用的场景,先在3D场景中渲染出模型的深度、法线和Hatching算法的素描笔触结果,并将其输出到Frame Buffer里,然后在2D场景中进行混合。本发明设计采用了WebGL,使用JavaScript和HTML显示3D效果,为了显示更加细致的光影效果,再渲染明暗效果时引入了烘焙的方法决定贴图的混合模式,因此也能够显示出阴影的效果。
【IPC分类】G06T15-00
【公开号】CN104778739
【申请号】CN201510139934
【发明人】盛斌, 田立武, 张越青, 蒋斌, 王伟锋
【申请人】浙江慧谷信息技术有限公司
【公开日】2015年7月15日
【申请日】2015年3月27日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1