logo好方法网

基于Unity3D体和面模型分区剔除渲染方法及系统


技术摘要:
本发明提供了一种基于Unity3D体和面模型分区剔除渲染方法及系统,包括:坐标转换步骤:在Unityshader中获取模型本地坐标,将获取的模型本地坐标转换为世界坐标;法线传输步骤:通过cpu传平面内任意的一点P和平面法线N到Unityshader中;平面判断步骤:判断模型上的点在平  全部
背景技术:
目前在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在平面下方。 优选地,所述数据渲染步骤: 4 CN 111598992 A 说 明 书 2/4 页 如果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为本发明提供的判断模型上的点在平面上方还是下方示意图。
下载此资料需消耗2积分,
分享到:
收藏