[发明专利]三维应用程序中的凸面镜效果的模拟方法无效

专利信息
申请号: 200710069928.5 申请日: 2007-07-06
公开(公告)号: CN101149841A 公开(公告)日: 2008-03-26
发明(设计)人: 张明敏;谢峰;冯小草;潘志庚 申请(专利权)人: 浙江大学
主分类号: G06T15/00 分类号: G06T15/00;G09B9/04;G09B9/05
代理公司: 杭州求是专利事务所有限公司 代理人: 张法高
地址: 310027*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种三维应用程序中的凸面镜效果的模拟方法。其通过将纹理动态渲染到帧缓存中,并利用纹理映射技术将纹理映射到镜面,形成镜面效果:程序计算出虚拟场景中的视点关于镜平面的对称点,根据该点获得与原来的视景体对称的新视景体,通过该视景体绘制整个场景,接下来将绘制结果的一部分图像通过纹理映射映射到镜平面。其中,在纹理映射这一过程中,利用镜平面的法线向量来修正纹理坐标的计算,达到模拟凸面镜效果的目的。本发明的优点在于:本发明直接将镜面图像绘制到虚拟镜子表面,不需要额外的显示设备来模拟镜面效果,本发明借助现代图形硬件的支持,可以为虚拟驾驶仿真器提供实时的凸面镜效果模拟。
搜索关键词: 三维 应用程序 中的 凸面镜 效果 模拟 方法
【主权项】:
1.一种三维应用程序中的凸面镜效果的模拟方法,其特征在于包括如下步骤:(1)过观察位置向镜平面引一条垂线,并延长,在延长线的另一端找到和观察位置与平面距离间距相同的点,计算得到观察位置关于镜平面的对称位置,已知:观察位置C的坐标为(xc,yc,zc),镜平面m方程为Ax+By+Cz+D=0,C关于m的对称点位置C′通过下式计算:<mrow><mi>P</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><msub><mi>&omega;</mi><mrow><mi>i</mi><mo>,</mo><mi>t</mi></mrow></msub><mi>&eta;</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>t</mi></msub><mo>-</mo><msub><mi>&mu;</mi><mrow><mi>i</mi><mo>,</mo><mi>t</mi></mrow></msub><mo>,</mo><msub><mi>&Sigma;</mi><mrow><mi>i</mi><mo>,</mo><mi>t</mi></mrow></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mn>1</mn></mrow>其中,A,B,C,D是平面方程的四个参数;(2)在上述镜象对称位置的基础上产生了与原视景体参数完全相同新的镜像视景体,通过该镜像视景体就能将场景图象映射到观察平面成为场景图像,镜像视景体和原视景体关于镜平面对称;(3)通过上述镜像视景体渲染整个场景,根据上述镜像视景体的设置参数计算出对应的投影矩阵,渲染结果是将场景物体上的点投影到观察平面上,这过程中还会在剪裁窗口对投影结果进行剪裁,剪裁结果作为结果图像,用于下一步的纹理映射;通过上述镜像视景体进行渲染的过程中利用裁减窗口进行裁减时,若上述镜像视景体不是对称视景体,则裁减窗口也不是对称的;(4)再根据镜面范围将应该出现在镜面中的场景图像通过纹理映射到镜面上,首先在镜像视点C′基础上计算出新的模型视点矩阵MModelView,然后计算出与镜像视景体对应的投影变换矩阵Mpers,已知一个对称的视景体的参数如下:视点距观察平面的距离为-zvp、剪裁窗口的长宽,投影变换矩阵Mpers表示为<mrow><msub><mi>M</mi><mi>pers</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mrow><mo>-</mo><mi>z</mi></mrow><mi>vp</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mrow><mo>-</mo><mi>z</mi></mrow><mi>vp</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>s</mi><mi>z</mi></msub></mtd><mtd><msub><mi>t</mi><mi>z</mi></msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo></mo><mn>2</mn><mo></mo></mrow></mrow>其中sz,tz是对z坐标投影值进行规范化的比例和平移因子,投影变换在以镜像观察位置为原点,镜像观察方向为z轴正方向的标准坐标系下进行,计算得到的投影变换矩阵形式只和镜像观察位置与镜像观察平面的距离有关,长宽对投影变换矩阵没有影响,用于限制剪裁窗口的范围,再将上述两个矩阵相乘合并得到反射变换矩阵Mreflect:Mreflect=Mpers·MModelView    3接下来,利用反射变换矩阵可以计算出镜面上任意一点户P(x,y,z,l)在观察平面上的坐标通过首先对户点做透视变换得到P′(x,y,z,h):P′=Mreflect·P                 4再对P′做透视除:UV=P′(x,y)/h                5其中h是P′的齐次坐标项,UV是初步的纹理坐标。当镜面位于视景体中时,镜面上点经过上述反射变换之后一定会出现在剪裁窗口中,按照剪裁窗口的大小规范化后成为0~1之间的数,再利用凸面镜的表面法线对纹理坐标进行修正:<mrow><msub><mi>UV</mi><mi>final</mi></msub><mo>=</mo><msup><mi>P</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>/</mo><mi>h</mi><mo>+</mo><mi>f</mi><mo>&CenterDot;</mo><mover><mi>n</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo></mo><mn>6</mn><mo></mo></mrow></mrow>其中UVfinal是最终的纹理坐标值,f是二维向量(x,y),其中x,y均为-1~1之间的浮点数,为镜面上一点的表面法线,当镜面为平面时<mrow><mover><mi>n</mi><mo>&RightArrow;</mo></mover><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mn>0,0</mn><mo>)</mo></mrow><mo>;</mo></mrow>(5)已知表面曲面方程f(x,y),上述步骤所述凸面镜表面法线的计算通过下式进行:<mrow><mover><mi>n</mi><mo>&RightArrow;</mo></mover><mo>=</mo><mo>&PlusMinus;</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mo>-</mo><mfrac><mrow><mo>&PartialD;</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>,</mo><msub><mi>y</mi><mn>0</mn></msub><mo>)</mo></mrow></mrow><mrow><mo>&PartialD;</mo><mi>x</mi></mrow></mfrac></mtd><mtd><mo>-</mo><mfrac><mrow><mo>&PartialD;</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>,</mo><msub><mi>y</mi><mn>0</mn></msub><mo>)</mo></mrow></mrow><mrow><mo>&PartialD;</mo><mi>y</mi></mrow></mfrac></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mn>7</mn></mrow>其中,x,y∈D,D是二维区域,在该二维区域基础上将表面划分为网格,逐网格点计算出对应的法向量,所述凸面镜表面法线的计算是通过脚本离线而不是实时进行的,对所有上述网格点,将其x,y坐标代入式7,计算得到与该网格点对应的表面法线,结果保存在文件中供驾驶模拟机或三维应用程序使用。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/200710069928.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top