[发明专利]3D世界中的物体处理方法有效
| 申请号: | 201210146804.3 | 申请日: | 2012-05-11 |
| 公开(公告)号: | CN102779352A | 公开(公告)日: | 2012-11-14 |
| 发明(设计)人: | 张广 | 申请(专利权)人: | 北京像素软件科技股份有限公司 |
| 主分类号: | G06T17/00 | 分类号: | G06T17/00;G06T19/00 |
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
| 地址: | 100043 北京市石景山区八*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 世界 中的 物体 处理 方法 | ||
技术领域
本发明涉及物体处理技术领域,特别涉及一种3D世界中的物体处理方法。
背景技术
目前,3D世界中的每一个场景都是多个物体的集合,而其中的每个物体都可以用三角形网格(triangle mesh)来近似表示,即3D世界中最基本的图元就是三角形。
只有正确的显示3D世界,才能给玩家带来更真实的感受,现有通常是通过如下方法来显示3D世界的:
对3D世界中的场景进行多次数据矩阵变换后,将超过可视范围的三角形裁剪掉,将场景中距离较远的三角形加上雾色使之虚化,将距离超过设定范围的三角形淡出。
现有显示3D世界的方法处理正常大小的物体是没有问题的,但是对于超大物体,其中的部分三角形可能会因为超过可视范围被裁剪掉,因为使得超大物体的一部分无法正常显示,只能看到部分该超大物体。这种情况下,可以将可视范围调整到较远距离,然而,这样虽可以看到该超大物体的全部,但需要对该超大物体的全部三角形都进行处理,使得处理的三角形数量会大大增加,从而大幅降低游戏性能,导致过差的游戏体验。
发明内容
有鉴于此,本发明提供了一种3D世界中的物体处理方法,能够在不降低游戏性能的前提下,正常地显示3D世界中的超大物体。
为了达到上述目的,本发明提出的技术方案为:
一种3D世界中的物体处理方法,该方法包括:
对3D世界中的场景进行世界变换,将该场景转换到世界坐标系中;
将得到的世界坐标系下的场景进行相机和透视投影变换,得到视平面上的场景的坐标;
将视平面上的各个三角形的点的z分量值进行最小化处理,使相机和透视投影变换后的每个点的深度值都不大于1,以使得每个三角形的点都不会被裁剪掉。
该方法还包括:
当绘制三角形的点时,判断与该深度值相同的点是否已被绘制,如果是,则不再绘制该点;否则,继续绘制该点。
所述对3D世界中的一个场景进行世界变换包括:将所述场景中组成每一个物体的三角形的每一个点的位置Pos与世界矩阵WorldMatrix相乘,得到场景中每个三角形的点在世界坐标系下的位置WorldPos=mul(Pos,WorldMatrix),所述mul(x,y)为将x与y相乘。
所述将得到的世界坐标系下的场景进行相机和透视投影变换,得到视平面上的场景的坐标包括:
将场景中每个三角形的点在世界坐标系下的位置WorldPos与相机和透视投影矩阵MatViewProj相乘,得到场景中每个三角形的点在视平面上的位置oPos=mul(WorldPos,MatViewProj),所述MatViewProj为相机变换矩阵和透视投影矩阵相乘后的矩阵。
所述将视平面上的各个三角形的点的z分量值进行最小化处理包括:
将视平面上的各个三角形的点的z分量值oPos.z与各个三角形的点的w分量值oPos.w之间取最小值,得到各个三角形的点的新的z分量值oPos.z’=min(oPos.z,oPos.w),所述min(x,y)值的是取x和y中的较小值。
综上所述,本发明所采用的3D世界中的物体处理方法,是通过对3D世界中的场景进行世界变换、相机和透视投影变换后,得到视平面上的场景的坐标,进而将视平面上的各个三角形的点的z分量值进行最小化处理,以使得透视变换后的每个点的深度值都不大于1,也就避免了每个三角形的点都不会被裁剪掉。由于本发明方法对经过相机和透视投影变换后的场景中的每个三角形的点的z分量值都进行了最小化处理,也就避免了其中某个三角形的点的深度值由于大于1而被裁剪的情况,因此,本发明物体处理方法能够正常地显示3D世界中的超大物体,而且不会降低游戏性能。
附图说明
图1为本发明所采用的物体处理方法的工作流程图;
图2(a)为3D世界中的一个场景示意图;
图2(b)为采用本发明方法对图2(a)进行处理后的结果示意图。
具体实施方式
为了解决本发明提出的技术问题,本发明所述方案的具体实现包括:
对3D世界中的场景进行世界变换,将该场景转换到世界坐标系中;将得到的世界坐标系下的场景进行相机和透视投影变换,得到视平面上的场景的坐标;将视平面上的各个三角形的点的深度值进行最小化处理,使每个点的深度值都不大于1,以使得每个三角形的点都不会被裁剪掉。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京像素软件科技股份有限公司,未经北京像素软件科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210146804.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:中心传动浓缩机转速检测控制装置
- 下一篇:变频器装配旋转平台





