当前位置: 首页 > 专利查询>浙江大学专利>正文

三维应用程序中的凸面镜效果的模拟方法技术

技术编号:2988008 阅读:542 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种三维应用程序中的凸面镜效果的模拟方法。其通过将纹理动态渲染到帧缓存中,并利用纹理映射技术将纹理映射到镜面,形成镜面效果:程序计算出虚拟场景中的视点关于镜平面的对称点,根据该点获得与原来的视景体对称的新视景体,通过该视景体绘制整个场景,接下来将绘制结果的一部分图像通过纹理映射映射到镜平面。其中,在纹理映射这一过程中,利用镜平面的法线向量来修正纹理坐标的计算,达到模拟凸面镜效果的目的。本发明专利技术的优点在于:本发明专利技术直接将镜面图像绘制到虚拟镜子表面,不需要额外的显示设备来模拟镜面效果,本发明专利技术借助现代图形硬件的支持,可以为虚拟驾驶仿真器提供实时的凸面镜效果模拟。

【技术实现步骤摘要】

本专利技术涉及虚拟现实技术,特别设计一种用于三维应用程序的凸面镜模拟方 法,能够为三维应用程序尤其是驾驶模拟机提供实时的凸面镜效果支持。技术背景凸面镜效果是指在三维场景中实时产生的凸面镜效果。该效果主要用于驾驶 模拟机,模拟真实车辆后视镜效果,使用户可以从虚拟后视镜中看到更多的景 物。后视镜的模拟是驾驶模拟机设计的一个重要环节,除了产生接近真实车辆 的模拟效果之外,主要是为了能让用户通过镜面中景物以及这些景物与虛拟车 的相对位置判断出虚拟车在虚拟场景中的姿态。目前已经提出了很多用于驾驶模拟机的后视镜模拟方法1. 增加额外显示设备的方法在虚拟驾驶机中与真实车辆后视镜对应的位 置安装微型显示设备,比如小型的液晶显示器,并直接在该显示器中渲染镜面 中应该出现的景象,该方法比较直接,机制简单,真实度也较高,其缺点是这 样的显示设备需要根据后视镜的形状进行定制,成本高昂并不实用,并且要实 现镜中景物能随观察位置改变而改变需要额外增加捕捉观察位置的设备,又增 加了成本。2. 真实镜面反射投影到背后的场景的方法将镜面能看到的场景完整的投 影到驾驶模拟机背后的屏幕上,后视镜是和真实汽车后视镜一样的镜子,屏幕 可以通过后视镜看到,其缺点是投影设备价格昂贵,观察位置移动时,如果没 有捕捉观察位置的设备对观察位置进行捕捉,就不能对观察用的视景体进行调 整,这会降低通过镜子观察到的景物的真实度。本专利技术的目的在于提供一种用于驾驶模拟机的后视镜模拟方法,其可以为三 维应用程序尤其是驾驶模拟机提供实时的凸面镜效果支持。
技术实现思路
本专利技术的目的是提供一种实现虚拟驾驶模拟中凸面镜效果的方法。实现虚拟驾驶模拟中凸面镜效果的方法包括如下步骤 (1)过观察位置向镜平面引一条垂线,并延长,在延长线的另一端找到和 观察位置与平面距离间距相同的点,计算得到观察位置关于镜平面的对称位置, 已知观察位置C的坐标为(nO,镜平面m方程为^c + 5y + Cz + D-0, C关 于m的对称点位置C'通过下式计算^<x)=lX,"(x(- ,2;,,) i其中,AAC,D是平面方程的四个参数; (2 )在上述镜象对称位置的基础上产生了与原视景体参数完全相同新的镜 像视景体,通过该镜像视景体就能将场景图象映射到观察平面成为场景图像, 镜像视景体和原视景体关于镜平面对称;(3) 通过上述镜像视景体渲染整个场景,根据上述镜像视景体的设置参数 计算出对应的投影矩阵,渲染结果是将场景物体上的点投影到观察平面上,这 过程中还会在剪裁窗口对投影结果进行剪裁,剪裁结果作为结果图像,用于下 一步的纹理映射;通过上述镜像视景体进行渲染的过程中利用裁减窗口进行裁 减时,若上述镜像视景体不是对称视景体,则裁减窗口也不是对称的;(4) 再根据镜面范围将应该出现在镜面中的场景图像通过纹理映射到镜面 上,首先在镜像视点C'基础上计算出新的模型视点矩阵MM^,^,然后计算出与 镜像视景体对应的投影变换矩阵M,,已知一个对称的视景体的参数如下视 点距观察平面的距离为- 、剪裁窗口的长宽,投影变换矩阵M,表示为<formula>formula see original document page 6</formula>其中、,"是对z坐标投影值进行规范化的比例和平移因子,投影变换在以镜 像观察位置为原点,镜像观察方向为z轴正方向的标准坐标系下进行,计算得 到的投影变换矩阵形式只和镜像观察位置与镜像观察平面的距离有关,长宽对 投影变换矩阵没有影响,用于限制剪裁窗口的范围,再将上述两个矩阵相乘合 并得到反射变换矩阵M一^接下来,利用反射变换矩阵可以计算出镜面上任意一点户0c,3^,l)在观察平 面上的坐标通过首先对P点做透视变换搏到,(x,;;,z,/0:再对P'做透视除其中A是尸的齐次坐标项,f/K是初步的纹理坐标。当镜面位于视景体中时,镜面上点经过上述反射变换之后一定会出现在剪裁窗口中,按照剪裁窗口的大 小规范化后成为0 1之间的数,再利用凸面镜的表面法线对纹理坐标进行修正其中f/^。,是最终的纹理坐标值,/是二维向量0c,力,其中xj均为-l l之 间的浮点数,5(x,力为镜面上一点的表面法线,当镜面为平面时5&,力=(0,0);(5)已知表面曲面方程/(x,力,上述步骤所述凸面镜表面法线的计算通过 下式进行-其中,;c,少eD, Z)是二维区域,在该二维区域基础上将表面划分为网格, 逐网格点计算出对应的法向量,所述凸面镜表面法线的计算是通过脚本离线而 不是实时进行的,对所有上述网格点,将其;c,j;坐标代入式7,计算得到与该网 格点对应的表面法线;结果保存在文件中供驾驶模拟机或三维应用程序使用。所述的计算得到观察位置关于镜平面的对称位置若所述镜平面与坐标轴 垂直,直接将观察位置坐标相应的一维坐标值平移一段长度得到观察位置关于 镜平面的对称位置的坐标,该平移长度等于观察位置到镜平面的距离。所述的通过上述镜像视景体渲染整个场景通过上述镜像视景体进行渲染 的过程中需要将镜子后面的景物从场景中去除,在场景中将镜平面定义为裁减 平面double clip_plane={ A, B, C, D };其中,A, B, C, D为镜平面的平面参数,在OpenGL中 glClipPlane(GL_CLIP_PLANEO,equationl);glEnable(GL—CLIP—PLANE0);裁减结果保留场景中以镜平面为分界,靠近观察位置一侧的景物,与裁减 平面相交的景物会被切割。所述的凸面镜表面法线的计算凸面镜表面为椭圆抛物面,/(X,力=2 = -flX2 - ty2 +// 8其中,/2是曲面最高点的高度,fl,6是控制参数,^越小曲面越平坦,这三 个参数共同控制曲面的弯曲程度,该椭圆抛物面的特点是,任意与x,y轴垂直的平面与该曲面相交所得的曲线都是抛物线。与现有技术相比,本专利技术的优点在于1、 本专利技术直接将凸面镜的模拟效果渲染到微机屏幕上,不需要增加额外的 显示设备;2、 本专利技术可以模拟出凸面镜效果,为驾驶模拟机中提供的凸面镜模拟增加 了驾驶模拟机中后视镜的可视范围;3、 本专利技术在凸面镜的模拟中只需要为所有位于同一平面上的后视镜额外增 加一次渲染过程的开销;4、 本专利技术使用动态纹理映射技术解决了三维程序中凸面镜的模拟问题,通 过现代图形硬件支持的可编程着色器实现模拟,仅需要在需要使用它的三维程 序中做少量改动。附图说明图1是实现原理图;图2(a)是步骤5)渲染结束后得到的镜像场景的纹理图像; 图2(b)是虚拟凸面镜的模拟效果图; 图3是使用3Ds Max创建的汽车及镜子模型; 图4是在3DsMax中为镜子表面模型关联材质的示意图; 图5是保存凸面镜的表面法线信息的图像;具体实施方式用于虚拟驾驶中凸面镜的实现原理是首先根据观察位置和镜平面方程, 求出该观察位置关于镜平面的对称位置以及与该对称位置相对应的镜像视景 体,通过该视景体将场景动态渲染到纹理中,接下来将渲染结果的一部分图像 通过纹理映射映射到镜平面,在这个映射过程中,先计算镜面上每个点的纹理 坐标,在利用该纹理坐标在上述渲染结果图像上进行采样,最后在屏幕上显示 出来的镜面中有景物出现本文档来自技高网...

【技术保护点】
一种三维应用程序中的凸面镜效果的模拟方法,其特征在于包括如下步骤:(1)过观察位置向镜平面引一条垂线,并延长,在延长线的另一端找到和观察位置与平面距离间距相同的点,计算得到观察位置关于镜平面的对称位置,已知:观察位置C的坐标为(x↓ [c],y↓[c],z↓[c]),镜平面m方程为Ax+By+Cz+D=0,C关于m的对称点位置C″通过下式计算:P(x↓[t])=*ω↓[i,t]η(x↓[i]-μ↓[i,t],∑↓[i,t])1其中,A,B,C,D是平 面方程的四个参数;(2)在上述镜象对称位置的基础上产生了与原视景体参数完全相同新的镜像视景体,通过该镜像视景体就能将场景图象映射到观察平面成为场景图像,镜像视景体和原视景体关于镜平面对称;(3)通过上述镜像视景体渲染整个场景 ,根据上述镜像视景体的设置参数计算出对应的投影矩阵,渲染结果是将场景物体上的点投影到观察平面上,这过程中还会在剪裁窗口对投影结果进行剪裁,剪裁结果作为结果图像,用于下一步的纹理映射;通过上述镜像视景体进行渲染的过程中利用裁减窗口进行裁减时,若上述镜像视景体不是对称视景体,则裁减窗口也不是对称的;(4)再根据镜面范围将应该出现在镜面中的场景图像通过纹理映射到镜面上,首先在镜像视点C′基础上计算出新的模型视点矩阵M↓[ModelView],然后计算出与镜像视景体对应的投影 变换矩阵M↓[pers],已知一个对称的视景体的参数如下:视点距观察平面的距离为-z↓[vp]、剪裁窗口的长宽,投影变换矩阵M↓[pers]表示为:***2其中s↓[z],t↓[z]是对z坐标投影值进行规范化的比例和平移 因子,投影变换在以镜像观察位置为原点,镜像观察方向为z轴正方向的标准坐标系下进行,计算得到的投影变换矩阵形式只和镜像观察位置与镜像观察平面的距离有关,长宽对投影变换矩阵没有影响,用于限制剪裁窗口的范围,再将上述两个矩阵相乘合并得到反射变换矩阵M↓[reflect]:M↓[reflect]=M↓[pers].M↓[ModelView]3接下来,利用反射变换矩阵可以计算出镜面上任意一点P(x,y,z,1)在观察平面上的坐标通过首先对P点做透视变换得到P′(x, y,z,h):P′=M↓[reflect].P4再对P′做透视除:UV=P′(x,y)/h5其中h是P′的齐次坐标项,UV是初步...

【技术特征摘要】

【专利技术属性】
技术研发人员:张明敏谢峰冯小草潘志庚
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

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

1
相关领域技术
  • 暂无相关专利