模拟三维素描铅笔画的绘制方法
技术领域
本发明方法涉及一种模拟素描铅笔画的绘制方法,尤其是一种计算简单,可快速自动生成具有明暗效果的模拟三维素描铅笔画的绘制方法。
背景技术
传统真实感绘制方法在仿效诸如钢笔、铅笔、毛笔画等人类手工创作图形的过程中,通常需要大量的交互过程,但交互式绘画系统对于操作人员的专业要求较高,否则处理速度较慢、产生作品的精度较低,不适用具体生产。目前,已有通过特定的图像处理技术将真实图像转化为具有铅笔画艺术风格的非真实感图像,但仅限于对二维图像进行绘制。
发明内容
本发明是为了解决现有技术所存在的上述技术问题,提供一种计算简单,可快速自动生成具有明暗效果的模拟三维素描铅笔画的绘制方法。
本发明的技术解决方案是:一种模拟三维素描铅笔画的绘制方法,其特征在于按如下步骤进行:
a. 输入三维几何模型方程,获得三维几何图形;
b. 对三维几何模型进行明暗色调及光亮度的抽取:
b.1 在获取的三维几何图形表面选取等距离长度d的分点,将三维几何模型所在三维几何空间分为n个平面,每个平面分别记为归类层part1、part2、…partn;
b.2 对各归类层parti分别进行光源遮挡判断,确定该归类层parti所在位置的明暗信息;
b.3 计算一个归类层parti的中心点与上下归类层中心点的叉积,将该叉积存储为vector1,计算归类parti的中心点与其左右归类层中心点的叉积,并存储为vector2;
b.4 对一个归类层parti,将其对应的vector1和vector2做为该平面的法向量,利用phong模型计算该平面中心点的反射光亮度,存储归类层parti的反射光亮度;
c. 定义竖线笔触模型、横线笔触模型或弧线笔触模型,对三维模型均匀分点,建立绘制模式:
c.1 定义竖线笔触模型、横线笔触模型、弧线笔触模型;
约定:笔触的起点为A(xa,ya,za), 笔触的终点为B(xb,yb,zb), 圆心坐标为O(xo,yb,zo);
c.1.1竖线笔触模型是指以分点A(xa,ya,za)为起点竖直向下一段长度的线段,竖线笔触模型取一定范围内的随机数h ,使所画的竖直笔触的长度为h• d ,由直线方程推出所绘制笔触的终点B(xb,yb,zb)坐标为(xa,ya-h• d ,z a);
c.1.2横线笔触模型是指以分点 A(xa,ya,za)为中点相切于三维几何模型表面的横线段,横线笔触模型设通过A点绘制随机长度为w·d 横线笔触,其中w 为一定范围内的随机数,设圆柱的中轴线垂直于xoy 平面,过A点与圆柱中轴线垂直的圆柱截面的圆心坐标为 ,则以A点为中点的横线的起点B(xb,yb,zb)和终点C(xc,yc,zc)坐标分别为:
;;
c.1.3弧线笔触模型是指以分点A(xa,ya,za)为起点,通过调节圆弧半径、水平分量和竖直分量向右下或左下方所绘制的弧线段,弧线笔触以A为起点在垂直于轴的平面内绘制一条弧线,然后计算圆柱上过A点切平面的法向量以及它与平面法向量的夹角,最后将弧线绕A点旋转角即可得到以A为起点的弧线笔触;
c.2:对三维几何模型建立矩形包围盒,建立三维坐标系,模型中心为坐标系原点,对坐标系建立八个卦限为octant1、octant2、…octant8, 每个卦限选取两个点p,q,作为生成笔触的点;
c.3:对于每个卦限上的点p,q,利用Phong模型计算它们在投影屏幕上的漫反射光亮度并予以保存;
c.4:对三维几何模型,选取等距离长度d,对每一个固定的u,进行u向等距离d分点,并将分点保存到临时二维数组A中,再以临时二维数组A的点为参照点,沿着总体v向进行等距离d分点,u向、v向分得的点作为三维几何模型的分点m;
d. 在三维几何模型上的分点m处,按照b.2步骤所确定的明暗信息、b.4步骤存储的反射光亮度及c.1 步骤定义的笔触模型绘制相应的线条笔触,绘制顺序是按照分点m在观察坐标系下的z坐标从小到大排序进行绘制;在三维几何模型上的点p,q,按照c.3步骤所保存的反射光亮度及c.1 步骤定义的笔触模型绘制相应的线条笔触。
本发明根据素描铅笔画的特点定义了新的区域划分、采样及绘制模式,所采用的明暗色调抽取方法简单快速,同时所定义的三种笔触模型也简单易行,充分利用铅笔画近似的特性,加快了后续绘制过程速度,提高了绘制三维场景素描铅笔画的效率,利于在实际生产中普及。
附图说明
图1 本发明实施例的流程图。
图2本发明实施例定义的竖线笔触的绘制效果图。
图3 本发明实施例定义的横线笔触的绘制效果图。
图4 本发明实施例定义的弧线笔触的绘制效果图。
图5 本发明实施例卦限中取点效果图。
图6 本发明实施例生成的模拟立方体素描铅笔画的效果图。
具体实施方式
三维图形输入模块:
a. 在三维几何模型库中选择曲面方程为f(u ,v )∈(u,v(0,1))的三维几何模型方程,获得三维几何图形;
图形明暗色调提取模块:
b. 对三维几何模型进行明暗色调及光亮度的抽取:
b.1 在获取的三维几何图形表面选取等距离长度d的分点,将三维几何模型所在三维几何空间分为n个平面,每个平面分别记为归类层part1、part2、…partn;
长度d可根据精度要求及运算速度进行选择,长度d越小精度越高,但运算速度较慢,d通常取3个像素;
b.2 对各归类层parti分别进行光源遮挡判断,确定该归类层parti所在位置的明暗信息:需要从离光源最近的归类层开始,从光源点到各归类层中心连线,计算该连线与各层是否存在交点,如果存在交点则表面发生遮挡,否则不存在遮挡;
b.3 计算一个归类层parti的中心点与上下归类层中心点的叉积,将该叉积存储为vector1,计算归类parti的中心点与其左右归类层中心点的叉积,并存储为vector2;
b.4 对一个归类层parti,将其对应的vector1和vector2做为该平面的法向量,利用phong模型计算该平面中心点的反射光亮度,存储归类层parti的反射光亮度;
绘制模式生成模块:
c. 定义竖线笔触模型、横线笔触模型或弧线笔触模型,对三维模型均匀分点,建立绘制模式:
c.1 定义竖线笔触模型、横线笔触模型、弧线笔触模型;
约定:笔触的起点为A(xa,ya,za), 笔触的终点为B(xb,yb,zb), 圆心坐标为O(xo,yb,zo);
c.1.1竖线笔触模型是指以分点A(xa,ya,za)为起点竖直向下一段长度的线段,竖线笔触模型取一定范围内的随机数h ,使所画的竖直笔触的长度为h• d ,由直线方程推出所绘制笔触的终点B(xb,yb,zb)坐标为(xa,ya-h• d ,z a),绘制效果如图2所示;
c.1.2横线笔触模型是指以分点A(xa,ya,za)为中点相切于三维客体表面的横线段,横线笔触模型设通过A点绘制随机长度为w·d 横线笔触,其中w 为一定范围内的随机数,设圆柱的中轴线垂直于xoy 平面,过A点与圆柱中轴线垂直的圆柱截面的圆心坐标为,则以A点位中点的横线的起点B(xb,yb,zb)和终点C(xc,yc,zc)坐标分别为:
,绘制效果如图3所示;
c.1.3弧线笔触模型是指以分点A(xa,ya,za)为起点,通过调节圆弧半径、水平分量和竖直分量向右下或左下方所绘制的弧线段,弧线笔触以A为起点在垂直于轴的平面内绘制一条弧线,然后计算圆柱上过A点切平面的法向量以及它与平面法向量的夹角,最后将弧线绕A点旋转角即可得到以A为起点的弧线笔触,绘制效果如图4所示;
c.2:对三维几何模型建立矩形包围盒,建立三维坐标系,模型中心为坐标系原点,对坐标系建立八个卦限为octant1、octant2、…octant8, 每个卦限选取两个点p,q,作为生成笔触的点;
c.3:对于每个卦限上的点p,q,利用Phong模型计算它们在投影屏幕上的漫反射光亮度并予以保存;
图5表示在一个卦限中取点p,q的效果,图中A、B、C、D、E、O分别表示第I卦限中的六个三角棱柱区域。
c.4:对三维几何模型,选取等距离长度d,对每一个固定的u,进行u向等距离d分点,并将分点保存到临时二维数组A中,再以临时二维数组A的点为参照点,沿着总体v向进行等距离d分点,u向、v向分得的点作为三维几何模型的分点m;
绘制模块:
d. 在三维几何模型上的分点m处,按照b.2步骤所确定的明暗信息、b.4步骤存储的反射光亮度及c.1 步骤定义的笔触模型绘制相应的线条笔触,绘制顺序是按照分点m在观察坐标系下的z坐标从小到大排序进行绘制;在三维几何模型上的点p,q,按照c.3步骤所保存的反射光亮度及c.1 步骤定义的笔触模型绘制相应的线条笔触。
图6为生成的模拟立方体素描铅笔画的效果图,从图中可以看出:画面的总体色调合理。