CN114581548A - 基于碰撞检测的场景模型表面纹理叠加方法及装置 - Google Patents
基于碰撞检测的场景模型表面纹理叠加方法及装置 Download PDFInfo
- Publication number
- CN114581548A CN114581548A CN202210140274.5A CN202210140274A CN114581548A CN 114581548 A CN114581548 A CN 114581548A CN 202210140274 A CN202210140274 A CN 202210140274A CN 114581548 A CN114581548 A CN 114581548A
- Authority
- CN
- China
- Prior art keywords
- ray
- camera
- space
- model
- view
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供的基于碰撞检测的场景模型表面纹理叠加方法及装置,通过发射一射线至场景模型,并通过碰撞检测生成可覆盖所述场景模型表面的投影体;分别计算模型空间中相机的位置和射线的方向,并传入片元着色器中;在片元着色器中,根据深度值、相机位置的坐标值和射线方向对所述模块表面进行纹理叠加,不仅减少了计算量,且纹理叠加效果好,真实性高。
Description
技术领域
本发明涉及计算机图形学领域,特别涉及基于碰撞检测的场景模型表面纹理叠加方法及装置。
背景技术
现有的场景模型表面纹理叠加过程中,不仅需要进行大量计算,且复杂程度高,而且纹理叠加后显示效果较差。
因此,需要基于碰撞检测的场景模型表面纹理叠加方法及装置,能够减少计算量,且真实性高。
发明内容
(一)要解决的技术问题
为了解决现有技术的上述问题,本发明提供基于碰撞检测的场景模型表面纹理叠加方法及装置,能够减少计算量,且真实性高。
(二)技术方案
为了达到上述目的,本发明采用的一种技术方案为:
基于碰撞检测的场景模型表面纹理叠加方法,包括步骤:
S1、发射一射线至场景模型,并通过碰撞检测生成可覆盖所述场景模型表面的投影体;
S2、分别计算模型空间中相机的位置和射线的方向,并传入片元着色器中;
S3、在片元着色器中,根据深度值、相机位置的坐标值和射线方向对所述模块表面进行纹理叠加。
为了达到上述目的,本发明采用的另一种技术方案为:
基于碰撞检测的场景模型表面纹理叠加装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
S1、发射一射线至场景模型,并通过碰撞检测生成可覆盖所述场景模型表面的投影体;
S2、分别计算模型空间中相机的位置和射线的方向,并传入片元着色器中;
S3、在片元着色器中,根据深度值、相机位置的坐标值和射线方向对所述模块表面进行纹理叠加。
(三)有益效果
本发明的有益效果在于:通过发射一射线至场景模型,并通过碰撞检测生成可覆盖所述场景模型表面的投影体;分别计算模型空间中相机的位置和射线的方向,并传入片元着色器中;在片元着色器中,根据深度值、相机位置的坐标值和射线方向对所述模块表面进行纹理叠加,不仅减少了计算量,且纹理叠加效果好,真实性高。
附图说明
图1为本发明实施例的基于碰撞检测的场景模型表面纹理叠加方法流程图;
图2为本发明实施例的基于碰撞检测的场景模型表面纹理叠加装置的整体结构示意图。
【附图标记说明】
1:基于碰撞检测的场景模型表面纹理叠加装置;
2:存储器;
3:处理器。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
基于碰撞检测的场景模型表面纹理叠加方法,其特征在于,包括步骤:
S1、发射一射线至场景模型,并通过碰撞检测生成可覆盖所述场景模型表面的投影体;
步骤S1具体为:
获取待叠加纹理的模型,在模型表面的选定一位置P,从相机位置往模型上的P点发射一射线,当射线与所述模型相交时,沿射线方向生成可覆盖所述场景模型表面的投影体。
具体地,所述投影体优选为正方形投影体,记为cube;
可根据叠加纹理的大小来修改cube的大小,首先将叠加的纹理渲染到用户指定大小的面片上,用户可自定义修改该面片的大小,以该面片的大小来更改cube的缩放值,cube的xy方向缩放值为面片的长宽;
增大cube的z方向缩放值,直到该投影体大小可覆盖所述场景模型表面。
S2、分别计算模型空间中相机的位置和射线的方向,并传入片元着色器中;
步骤S2包括:
S21、计算相机空间到世界空间转换矩阵的逆矩阵matWorldtoView,用该逆矩阵matWorldtoView乘以射线在世界空间的方向得到相机空间中射线的方向view_rayVS;
S22、计算模型空间到相机空间转换矩阵的逆矩阵matViewToObject,用该矩阵matViewToObject乘以所述相机空间中射线的方向view_rayVS,得到模型空间中射线的方向view_rayOS,将所述view_rayOS的w分量设置为view_rayVS的z分量,并传入片元着色器中;
S23、通过逆矩阵matViewToObject乘以相机在相机空间的原点位置得到模型空间中相机的位置camera_posOS,计算计算顶点在屏幕空间的位置screenPos,并传入片元着色器中;
其中,z和w表示坐标轴方向的坐标分量。
S3、在片元着色器中,根据深度值、相机位置的坐标值和射线方向对所述模块表面进行纹理叠加。
步骤S3包括:
S31、在片元着色器中,计算uv在屏幕空间的投影坐标uvSS,uvSS=screenPos.xy/screenPos.w;
S32、对射线在模型空间的方向view_rayOS进行预处理,view_rayOS=view_rayOS.xyz/view_rayOS.w;
S33、通过uvSS采样主相机的深度图得到深度值depth;
S34、计算投影的位置positionOS,positionOS=camera_posOS.xyz+view_rayOS.xyz*depth;
S35、将positionOS的xy分量加上0.5得到采样的UV值local_UV;
S36、根据所述local_UV对所述模块表面进行采样,在屏幕空间完成模型表面纹理的叠加绘制;
其中,x和y表示坐标轴方向的坐标分量。
其中,uv指的是纹理坐标,采样UV值指的是采样当前顶点的纹理坐标。
世界空间、模型空间、相机空间和屏幕空间各不相同,模型空间是指以模型原点为坐标系的空间,世界空间是以世界坐标原点为中心的坐标系,相机空间是以相机位置为原点的坐标系,屏幕空间是二维的以屏幕长宽为横纵轴的坐标系。
主相机是渲染场景的相机,其它的相机是指针对每一个贴花的投影,都会生成单独的一个相机进行计算,cube就是相机的投影视锥体。
实施例二
请参照图1,基于碰撞检测的场景模型表面纹理叠加装置1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述程序时实现实施例一中的各个步骤。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.基于碰撞检测的场景模型表面纹理叠加方法,其特征在于,包括步骤:
S1、发射一射线至场景模型,并通过碰撞检测生成可覆盖所述场景模型表面的投影体;
S2、分别计算模型空间中相机的位置和射线的方向,并传入片元着色器中;
S3、在片元着色器中,根据深度值、相机位置的坐标值和射线方向对所述模块表面进行纹理叠加。
2.根据权利要求1所述的基于碰撞检测的场景模型表面纹理叠加方法,其特征在于,步骤S1具体为:
获取待叠加纹理的模型,在模型表面的选定一位置P,从相机位置往模型上的P点发射一射线,当射线与所述模型相交时,沿射线方向生成可覆盖所述场景模型表面的投影体。
3.根据权利要求1所述的基于碰撞检测的场景模型表面纹理叠加方法,其特征在于,步骤S2包括:
S21、计算相机空间到世界空间转换矩阵的逆矩阵matWorldtoView,用该逆矩阵matWorldtoView乘以射线在世界空间的方向得到相机空间中射线的方向view_rayVS;
S22、计算模型空间到相机空间转换矩阵的逆矩阵matViewToObject,用该矩阵matViewToObject乘以所述相机空间中射线的方向view_rayVS,得到模型空间中射线的方向view_rayOS,将所述view_rayOS的w分量设置为view_rayVS的z分量,并传入片元着色器中;
S23、通过逆矩阵matViewToObject乘以相机在相机空间的原点位置得到模型空间中相机的位置camera_posOS,计算计算顶点在屏幕空间的位置screenPos,并传入片元着色器中;
其中,z和w表示坐标轴方向的坐标分量。
4.根据权利要求3所述的基于碰撞检测的场景模型表面纹理叠加方法,其特征在于,步骤S3包括:
S31、在片元着色器中,计算uv在屏幕空间的投影坐标uvSS,uvSS=screenPos.xy/screenPos.w;
S32、对射线在模型空间的方向view_rayOS进行预处理,view_rayOS=view_rayOS.xyz/view_rayOS.w;
S33、通过uvSS采样主相机的深度图得到深度值depth;
S34、计算投影的位置positionOS,positionOS=camera_posOS.xyz+view_rayOS.xyz*depth;
S35、将positionOS的xy分量加上0.5得到采样的UV值local_UV;
S36、根据所述local_UV对所述模块表面进行采样,在屏幕空间完成模型表面纹理的叠加绘制;
其中,x和y表示坐标轴方向的坐标分量。
5.基于碰撞检测的场景模型表面纹理叠加装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
S1、发射一射线至场景模型,并通过碰撞检测生成可覆盖所述场景模型表面的投影体;
S2、分别计算模型空间中相机的位置和射线的方向,并传入片元着色器中;
S3、在片元着色器中,根据深度值、相机位置的坐标值和射线方向对所述模块表面进行纹理叠加。
6.根据权利要求5所述的基于碰撞检测的场景模型表面纹理叠加装置,其特征在于,步骤S1具体为:
获取待叠加纹理的模型,在模型表面的选定一位置P,从相机位置往模型上的P点发射一射线,当射线与所述模型相交时,沿射线方向生成可覆盖所述场景模型表面的投影体。
7.根据权利要求5所述的基于碰撞检测的场景模型表面纹理叠加装置,其特征在于,步骤S2包括:
S21、计算相机空间到世界空间转换矩阵的逆矩阵matWorldtoView,用该逆矩阵matWorldtoView乘以射线在世界空间的方向得到相机空间中射线的方向view_rayVS;
S22、计算模型空间到相机空间转换矩阵的逆矩阵matViewToObject,用该矩阵matViewToObject乘以所述相机空间中射线的方向view_rayVS,得到模型空间中射线的方向view_rayOS,将所述view_rayOS的w分量设置为view_rayVS的z分量,并传入片元着色器中;
S23、通过逆矩阵matViewToObject乘以相机在相机空间的原点位置得到模型空间中相机的位置camera_posOS,计算计算顶点在屏幕空间的位置,记为screenPos,;
其中,z和w表示坐标轴方向的坐标分量。
8.根据权利要求7所述的基于碰撞检测的场景模型表面纹理叠加装置,其特征在于,步骤S3包括:
S31、在片元着色器中,计算uv在屏幕空间的投影坐标uvSS,uvSS=screenPos.xy/screenPos.w;
S32、对射线在模型空间的方向view_rayOS进行预处理,view_rayOS=view_rayOS.xyz/view_rayOS.w;
S33、通过uvSS采样主相机的深度图得到深度值depth;
S34、计算投影的位置positionOS,positionOS=camera_posOS.xyz+view_rayOS.xyz*depth;
S35、将positionOS的xy分量加上0.5得到采样的UV值local_UV;
S36、根据所述local_UV对所述模块表面进行采样,在屏幕空间完成模型表面纹理的叠加绘制;
其中,x和y表示坐标轴方向的坐标分量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210140274.5A CN114581548A (zh) | 2022-02-16 | 2022-02-16 | 基于碰撞检测的场景模型表面纹理叠加方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210140274.5A CN114581548A (zh) | 2022-02-16 | 2022-02-16 | 基于碰撞检测的场景模型表面纹理叠加方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114581548A true CN114581548A (zh) | 2022-06-03 |
Family
ID=81770378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210140274.5A Pending CN114581548A (zh) | 2022-02-16 | 2022-02-16 | 基于碰撞检测的场景模型表面纹理叠加方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114581548A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115709484A (zh) * | 2023-01-09 | 2023-02-24 | 常州检验检测标准认证研究院 | 一种移动机器人安全仿真检测方法及系统 |
-
2022
- 2022-02-16 CN CN202210140274.5A patent/CN114581548A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115709484A (zh) * | 2023-01-09 | 2023-02-24 | 常州检验检测标准认证研究院 | 一种移动机器人安全仿真检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107452048B (zh) | 全局光照的计算方法及装置 | |
JP6374982B2 (ja) | オブジェクト及び/またはプリミティブ識別子を追跡することによるグラフィック処理の向上 | |
JP6100698B2 (ja) | 画像処理を行うことにより、現実空間にある対象物の奥行きを定める画像処理装置、立体視装置、集積回路、プログラム | |
CN112651881B (zh) | 图像合成方法、装置、设备、存储介质以及程序产品 | |
CN105894551B (zh) | 图像绘制方法及装置 | |
CN110706326B (zh) | 数据展示方法及装置 | |
CN112734896B (zh) | 环境遮蔽渲染方法、装置、存储介质及电子设备 | |
KR20050030569A (ko) | 화상 처리 장치 및 그 방법 | |
EP1922700B1 (en) | 2d/3d combined rendering | |
CN114581548A (zh) | 基于碰撞检测的场景模型表面纹理叠加方法及装置 | |
CN116664752B (zh) | 基于图案化光照实现全景显示的方法、系统及存储介质 | |
CN111951407A (zh) | 一种具有真实位置关系的增强现实模型叠加方法 | |
CN116385577A (zh) | 虚拟视点图像生成方法及装置 | |
CN102831637B (zh) | 基于移动设备的三维重建方法 | |
CN113269819B (zh) | 一种面向视频投射场景的遮挡物动态隐藏方法及装置 | |
CN114170409A (zh) | 一种三维模型的自动判断显示标注的方法 | |
CN110827411B (zh) | 自适应环境的增强现实模型显示方法、装置、设备及存储介质 | |
CN106055108A (zh) | 一种虚拟触摸屏的操控方法和系统 | |
CN107330965B (zh) | 一种利用局部保守光栅化方法实现硬阴影反走样的方法 | |
CN112734628A (zh) | 一种经三维转换后的跟踪点的投影位置计算方法及系统 | |
CN109118563A (zh) | 一种从lod分页表面纹理模型提取数字正射影像图的方法 | |
CN114581584A (zh) | 一种基于uv映射的场景模型表面纹理叠加方法及装置 | |
CN109191556B (zh) | 一种从lod分页表面纹理模型提取栅格化数字高程模型的方法 | |
CN118379470B (zh) | 一种交互式的三维模型纹理的编辑方法、系统及电子设备 | |
CN116263980A (zh) | 一种基于CesiumJS的视频在三维场景中投影映射方法 |
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 |