CN116091742B - 一种三维场景的相机观测点展示优化的方法 - Google Patents
一种三维场景的相机观测点展示优化的方法 Download PDFInfo
- Publication number
- CN116091742B CN116091742B CN202211714314.9A CN202211714314A CN116091742B CN 116091742 B CN116091742 B CN 116091742B CN 202211714314 A CN202211714314 A CN 202211714314A CN 116091742 B CN116091742 B CN 116091742B
- Authority
- CN
- China
- Prior art keywords
- observation
- virtual camera
- coordinate
- fov
- coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 10
- 230000000694 effects Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Abstract
本发明公开了一种三维场景的相机观测点展示优化的方法,包括以下步骤:将观测物体的虚拟相机朝向物体包围盒中心;将物体包围盒的8个顶点投影到NDC空间,在其中挑选出位于最左L、最右R、最上T、最下B和最前F的5个顶点;以F点为基础值,定义最终观察点,并将其转换到世界空间;假设一个经过F点并且与虚拟相机朝向垂直的平面,将最左L、最右R、最上T、最下B四个顶点映射到假想平面,换算到观察空间,分别根据虚拟相机水平和纵向FOV计算出观察距离,结果取二者较大的值;还原虚拟相机朝向操作;根据最终观察点和观察距离计算出最终虚拟相机位置,执行虚拟相机动画。本发明能够自动计算出虚拟相机新的最佳观察距离和最佳观察角度。
Description
技术领域
本发明涉及三维场景虚拟技术领域,特别是涉及一种三维场景的相机观测点展示优化的方法。
背景技术
目前三维场景中常规算法是将观察点置于BoundingBox(包围盒)的中心,但是由于透视投影近大远小的视觉效果,当侧面观察狭长的物体时,物体远处的部分占据屏幕空间较少,近处的部分占据屏幕空间较多,导致在屏幕上出现不对称的效果。
为了解决这一问题研发了一种当给定观察目标,根据当前相机参数,自动计算出最佳观察距离和最佳观察角度,执行飞行动画,最终使观察目标呈现在屏幕上的像素范围最大化,且居中显示的方法。
发明内容
本发明所要解决的技术问题是提供一种三维场景的相机观测点展示优化的方法,能够使三维场景观察点在给定观察目标,根据当前虚拟相机参数,自动计算出虚拟相机新的最佳观察距离和最佳观察角度。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种三维场景的相机观测点展示优化的方法,包括以下步骤:
S1:将观测物体的虚拟相机朝向物体包围盒中心;
S2:将物体包围盒的8个顶点投影到标准化设备坐标空间NDC;
S3:在步骤S2换算后的8个顶点中,挑选出位于最左L、最右R、最上T、最下B和最前F的5个顶点;
S4:以F点为基础值,将其x和y的坐标分别修改为LR、TB的中间点,将结果定义为最终观察点,并将该最终观察点转换到世界空间;
S5:假设一个经过F点、并且与虚拟相机朝向垂直的平面;
S6:将最左L、最右R、最上T、最下B四个顶点映射到步骤S5的假想平面,换算到观察空间,分别根据虚拟相机水平和纵向FOV计算出观察距离,结果取二者较大的值;
S7:还原步骤S1的虚拟相机朝向操作;
S8:根据最终观察点和观察距离,计算出最终虚拟相机位置,执行虚拟相机动画。
在本发明一个较佳实施例中,步骤S2的具体步骤为:
S201:将物体包围盒的8个顶点的三维坐标乘以MVP矩阵后得到齐次坐标(x,y,z,w);
S202:再进行透视除法得到(x/w,y/w,z/w)。
在本发明一个较佳实施例中,在步骤S3中,所述最左L顶点为x坐标最小的点,最右R顶点为x坐标最大的顶点,最上T顶点为y坐标最大的顶点,最下B顶点为y坐标最小的顶点,最前F顶点为在右手空间坐标系下,z坐标最大的顶点;在左手空间坐标系下,z坐标最小的顶点。
在本发明一个较佳实施例中,在步骤S4中,最终观察点的三维NDC坐标的x坐标为(L.x+R.x)/2,y坐标为(T.y+B.y)/2,z坐标为z。
在本发明一个较佳实施例中,在步骤S4中,将最终观察点的三维NDC坐标转换为世界空间坐标的步骤包括:
S401:将三维NDC坐标的每个分量乘以MVP矩阵w,并将w作为坐标的第四个分量,以此还原到齐次空间坐标;
S402:然后将所述齐次空间坐标乘以VP矩阵的逆,即逆反三维透视投影变换和相机变换,得到世界空间坐标。
在本发明一个较佳实施例中,在步骤S6中,将最左L、最右R、最上T、最下B四个顶点映射到步骤S5的假想平面,换算到观察空间的具体步骤包括:
S601:先将最左L、最右R、最上T、最下B四个顶点的z坐标修改为最前F的z坐标,使它们处于同一个平面;
S602:然后逆反回齐次空间坐标,再乘以三维透视投影矩阵的逆,即可变换到观察空间。
在本发明一个较佳实施例中,在步骤S6中,根据虚拟相机水平和纵向FOV计算出观察距离的具体步骤包括:
以纵向FOV为例,纵向FOV为fov,观察距离为d,h为T和B的纵向距离,即h=y.T-y.B,则d=(h/2)/tan(fov/2);
以横向FOV为例,横向FOV为fov’,观察距离为d,h’为L和R的横向距离,即h’=x.L-x.R,则d=(h’/2)/tan(fov’/2)。
在本发明一个较佳实施例中,步骤S8的具体步骤包括:
将世界空间坐标系的最终观察点F记为F’,当前虚拟相机世界坐标为C,虚拟相机的最终位置即为向量F+normalize(F’C)*d,d为观察距离。
本发明的有益效果是:本发明能够使三维场景观察点在给定观察目标,根据当前虚拟相机参数,自动计算出虚拟相机新的最佳观察距离和最佳观察角度,执行飞行动画,最终使观察目标呈现在屏幕上的像素范围最大化,且居中显示。
附图说明
图1是本发明一种三维场景的相机观测点展示优化的方法的流程图;
图2是利用本发明进行应用前的一个三维场景示意图;
图3是利用本发明进行应用后的一个三维场景示意图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
请参阅图1,本发明实施例包括:
如图2所示,当观测物体是长方体时,其观测效果并不对称,近端占据了过多画面,因此本发明提供一种三维场景的相机观测点展示优化的方法,包括以下步骤:
S1:将观测物体的虚拟相机朝向物体包围盒(BoundingBox)中心;
所述物体包围盒是物体初始化时生成的。
S2:将物体包围盒的8个顶点投影到标准化设备坐标空间NDC;
将每个顶点依次进行世界空间变换、观察空间变换、透视投影变换,即将物体包围盒的8个顶点三维坐标乘以MVP矩阵后得到齐次坐标(x,y,z,w),然后进行透视除法得到(x/w,y/w,z/w)。
S3:在步骤S2换算后的8个顶点中,挑选出位于最左L、最右R、最上T、最下B和最前F的5个顶点;
所述最左L顶点为x坐标最小的点,最右R顶点为x坐标最大的顶点,最上T顶点为y坐标最大的顶点,最下B顶点为y坐标最小的顶点,最前F顶点为在右手空间坐标系下,z坐标最大的顶点;在左手空间坐标系下,z坐标最小的顶点。
S4:以F点为基础值,将其x和y的坐标分别修改为LR、TB的中间点,将结果定义为最终观察点,并将该最终观察点转换到世界空间;
其中,最终观察点的三维NDC坐标的x坐标为(L.x+R.x)/2,y坐标为(T.y+B.y)/2,z坐标为z。
将最终观察点的三维NDC坐标转换为世界空间坐标即为三维变换的逆反操作,具体步骤包括:
S401:将三维NDC坐标的每个分量乘以MVP矩阵w,并将w作为坐标的第四个分量,以此还原到齐次空间坐标;
S402:然后将所述齐次空间坐标乘以VP矩阵的逆,即逆反三维透视投影变换和相机变换,得到世界空间坐标。
S5:假设一个经过F点、并且与虚拟相机朝向垂直的平面;
S6:将最左L、最右R、最上T、最下B四个顶点映射到步骤S5的假想平面,换算到观察空间,分别根据虚拟相机水平和纵向FOV计算出观察距离,结果取二者较大的值;
将最左L、最右R、最上T、最下B四个顶点映射到步骤S5的假想平面,换算到观察空间的具体步骤包括:
S601:先将最左L、最右R、最上T、最下B四个顶点的z坐标修改为最前F的z坐标,使它们处于同一个平面;
S602:然后逆反回齐次空间坐标,再乘以三维透视投影矩阵的逆,即可变换到观察空间。
所述FOV即相机视椎的开口大小,分为横向FOV和纵向FOV两个。根据虚拟相机水平和纵向FOV计算出观察距离的具体方法如下:
以纵向FOV为例,纵向FOV为fov,观察距离为d,h为T和B的纵向距离,即h=y.T-y.B,则d=(h/2)/tan(fov/2);
以横向FOV为例,横向FOV为fov’,观察距离为d,h’为L和R的横向距离,即h’=x.L-x.R,则d=(h’/2)/tan(fov’/2)。
S7:还原步骤S1的虚拟相机朝向操作;
S8:根据最终观察点和观察距离,计算出最终虚拟相机位置,执行虚拟相机动画。具体步骤包括:
将世界空间坐标系的最终观察点F记为F’,当前虚拟相机世界坐标为C,虚拟相机的最终位置即为向量F+normalize(F’C)*d,即从观察位置出发,朝向当前相机位置,确定一个距离为d的点,Normalize是向量单位化。图3是利用本发明所述方法对图2所示场景进行优化后的示意图。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种三维场景的相机观测点展示优化的方法,其特征在于,包括以下步骤:
S1:将观测物体的虚拟相机朝向物体包围盒中心;
S2:将物体包围盒的8个顶点投影到标准化设备坐标空间NDC;具体步骤为:
S201:将物体包围盒的8个顶点的三维坐标乘以MVP矩阵后得到齐次坐标(x,y,z,w);
S202:再进行透视除法得到(x/w,y/w,z/w);
S3:在步骤S2换算后的8个顶点中,挑选出位于最左L、最右R、最上T、最下B和最前F的5个顶点;
S4:以F点为基础值,将其x和y的坐标分别修改为LR、TB的中间点,将结果定义为最终观察点,并将该最终观察点转换到世界空间;其中,最终观察点的三维NDC坐标的x坐标为(L.x+R.x)/2,y坐标为(T.y+B.y)/2,z坐标为z;将最终观察点的三维NDC坐标转换为世界空间坐标的步骤包括:
S401:将三维NDC坐标的每个分量乘以MVP矩阵w,并将w作为坐标的第四个分量,以此还原到齐次空间坐标;
S402:然后将所述齐次空间坐标乘以VP矩阵的逆,即逆反三维透视投影变换和相机变换,得到世界空间坐标;
S5:假设一个经过F点、并且与虚拟相机朝向垂直的平面;
S6:将最左L、最右R、最上T、最下B四个顶点映射到步骤S5的假想平面,换算到观察空间,分别根据虚拟相机水平和纵向FOV计算出观察距离,结果取二者较大的值;
S7:还原步骤S1的虚拟相机朝向操作;
S8:根据最终观察点和观察距离,计算出最终虚拟相机位置,执行虚拟相机动画。
2.根据权利要求1所述的一种三维场景的相机观测点展示优化的方法,其特征在于,在步骤S3中,所述最左L顶点为x坐标最小的点,最右R顶点为x坐标最大的顶点,最上T顶点为y坐标最大的顶点,最下B顶点为y坐标最小的顶点,最前F顶点为在右手空间坐标系下,z坐标最大的顶点;在左手空间坐标系下,z坐标最小的顶点。
3.根据权利要求1所述的一种三维场景的相机观测点展示优化的方法,其特征在于,在步骤S6中,将最左L、最右R、最上T、最下B四个顶点映射到步骤S5的假想平面,换算到观察空间的具体步骤包括:
S601:先将最左L、最右R、最上T、最下B四个顶点的z坐标修改为最前F的z坐标,使它们处于同一个平面;
S602:然后逆反回齐次空间坐标,再乘以三维透视投影矩阵的逆,即可变换到观察空间。
4.根据权利要求1所述的一种三维场景的相机观测点展示优化的方法,其特征在于,在步骤S6中,根据虚拟相机水平和纵向FOV计算出观察距离的具体步骤包括:
以纵向FOV为例,纵向FOV为fov,观察距离为d,h为T和B的纵向距离,即h=|y.T-y.B|,则d=(h/2)/tan(fov/2);
以横向FOV为例,横向FOV为fov’,观察距离为d,h’为L和R的横向距离,即h’=|x.L-x.R|,则d=(h’/2)/tan(fov’/2)。
5.根据权利要求1所述的一种三维场景的相机观测点展示优化的方法,其特征在于,步骤S8的具体步骤包括:
将世界空间坐标系的最终观察点F记为F’,当前虚拟相机世界坐标为C,虚拟相机的最终位置即为向量F+normalize(F’C)*d,d为观察距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211714314.9A CN116091742B (zh) | 2022-12-29 | 2022-12-29 | 一种三维场景的相机观测点展示优化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211714314.9A CN116091742B (zh) | 2022-12-29 | 2022-12-29 | 一种三维场景的相机观测点展示优化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116091742A CN116091742A (zh) | 2023-05-09 |
CN116091742B true CN116091742B (zh) | 2024-04-02 |
Family
ID=86213146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211714314.9A Active CN116091742B (zh) | 2022-12-29 | 2022-12-29 | 一种三维场景的相机观测点展示优化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116091742B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108898550A (zh) * | 2018-05-30 | 2018-11-27 | 中国人民解放军军事科学院国防科技创新研究院 | 基于空间三角面片拟合的图像拼接方法 |
CN109712247A (zh) * | 2018-12-10 | 2019-05-03 | 浙江工业大学 | 基于混合现实技术的实景训练系统 |
CN111490489A (zh) * | 2020-04-16 | 2020-08-04 | 北京天下宏图空间信息技术有限公司 | 一种用于输电线路巡检的无人机轨迹规划方法及装置 |
CN114359226A (zh) * | 2022-01-05 | 2022-04-15 | 南京邮电大学 | 基于分层叠加和区域增长的三维模型组可视面积提取方法 |
CN114494561A (zh) * | 2022-03-23 | 2022-05-13 | 西安塔力科技有限公司 | 一种在WebGL中实现可视域分析的方法 |
CN114926590A (zh) * | 2022-05-20 | 2022-08-19 | 中国南方电网有限责任公司超高压输电公司检修试验中心 | 一种海量点云数据可视化方法 |
CN115164823A (zh) * | 2022-05-16 | 2022-10-11 | 上海芯翌智能科技有限公司 | 一种摄像机陀螺仪信息的获取方法及设备 |
EP4094815A2 (en) * | 2021-05-28 | 2022-11-30 | Bidstack Group PLC | Viewability testing in a computer-generated environment |
CN115527016A (zh) * | 2022-07-05 | 2022-12-27 | 西安电子科技大学青岛计算技术研究院 | 一种三维gis视频融合注册方法、系统、介质、设备及终端 |
-
2022
- 2022-12-29 CN CN202211714314.9A patent/CN116091742B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108898550A (zh) * | 2018-05-30 | 2018-11-27 | 中国人民解放军军事科学院国防科技创新研究院 | 基于空间三角面片拟合的图像拼接方法 |
CN109712247A (zh) * | 2018-12-10 | 2019-05-03 | 浙江工业大学 | 基于混合现实技术的实景训练系统 |
CN111490489A (zh) * | 2020-04-16 | 2020-08-04 | 北京天下宏图空间信息技术有限公司 | 一种用于输电线路巡检的无人机轨迹规划方法及装置 |
EP4094815A2 (en) * | 2021-05-28 | 2022-11-30 | Bidstack Group PLC | Viewability testing in a computer-generated environment |
CN114359226A (zh) * | 2022-01-05 | 2022-04-15 | 南京邮电大学 | 基于分层叠加和区域增长的三维模型组可视面积提取方法 |
CN114494561A (zh) * | 2022-03-23 | 2022-05-13 | 西安塔力科技有限公司 | 一种在WebGL中实现可视域分析的方法 |
CN115164823A (zh) * | 2022-05-16 | 2022-10-11 | 上海芯翌智能科技有限公司 | 一种摄像机陀螺仪信息的获取方法及设备 |
CN114926590A (zh) * | 2022-05-20 | 2022-08-19 | 中国南方电网有限责任公司超高压输电公司检修试验中心 | 一种海量点云数据可视化方法 |
CN115527016A (zh) * | 2022-07-05 | 2022-12-27 | 西安电子科技大学青岛计算技术研究院 | 一种三维gis视频融合注册方法、系统、介质、设备及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN116091742A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648049B (zh) | 一种基于眼球追踪及眼动点预测的立体渲染方法 | |
WO2018188479A1 (zh) | 基于增强现实的导航方法及装置 | |
TWI478096B (zh) | 三維圖形裁剪方法、三維圖形呈現方法及其圖形處理裝置 | |
JP2005339313A (ja) | 画像提示方法及び装置 | |
US9165397B2 (en) | Texture blending between view-dependent texture and base texture in a geographic information system | |
KR100967296B1 (ko) | 그래픽 인터페이스 및 스테레오스코픽 디스플레이용 그래픽데이터를 래스터라이즈하는 방법 | |
CN112529097B (zh) | 样本图像生成方法、装置以及电子设备 | |
JP7038683B2 (ja) | 合成装置、方法及びプログラム | |
KR20110088995A (ko) | 3차원 모델 안에서 감시 카메라 영상을 시각화하기 위한 방법 및 시스템, 및 기록 매체 | |
CN104217461A (zh) | 一种基于深度图模拟实时凹凸效果的视差映射方法 | |
EP1745440B1 (en) | Graphics pipeline for rendering graphics | |
JPH03202981A (ja) | 三次元図形表示方法及びシステム | |
CN116091742B (zh) | 一种三维场景的相机观测点展示优化的方法 | |
JP4987890B2 (ja) | 立体画像描画装置、立体画像描画方法、立体画像描画プログラム | |
JPH06295344A (ja) | 図形処理方法及び同装置 | |
CN103295260A (zh) | 一种基于旋转体三维显示器的实时体三维数据生成方法 | |
CN109949396A (zh) | 一种渲染方法、装置、设备和介质 | |
JP2017194857A (ja) | 自由視点映像表示装置 | |
CN115953290A (zh) | 基于gpu光栅器的场景体素化方法 | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
JP2001202527A (ja) | 3次元図形表示方法および3次元描画装置 | |
CN103106687A (zh) | 自适应视域范围内三维海洋网格的计算机生成方法及其装置 | |
JPH0765195A (ja) | 画像処理装置及び方法 | |
US8743123B2 (en) | Visualization processing method and apparatus with mask surface | |
CN111145298A (zh) | 顾及线宽一致性的矢量地图栅栏虚线符号绘制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |