一种结合物理光照模型的AR绘画方法技术

技术编号:21894749 阅读:15 留言:0更新日期:2019-08-17 15:37
本发明专利技术公开了一种结合物理光照模型的AR绘画方法,包括以下步骤:S1,ARkit捕捉当前AR场景,并通过OpenGL渲染到纹理,并作为背景纹理;S2,使用Metal+Scenekit搭建Scene场景;S3,记录画笔2D屏幕轨迹坐标,获取当前相机V矩阵和P矩阵,依次将2D屏幕轨迹坐标转为3D空间坐标轨迹;S4,采用插值和曲线平滑算法生成均匀而平滑的3D空间轨迹坐标;S5,根据3D空间轨迹坐标,计算顶点坐标、法线、切线、纹理坐标、RGB等数据,并根据椭圆计算公式推导,构造具有形变效果的3D几何图形节点,将节点添加到Scene场景之中;S6,采用PBR物理光照模型计算光照效果,多重采样消除锯齿,通过Metal渲染Scene场景,将3D图形渲染到OpenGL和Metal的共享纹理;S7,背景纹理与共享纹理融合,OpenGL渲染最终图案到屏幕。

An AR Painting Method Combining Physical Illumination Model

【技术实现步骤摘要】
一种结合物理光照模型的AR绘画方法
本专利技术属于计算机
,具体涉及一种结合物理光照模型的AR绘画方法。
技术介绍
目前,大多数空间绘画技术都基于VR(虚拟现实)空间画笔完成,需要通过VR设备和手柄实现在虚拟场景中进行艺术创作,如果没有眼镜现实设备作为载体,则无法体验3D立体场景绘画。在移动互联时代,电子移动终端和AR(增强现实技术)快速发展,基于移动终端的增强现实应用越来越受大众欢迎。现今人机交互、计算机绘图还处于一个应用多种设备辅助完成的阶段,其操作较复杂使之失去创作绘画的乐趣,因此将AR技术与图形绘制算法相结合应用到资源和计算能力有限的手持移动终端随之成为研究热点。因此,如何将增强现实技术应用于移动端实现现实场景绘画,增强绘画作品的真实感和立体感是亟需解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种结合物理光照模型的AR绘画方法。为解决上述技术问题,本专利技术采用如下的技术方案:一种结合物理光照模型的AR绘画方法,包括以下步骤:步骤1,利用移动端的摄像机拍摄画面,ARkit捕捉当前AR场景,通过会话ARSession管理设备相机和ARKit追踪设备与现实世界之间的相对位置和运动数据实时的捕获所述AR场景,将所述AR场景的YUV颜色空间转为RGB颜色空间,并通过OpenGL渲染到纹理作为背景纹理;步骤2,使用Metal+Scenekit搭建3DScene场景,3D场景由一个一个节点组成,每一个节点管理着场景中的每个物体,所述Scenekit为3D图形开发框架;步骤3,根据所述3D场景同时计算所述摄像机的V观察矩阵和P投影矩阵,用户选择任意AR画笔,进行绘图操作,所述移动端获取所述绘图操作的2D坐标轨迹,通过将所述3D场景的2D屏幕坐标转为3D空间坐标,从而对应得到所述2D坐标轨迹的3D空间运动轨迹坐标;步骤4,采用线性插值算法和曲线平滑算法对所述3D空间运动轨迹坐标进行圆滑处理,形成均匀且圆滑的3D坐标轨迹;步骤5,根据3D空间轨迹坐标,计算包括顶点坐标、法线、切线、纹理坐标、RGB的数据,并根据椭圆计算公式推导,构造3D几何图形节点,将节点添加到Scene场景之中;步骤6,采用Scenekit中PBR物理光照模型计算光照效果,多重采样消除锯齿,通过Metal渲染3D场景,将3D图形渲染到OpenGL和Metal的共享纹理;步骤7,背景纹理与共享纹理融合,由OpenGL渲染最终图案到屏幕,记录所述绘图操作生成过程,并生成视频文件,选择播放类型,点击开,播放绘画过程,点击关,所述人机交互界面显示绘画结束时的静止状态。优选地,所述步骤3中通过将所述3D场景的2D屏幕坐标转为3D空间坐标转换的数学公式为:pt3Dnear=pt2DscreenNear*inv(V*P*M)(1)pt3Dfar=pt2DscreenFar*inv(V*P*M)(2)pt3D=pt3Dnear+(pt3Dfar-pt3Dnear)*scale(3)其中,pt2DscreenNear为近裁剪平面坐标,其中z坐标取值为0;pt2DscreenFar为远裁剪平面坐标,其中z坐标取值为1;inv()为矩阵逆运算;M为世界矩阵;V为观察矩阵;P为投影矩阵;scale为自定义的比例参数;pt3D为3D空间坐标值;根据公式(1)~(3)依次计算得到所述3D空间坐标值,形成所述3D空间运动轨迹坐标。优选地,所述步骤4线性插值算法的计算公式为:q=p+α(p-n)(4)其中α为系数,p为前驱顶点,n为后继顶点,q为需要插入的顶点。此外,所述曲线平滑算法是对均匀间距的所述3D空间运动轨迹坐标进行计算,输出平滑的3D坐标轨迹,所述步骤4中曲线平滑算法采用三角函数拟合算法,公式为:k=tanf(π*fc)(5)n=1.0/(1.0+k/α+k*k)(6)a0=k*k*n,a1=a0*2,a2=a0(7)b1=(k*k-1.0)*n*2,b2=(1.0-k/α+k*k)*n(8)z1=val*a1+z2-b1*(val*a0+z1),z2=val*a2-b2*(val*a0+z1)(9)smothval=val*a0+z1(10)其中,a0,a1,a2,b1,b2,z1,z2为所述曲线平滑算法计算中的6个参数;val为所述3D空间运动轨迹坐标;k和n为中间系数;fc为平滑系数,初始值为0.01;α为常量系数;通过公式(5)~(8)初始化计算所述参数a0,a1,a2,b1,b2的值,然后利用公式(9)迭代计算z1和z2参数,最后通过公式(10)得到圆滑处理后的所述3D坐标轨迹。优选地,所述步骤5中构造几何图形计算方法为:(4)根据3D坐标轨迹,按顺序依次取Pt3Dpre和pt3Dnext前后相邻坐标点,计算切线向量V,并计算过Pt3Dpre垂直于向量V的平面,以Pt3Dpre为原点选取平面上向量V′:V=pt3Dnext-pt3Dpre(11)(5)V′绕向量V旋转,分别计算旋转m度(0°,45°,90°,135°,180°,225°,270°,315°)的单位向量Vdirectm即3D顶点在8个方向的法线,然后分别在每个Vdirectm乘上半径randius计算8个顶点坐标pt3Dm=pt3D+Vdirectm*randius(12)(6)分别对画笔轨迹的首尾cnt个顶点处做特殊处理,使图形产生拉伸形变效果,所述半径randius计算公式如下:randius=α*width(13)其中,width为画笔宽度值,α为系数,根据椭圆的方式式推导α系数的计算公式如下:取b=1,a=mb,故该类椭圆中y轴的计算公式如下:α系数取值为0-1,故该公式迁移到此处x的取值范围为0-m,从而得到画笔轨迹的首尾顶点的α系数变化规律如下:其中,cnt为首尾顶点的个数,j为顶点索引。完成以上顶点作标,切线,法线计算,构造几何图形。优选地,采用Scenekit框架中PBR物理光照模型计算顶点颜色的光照效果,物理光照模型结合了现实世界中灯光和材质之间交互的精确光照模型,使用物理光照模型渲染出来的物体更真实,且物理光照模型具有以下三种材质属性,一是漫反射属性,提供了材质的“基础”颜色;二是粗糙度属性,是真实曲面中微观细节的近似值;三是金属性,产生整体的金属或非金属外观。优选地,通过AE模板配置工具完成所述画笔模板配置,包括配置画笔类型、画笔颜色、笔尖粗细、动画类型、画笔漫反射纹理、法线纹理、粗糙度纹理、金属度纹理,配置好生成各种画笔模板供用户选择,用户直接通过选择不同的画笔实现多样化绘制并控制开关播放绘画过程。优选地,选择保存或分享,将所述绘画过程保存或分享社交平台。采用本专利技术具有如下的有益效果:与现有技术相比,本专利技术公开提供了一种结合物理光照模型的AR绘画方法,使用移动端在现实场景中绘画,通过切换不同的纹理画刷,实现多样化绘制,并实时动态播放绘图过程。采用Scenekit框架中PBR物理光照模型,物理光照模型结合了现实世界中灯光和材质之间交互的精确光照模型,使用物理光照模型渲染出来的物体更真实,且物理光照模型具有漫反射属性、粗糙度属性、金属性。可通过该物理光照模型可以对几何图形进行漫反射贴图、法线贴图、金属度贴图和粗糙度贴图,从而产生逼真效果,由于Sceneki本文档来自技高网...

【技术保护点】
1.一种结合物理光照模型的AR绘画方法,其特征在于,包括以下步骤:步骤1,利用移动端的摄像机拍摄画面,ARkit捕捉当前AR场景,通过会话ARSession管理设备相机和ARKit追踪设备与现实世界之间的相对位置和运动数据实时的捕获所述AR场景,将所述AR场景的YUV颜色空间转为RGB颜色空间,并通过OpenGL渲染到纹理作为背景纹理;步骤2,使用Metal+Scenekit搭建3D Scene场景,Scenekit是3D图形框架,3D场景由一个一个节点组成,每一个节点管理着场景中的每个物体;步骤3,根据所述3D场景同时计算所述摄像机的V观察矩阵和P投影矩阵,用户选择任意AR画笔,进行绘图操作,所述移动端获取所述绘图操作的2D坐标轨迹,通过将所述3D场景的2D屏幕坐标转为3D空间坐标,从而对应得到所述2D坐标轨迹的3D空间运动轨迹坐标;步骤4,采用线性插值算法和曲线平滑算法对所述3D空间运动轨迹坐标进行圆滑处理,形成均匀且圆滑的3D坐标轨迹;步骤5,根据3D空间轨迹坐标,计算包括顶点坐标、法线、切线、纹理坐标、RGB的数据,并根据椭圆计算公式推导,构造具有形变效果的3D几何图形节点,将节点添加到Scene场景之中;步骤6,采用PBR物理光照模型计算光照效果,多重采样消除锯齿,通过Metal渲染3D Scene场景,将3D图形渲染到OpenGL和Metal的共享纹理;步骤7,背景纹理与共享纹理融合由OpenGL渲染最终图案到屏幕,记录所述绘图操作生成过程,并生成视频文件,选择播放类型,点击开,播放绘画过程,点击关,所述人机交互界面显示绘画结束时的静止状态。...

【技术特征摘要】
1.一种结合物理光照模型的AR绘画方法,其特征在于,包括以下步骤:步骤1,利用移动端的摄像机拍摄画面,ARkit捕捉当前AR场景,通过会话ARSession管理设备相机和ARKit追踪设备与现实世界之间的相对位置和运动数据实时的捕获所述AR场景,将所述AR场景的YUV颜色空间转为RGB颜色空间,并通过OpenGL渲染到纹理作为背景纹理;步骤2,使用Metal+Scenekit搭建3DScene场景,Scenekit是3D图形框架,3D场景由一个一个节点组成,每一个节点管理着场景中的每个物体;步骤3,根据所述3D场景同时计算所述摄像机的V观察矩阵和P投影矩阵,用户选择任意AR画笔,进行绘图操作,所述移动端获取所述绘图操作的2D坐标轨迹,通过将所述3D场景的2D屏幕坐标转为3D空间坐标,从而对应得到所述2D坐标轨迹的3D空间运动轨迹坐标;步骤4,采用线性插值算法和曲线平滑算法对所述3D空间运动轨迹坐标进行圆滑处理,形成均匀且圆滑的3D坐标轨迹;步骤5,根据3D空间轨迹坐标,计算包括顶点坐标、法线、切线、纹理坐标、RGB的数据,并根据椭圆计算公式推导,构造具有形变效果的3D几何图形节点,将节点添加到Scene场景之中;步骤6,采用PBR物理光照模型计算光照效果,多重采样消除锯齿,通过Metal渲染3DScene场景,将3D图形渲染到OpenGL和Metal的共享纹理;步骤7,背景纹理与共享纹理融合由OpenGL渲染最终图案到屏幕,记录所述绘图操作生成过程,并生成视频文件,选择播放类型,点击开,播放绘画过程,点击关,所述人机交互界面显示绘画结束时的静止状态。2.如权利要求1所述的结合物理光照模型的AR绘画方法,其特征在于,所述步骤3中通过将所述3D场景的2D屏幕坐标转为3D空间坐标转换的数学公式为:pt3Dnear=pt2DscreenNear*inv(V*P*M)(1)pt3Dfar=pt2DscreeFar*inv(V*P*M)(2)pt3D=pt3Dnear+(pt3Dfar-pt3Dnear)*scale(3)其中,pt2DscreenNear为近裁剪平面坐标,其中z坐标取值为0;pt2DscreenFar为远裁剪平面坐标,其中z坐标取值为1;inv()为矩阵逆运算;M为世界矩阵;V为观察矩阵;P为投影矩阵;scale为自定义的比例参数;pt3D为3D空间坐标值;根据公式(1)~(3)依次计算得到所述3D空间坐标值,形成所述3D空间运动轨迹坐标。3.如权利要求1所述的结合物理光照模型的AR绘画方法,其特征在于,所述步骤4线性插值算法的计算公式为:q=p+α(p-n)(4)其中α为系数,p为前驱顶点,n为后继顶点,q为需要插入的顶点。此外,所述曲线平滑算法是对均匀间距的所述3D空间运动轨迹坐标进行计算,输出平滑的3D坐标轨迹,所述步骤4中曲线平滑算法采用三角函数拟合算法,公式为:k=tanf(π*fc)(5)n=1.0/(1.0+k/α+k*k)(6)a0=k...

【专利技术属性】
技术研发人员:熊永春刘培
申请(专利权)人:杭州趣维科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1