一种基于Unity3d特写三维模型的方法技术

技术编号:28561739 阅读:18 留言:0更新日期:2021-05-25 17:57
本发明专利技术公开了一种基于Unity3d特写三维模型的方法,包括首先计算Unity3d的虚拟摄像机的位置坐标,使虚拟摄像机对准需要特写的三维模型,进行调整虚拟摄像机在三维模型画面中的大小;通过移动虚拟摄像机的位置,确定并计算出虚拟摄像机的角度,计算出虚拟摄像机的位置,然后再对三维模型特写。本发明专利技术通过快速找好拍摄角度和位置,确定出虚拟摄像机到三维模型的距离,既能使需要特写的三维模型以一个视觉感很好的角度出现在屏幕画面中,又能够使其正好占满屏幕画面的80%的尺寸,完美的达到特写的目的,非常方便,适合任何角度、任何方向,解决了一项行业内部普遍受困扰的难题。

【技术实现步骤摘要】
一种基于Unity3d特写三维模型的方法
本专利技术涉及三维模型
,具体来说,涉及一种基于Unity3d特写三维模型的方法。
技术介绍
Unity3d软件是一款常用的、市场占有率很高的三维产品的开发软件,市面上很多手机游戏、三维应用程序、虚拟现实产品都是由Unity3d软件开发的。在开发三维软件产品时,经常会有将一个三维模型特写展示的需求,但是如何以一个很好的角度和距离特写三维模型,Unity3d并没有提供相关功能,需要技术开发人员自己去实现。Unity3d软件展示三维模型方法是:以一个虚拟的摄像机对着三维模型进行拍摄,拍摄的画面就是展示在屏幕的画面。当需要对一个三维模型进行特写时,便要找准角度和位置,使三维模型以比较完美的角度和大小呈现在画面中。如何能够快速找好拍摄的角度和位置,确定出摄像机到三维模型的距离,是一个很大的难点,目前Unity3d的开发领域并没有对这个这一难题有一个广泛认可的解决方案。
技术实现思路
针对相关技术中的上述技术问题,本专利技术提出一种基于Unity3d特写三维模型的方法,能够克服现有技术方法的上述不足。为实现上述技术目的,本专利技术的技术方案是这样实现的:一种基于Unity3d特写三维模型的方法,包括以下步骤:S1:首先计算Unity3d的虚拟摄像机的位置坐标,使虚拟摄像机对准需要特写的三维模型,进行调整虚拟摄像机在三维模型画面中的大小;S2:通过移动虚拟摄像机的位置,确定并计算出虚拟摄像机的角度,计算出虚拟摄像机的位置,然后再对三维模型特写。进一步地,确定出虚拟摄像机的角度的方法是使用Unity3d自带的AddComputer<BoxCollider>方法,将三维模型添加一个碰撞体,这个碰撞体就是根据三维模型的各个顶点位置,将其简化成了长方体模型,然后会根据长方体确定出摄像机相对三维模型所在的角度。进一步地,所述确定虚拟摄像机的位置通过先由虚拟摄像机向三维模型的中心点画一条线段A,进行计算线段A的长度;再由虚拟摄像机向三维模型的最高的顶点画一条线段B,根据向量夹角公式计算AB两个线段之间的角度X;使用Unity3d提供的Vector3.Distance方法计算出两个点的距离M,根据Unity3d屏幕宽度和摄像机位置,得知线段A的长度为:0.3*(M÷0.27),向量和距离相乘,得出虚拟摄像机所在的位置。进一步地,所述向量夹角公式为:cos<a,b>=ab/(|a|·|b|)。进一步地,计算出虚拟摄像机的角度的方法是将三维空间定义三个轴,分别是X轴、Y轴、Z轴,判断出第一长轴、第二长轴和最短轴,根据轴的长短,通过计算来摆放虚拟摄像机相对三维模型的角度,进而通过计算摄像机和三维模型的距离,得出摄像机的位置。本专利技术的有益效果:通过快速找好拍摄角度和位置,确定出虚拟摄像机到三维模型的距离,既能使需要特写的三维模型以一个视觉感很好的角度出现在屏幕画面中,又能够使其正好占满屏幕画面的80%的尺寸,完美的达到特写的目的,非常方便,适合任何角度、任何方向,解决了一项行业内部普遍受困扰的难题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例所述的基于Unity3d特写三维模型的方法的Unity3d虚拟摄像机的空间透视示意图。图2是根据本专利技术实施例所述的基于Unity3d特写三维模型的方法的立体形状碰撞体示意图。图3是根据本专利技术实施例所述的基于Unity3d特写三维模型的方法的虚拟摄像机的空间画面模型示意图。图4是根据本专利技术实施例所述的基于Unity3d特写三维模型的方法的专利技术步骤流程示意图。图中:1.虚拟摄像机、2.屏幕画面、3.屏幕中心点、4.三维模型。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围,为了方便理解本专利技术的上述技术方案,以下通过具体使用方式上对本专利技术的上述技术方案进行详细说明。本专利技术通过计算,迅速得出Unity3d的虚拟摄像机1应当出现的位置坐标,并使虚拟摄像机1对准需要特写的三维模型4,从而使三维模型4以比较完美的角度和大小呈现在屏幕画面2中。如图4所示,根据本专利技术实施例所述的基于Unity3d特写三维模型的方法,包括通过移动虚拟摄像机1的位置来特写三维模型4,如图1所示,其中的原理是虚拟摄像机1的图标为虚拟摄像机1所在的位置,四边形的框是屏幕画面2,在屏幕画面2以左、虚线范围以内,都可以呈现在最终产品画面中。对三维模型4实现一个比较完美的特写,需要控制虚拟摄像机1的角度和位置;虚拟摄像机1的角度决定了三维模型4呈现在屏幕画面2中的形状,例如一个电线杆的模型,正常角度看是一个圆柱体,但是在正上方的角度看,就是一个圆形。虚拟摄像机1的位置决定了三维模型4在屏幕画面2中的大小,距离越近展现的越大,反之则越小。首先确定出虚拟摄像机1的角度。一个三维模型4就是一个有长、宽、高三个维度的立体形状,使用Unity3d自带的AddComputer<BoxCollider>方法,将三维模型4添加一个长方体或正方体的碰撞体,这个碰撞体就是根据三维模型4的各个顶点位置,将其简化成了长方体模型,如图2所示,虚线所展示的就是将一所房子的模型简化成长方体的形状。然后会根据这个长方体的情况就能够确定出虚拟摄像机1相对于三维模型所在的角度。然后将三维空间定义三个轴,分别是X轴(左右)、Y轴(上下)、Z轴(前后),寻找第一长轴,若X轴长度最长,那虚拟摄像机1先放在三维模型4的正前方角度,高度与三维模型4的中心点齐平;寻找第二长的轴,若Z轴第二长,将虚拟摄像机1以自己的Y轴为中心向右旋转0-45度,度数值为:(Z轴长度÷X轴长度)*45度;寻找最短的轴,若是Y轴,将虚拟摄像机1以自己的Z轴为中心向下旋转0-45度,度数值为:(Y轴长度÷X轴长度)*45度。因此便计算出虚拟摄像机1的角度。计算虚拟摄像机1的位置。在Unity3d软件中,虚拟摄像机1到屏幕中心点3的直线距离为0.3米,屏幕的长、宽分别为1米和0.67米,假定三维模型4长宽高都是一样的,先由虚拟摄像机1向三维模型4的中心点画一条线段A,如图3所示,这条线肯定会经过画面中心点3,这里需要计算这条线的长度。然后由虚拟摄像机1向三维模型4的最高的顶点画一条线段B,根据向量夹角公式:cos<a,b>=ab/(|a|·|b|),可以计算出这两个线之间的角度X。已知屏幕画面2的高度为0.67米,高度本文档来自技高网...

【技术保护点】
1.一种基于Unity3d特写三维模型的方法,其特征在于,包括以下步骤:/nS1:首先计算Unity3d的虚拟摄像机的位置坐标,使虚拟摄像机对准需要特写的三维模型,进行调整虚拟摄像机在三维模型画面中的大小;/nS2:通过移动虚拟摄像机的位置,确定并计算出虚拟摄像机的角度,计算出虚拟摄像机的位置,然后再对三维模型特写。/n

【技术特征摘要】
1.一种基于Unity3d特写三维模型的方法,其特征在于,包括以下步骤:
S1:首先计算Unity3d的虚拟摄像机的位置坐标,使虚拟摄像机对准需要特写的三维模型,进行调整虚拟摄像机在三维模型画面中的大小;
S2:通过移动虚拟摄像机的位置,确定并计算出虚拟摄像机的角度,计算出虚拟摄像机的位置,然后再对三维模型特写。


2.根据权利要求1所述的基于Unity3d特写三维模型的方法,其特征在于,确定出虚拟摄像机的角度的方法是使用Unity3d自带的AddComputer<BoxCollider>方法,将三维模型添加一个碰撞体,这个碰撞体就是根据三维模型的各个顶点位置,将其简化成了长方体模型,然后会根据长方体确定出摄像机相对三维模型所在的角度。


3.根据权利要求1所述的基于Unity3d特写三维模型的方法,其特征在于,所述确定虚拟摄像机的位置通过先由虚拟摄像机向三维模型的中心点...

【专利技术属性】
技术研发人员:昝荣师柴有国胡玮明丁邦林韩聪王春花闫碧霄
申请(专利权)人:北京京能信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1