CN111598992B - 基于Unity3D体和面模型分区剔除渲染方法及*** - Google Patents
基于Unity3D体和面模型分区剔除渲染方法及*** Download PDFInfo
- Publication number
- CN111598992B CN111598992B CN202010271116.4A CN202010271116A CN111598992B CN 111598992 B CN111598992 B CN 111598992B CN 202010271116 A CN202010271116 A CN 202010271116A CN 111598992 B CN111598992 B CN 111598992B
- Authority
- CN
- China
- Prior art keywords
- plane
- point
- model
- rendering
- normal
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000005192 partition Methods 0.000 title claims abstract description 13
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 238000006243 chemical reaction Methods 0.000 claims abstract description 13
- 230000008030 elimination Effects 0.000 claims description 7
- 238000003379 elimination reaction Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种基于Unity3D体和面模型分区剔除渲染方法及***,包括:坐标转换步骤:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;法线传输步骤:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;平面判断步骤:判断模型上的点在平面上方还是下方;数据渲染步骤:若模型上的点在平面上方,则不渲染该点;若模型上的点在平面下方,如果v<0则渲染该点。本发明通过模型点和平面内点确定的向量和法线夹角达到平面分割面模型的目的。
Description
技术领域
本发明涉及模型分割技术领域,具体地,涉及基于Unity3D体和面模型分区剔除渲染方法及***。尤其地,涉及基于Unity3D模型表面曲线测量方法。
背景技术
目前在cpu中分割模型计算量非常大,需要处理每一个三角面,然后进行三维重建。
现有技术中(申请号为200910006405.5的中国专利,公开了“三维模型的分割装置和方法”)的这种平面检测分割模型的方法,其虽然能实现分割模型的三维重建,但却不能保证实时性和好的性能。
现有专利文献CN108479067A(申请号:201810325677.0)公开了一种游戏画面的渲染方法和装置。该方法包括:获取满足预设透明度的控件;根据控件生成网格模型;在控件显示于游戏画面的过程中,同步加载控件对应的网格模型;分别渲染游戏画面中未被网格模型遮挡的像素和控件对应的像素。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于Unity3D体和面模型分区剔除渲染方法。
根据本发明提供的一种基于Unity3D体和面模型分区剔除渲染方法,包括
坐标转换步骤:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;
法线传输步骤:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;
平面判断步骤:判断模型上的点在平面上方还是下方;
数据渲染步骤:若模型上的点在平面上方,则不渲染该点;若模型上的点在平面下方,如果v<0则渲染该点。
优选地,所述坐标转换步骤:
在Unityshader中获取模型本地坐标,将获取的模型本地坐标通过Unityshader内置的矩阵转换为世界坐标。
优选地,所述法线传输步骤:
所述平面法线上方的数据将被剔除;
所述平面法线下方的数据将被渲染。
优选地,所述平面判断步骤:
判断模型上的点在平面上方还是下方:
将模型上的点Xn的坐标和传入的平面内点P做插值,获得向量XnP,计算XnP和平面法线N的点积v,若v>0,则点Xn在平面上方;若v<0,则点Xn在平面下方。
优选地,所述数据渲染步骤:
如果v>0,则不渲染该点,如果v<0则渲染该点。
根据本发明提供的一种基于Unity3D体和面模型分区剔除渲染***,包括
坐标转换模块:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;
法线传输模块:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;
平面判断模块:判断模型上的点在平面上方还是下方;
数据渲染模块:若模型上的点在平面上方,则不渲染该点;若模型上的点在平面下方,如果v<0则渲染该点。
优选地,所述坐标转换模块:
在Unityshader中获取模型本地坐标,将获取的模型本地坐标通过Unityshader内置的矩阵转换为世界坐标。
优选地,所述法线传输模块:
所述平面法线上方的数据将被剔除;
所述平面法线下方的数据将被渲染。
优选地,所述平面判断模块:
判断模型上的点在平面上方还是下方:
将模型上的点Xn的坐标和传入的平面内点P做插值,获得向量XnP,计算XnP和平面法线N的点积v,若v>0,则点Xn在平面上方;若v<0,则点Xn在平面下方。
优选地,其特征在于,所述数据渲染模块:
如果v>0,则不渲染该点,如果v<0则渲染该点。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过模型点和平面内点确定的向量和法线夹角达到平面分割面模型的目的。
2、本发明通过ColorMask0以面模型为载体来剔除体渲染的模型。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的判断模型上的点在平面上方还是下方示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种基于Unity3D体和面模型分区剔除渲染方法,包括
坐标转换步骤:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;
法线传输步骤:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;
平面判断步骤:判断模型上的点在平面上方还是下方;
数据渲染步骤:若模型上的点在平面上方,则不渲染该点;若模型上的点在平面下方,如果v<0则渲染该点。
具体地,所述坐标转换步骤:
在Unityshader中获取模型本地坐标,将获取的模型本地坐标通过Unityshader内置的矩阵转换为世界坐标。
具体地,所述法线传输步骤:
所述平面法线上方的数据将被剔除;
所述平面法线下方的数据将被渲染。
具体地,所述平面判断步骤:
判断模型上的点在平面上方还是下方:
将模型上的点Xn的坐标和传入的平面内点P做插值,获得向量XnP,计算XnP和平面法线N的点积v,若v>0,则点Xn在平面上方;若v<0,则点Xn在平面下方。
具体地,所述数据渲染步骤:
如果v>0,则不渲染该点,如果v<0则渲染该点。
根据本发明提供的一种基于Unity3D体和面模型分区剔除渲染***,包括
坐标转换模块:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;
法线传输模块:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;
平面判断模块:判断模型上的点在平面上方还是下方;
数据渲染模块:若模型上的点在平面上方,则不渲染该点;若模型上的点在平面下方,如果v<0则渲染该点。
具体地,所述坐标转换模块:
在Unityshader中获取模型本地坐标,将获取的模型本地坐标通过Unityshader内置的矩阵转换为世界坐标。
具体地,所述法线传输模块:
所述平面法线上方的数据将被剔除;
所述平面法线下方的数据将被渲染。
具体地,所述平面判断模块:
判断模型上的点在平面上方还是下方:
将模型上的点Xn的坐标和传入的平面内点P做插值,获得向量XnP,计算XnP和平面法线N的点积v,若v>0,则点Xn在平面上方;若v<0,则点Xn在平面下方。
具体地,其特征在于,所述数据渲染模块:
如果v>0,则不渲染该点,如果v<0则渲染该点。
下面通过优选例,对本发明进行更为具体地说明。
优选例1:
基于Unity3D体和面模型分区剔除渲染:
步骤1:在Unityshader中获取模型本地坐标,通过unity_ObjectToWorld(Unity内置的矩阵)转换成世界坐标。
步骤2:然通过cpu传平面内任意的一点P和平面法线N(平面法线上方的数据将被剔除、平面法线下方的数据将被渲染)到Unityshader中;
步骤3:判断模型上的点在平面上方还是下方:将模型上的点Xn的坐标和传入的平面内点P做插值,获得向量XnP,计算XnP和平面法线N的点积v.
步骤4:如果v>0,则不渲染该点,如果v<0则渲染该点。
优选例2:
本发明在unity的ShaderLab中通过平面上一点和面模型点确定的向量和平面法线的夹角来实现平面分割模型的效果,用discard命令来剔除平面一侧的模型。
本发明使用面模型附加ColorMask0的shader来剔除改模型区域的体数据来实现剔除体模型的效果。
根据本发明提供的一种基于Unity3D体和面模型分区剔除渲染方法,包括如下步骤:
转换坐标步骤:在Unityshader中获取模型本地坐标并转换成世界坐标;
输入数据步骤:通过cpu传平面内的一点和平面法线到Unityshader中;
如图1所示,判断模型上的点与平面位置关系步骤:根据平面内的一点和模型上的一点确定一条向量,计算该向量和法线的夹角,小于90°在平面上方,大于90°在平面下方;
截取区域步骤:通过三个正交平面取交集截取八分之一的区域;
面和体模型处理步骤:创建一个面模型,使用ColorMask0的shader;这样该面模型和体模型相交的区域被截掉了。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的***、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的***、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (2)
1.一种基于Unity3D体和面模型分区剔除渲染方法,其特征在于,包括
坐标转换步骤:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;
法线传输步骤:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;
平面判断步骤:判断模型上的点在平面上方还是下方;
数据渲染步骤:若模型上的点在平面上方,则不渲染该点;若模型上的点在平面下方,如果v<0则渲染该点;
所述坐标转换步骤:
在Unityshader中获取模型本地坐标, 将获取的模型本地坐标通过Unityshader内置的矩阵转换为世界坐标;
所述平面判断步骤:
判断模型上的点在平面上方还是下方:
将模型上的点Xn的坐标和传入的平面内点P做插值,获得向量XnP,计算XnP和平面法线N的点积v,若v>0,则点Xn在平面上方;若v<0,则点Xn在平面下方;
所述法线传输步骤:
所述平面法线上方的数据将被剔除;
所述平面法线下方的数据将被渲染;
所述数据渲染步骤:
如果v>0,则不渲染该点,如果v<0则渲染该点。
2.一种基于Unity3D体和面模型分区剔除渲染***,其特征在于,包括
坐标转换模块:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;
法线传输模块:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;
平面判断模块:判断模型上的点在平面上方还是下方;
数据渲染模块:若模型上的点在平面上方,则不渲染该点;若模型上的点在平面下方,如果v<0则渲染该点;
所述坐标转换模块:
在Unityshader中获取模型本地坐标, 将获取的模型本地坐标通过Unityshader内置的矩阵转换为世界坐标;
所述平面判断模块:
判断模型上的点在平面上方还是下方:
将模型上的点Xn的坐标和传入的平面内点P做插值,获得向量XnP,计算XnP和平面法线N的点积v,若v>0,则点Xn在平面上方;若v<0,则点Xn在平面下方;
所述法线传输模块:
所述平面法线上方的数据将被剔除;
所述平面法线下方的数据将被渲染;
所述数据渲染模块:
如果v>0,则不渲染该点,如果v<0则渲染该点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271116.4A CN111598992B (zh) | 2020-04-08 | 2020-04-08 | 基于Unity3D体和面模型分区剔除渲染方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271116.4A CN111598992B (zh) | 2020-04-08 | 2020-04-08 | 基于Unity3D体和面模型分区剔除渲染方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111598992A CN111598992A (zh) | 2020-08-28 |
CN111598992B true CN111598992B (zh) | 2023-10-31 |
Family
ID=72191989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010271116.4A Active CN111598992B (zh) | 2020-04-08 | 2020-04-08 | 基于Unity3D体和面模型分区剔除渲染方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111598992B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345771A (zh) * | 2013-06-28 | 2013-10-09 | 中国科学技术大学 | 一种基于建模的图像高效渲染方法 |
CN104268922A (zh) * | 2014-09-03 | 2015-01-07 | 广州博冠信息科技有限公司 | 一种图像渲染方法及图像渲染装置 |
CN109308735A (zh) * | 2018-08-20 | 2019-02-05 | 上海嘉奥信息科技发展有限公司 | 基于Unity3D体渲染的数据开洞的方法及其存储介质 |
CN110910505A (zh) * | 2019-11-29 | 2020-03-24 | 西安建筑科技大学 | 一种场景模型的加速渲染方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI450215B (zh) * | 2010-12-14 | 2014-08-21 | Via Tech Inc | 影像物件之隱藏面移除的預先揀選方法、系統以及電腦可記錄媒體 |
-
2020
- 2020-04-08 CN CN202010271116.4A patent/CN111598992B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345771A (zh) * | 2013-06-28 | 2013-10-09 | 中国科学技术大学 | 一种基于建模的图像高效渲染方法 |
CN104268922A (zh) * | 2014-09-03 | 2015-01-07 | 广州博冠信息科技有限公司 | 一种图像渲染方法及图像渲染装置 |
CN109308735A (zh) * | 2018-08-20 | 2019-02-05 | 上海嘉奥信息科技发展有限公司 | 基于Unity3D体渲染的数据开洞的方法及其存储介质 |
CN110910505A (zh) * | 2019-11-29 | 2020-03-24 | 西安建筑科技大学 | 一种场景模型的加速渲染方法 |
Non-Patent Citations (3)
Title |
---|
Trabecular Anatomy of the Axis Vertebra: A Study of Shaded Volume-Rendered Computed Tomography Images;K. Venugopal Menon等;《World Neurosurgery》;全文 * |
基于虚拟现实的渲染优化算法;李媛媛;罗训;;计算机***应用(第06期);全文 * |
基于虚拟现实的渲染优化算法;李媛媛等;《计算机***应用》;第28卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111598992A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842438B2 (en) | Method and terminal device for determining occluded area of virtual object | |
CN108564652B (zh) | 高效利用内存的高精度三维重建方法与***及设备 | |
CN101599181B (zh) | 一种代数b样条曲面的实时绘制方法 | |
CN104851127B (zh) | 一种基于交互的建筑物点云模型纹理映射方法及装置 | |
CN107464286B (zh) | 三维城市模型中的孔洞修复方法及装置、设备及可读介质 | |
EP4365841A1 (en) | Object pose detection method and apparatus, computer device, and storage medium | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
CN106548500A (zh) | 一种基于gpu的二维态势图像处理方法及装置 | |
CN106251291A (zh) | 利用OpenGL与OpenCL协作实现图像缩放的方法及*** | |
US20220036106A1 (en) | Method and apparatus for data calculation in neural network model, and image processing method and apparatus | |
Ling et al. | Research on gesture recognition based on YOLOv5 | |
CN111598992B (zh) | 基于Unity3D体和面模型分区剔除渲染方法及*** | |
CN106952216B (zh) | 一种基于imx6图形处理器的直线检测方法 | |
US11281935B2 (en) | 3D object detection from calibrated 2D images | |
US20230386107A1 (en) | Anti-aliasing for real-time rendering using implicit rendering | |
CN110490165B (zh) | 一种基于卷积神经网络的动态手势跟踪方法 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
CN115187995B (zh) | 文档矫正方法、装置、电子设备和存储介质 | |
CN116310060A (zh) | 一种渲染数据的方法、装置、设备及存储介质 | |
CN114170367B (zh) | 无限视距椎状热图渲染的方法、装置、存储介质和设备 | |
CN115619986A (zh) | 场景漫游方法、装置、设备和介质 | |
CN111191309A (zh) | 适用于bim轻量化的实时遮挡剔除方法、装置和设备 | |
CN112926681B (zh) | 一种基于深度卷积神经网络的目标检测方法及装置 | |
Jang et al. | Fast collision detection using the A-buffer | |
Scholz et al. | Level of Detail for Real-Time Volumetric Terrain Rendering. |
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 |