一种三维模型绘制方法及装置、一种计算设备及存储介质
技术领域
本申请涉及互联网技术领域,特别涉及一种三维模型绘制方法及装置、一种计算设备及计算机可读存储介质。
背景技术
现有技术的3D画面场景绘制涉及3D建筑物的绘制时,由于需要透过玻璃幕墙或窗户展示其内部结构,往往需要进行三维模型构建计算,这样会带来极大的运算开销。目前,存在一种非建模的3D绘制技术(Interior Mapping)。这种技术通过实时顶点着色,模拟渲染出三维建筑物的内部结构的类似效果,这样,当从建筑物外部观察时,就获得了和三维建模达到的类似的视觉效果,但是采用Interior Mapping技术在进行着色时通过用虚拟四面体模拟建筑物的房间,容易产生空气墙,造成用户体验较差。
发明内容
有鉴于此,本申请实施例提供了一种三维模型绘制方法及装置、一种计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
第一方面,本申请实施例公开了一种三维模型绘制方法,所述模型包括至少一个三维网格单元,所述方法包括:
确定所述至少一个三维网格单元的外表面的像素位置;
基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置;
基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向;
基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制。
可选地,所述三维网格单元为四面体或六面体。
可选地,确定所述至少一个三维网格单元的外表面的像素位置之前,还包括:
将所述模型转换为像素,并确定所述模型的外表面的像素位置;
基于所述模型的外表面的像素位置确定至少一个三维网格单元。
可选地,每个所述三维网格单元的外表面像素位置包括第一像素位置、第二像素位置和第三像素位置;
所述摄像机位置包括摄像机第一位置、摄像机第二位置和摄像机第三位置;
所述对应的网格参数包括第一网格参数、第二网格参数和第三网格参数;
每个所述三维网格单元的内表面的预先投影位置包括第一投影位置、第二投影位置和第三投影位置。
可选地,基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置包括:
基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的第一投影位置、第二投影位置和第三投影位置。
可选地,基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置之前,还包括:
基于每个所述三维网格单元的外表面像素位置确定对应的网格参数。
可选地,基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制,包括:
基于每个所述三维网格单元的内表面的法线位置和方向进行光照计算,获得渲染后的每个所述三维网格单元,实现所述模型的绘制,其中,渲染后的每个所述三维网格单元构成渲染后的模型。
可选地,所述方法还包括:
基于每个所述三维网格单元的内表面的预先投影位置、摄像机位置以及预设的三维网格单元每个面的厚度确定每个所述三维网格单元的内表面的实际投影位置。
可选地,基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向包括:
基于所述实际投影位置确定每个所述三维网格单元的内表面的法线位置和方向;
基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制包括:
基于每个所述三维网格单元的内表面的法线位置和方向进行光照计算,获得渲染后的每个所述三维网格单元,实现所述模型的绘制,其中,渲染后的每个所述三维网格单元构成渲染后的模型。
第二方面,本申请实施例公开了一种三维模型绘制装置,所述模型包括至少一个三维网格单元,所述装置包括:
第一确定模块,被配置为确定所述至少一个三维网格单元的外表面的像素位置;
获得模块,被配置为基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置;
第二确定模块,被配置为基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向;
第一渲染模块,被配置为基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制。
可选地,所述三维网格单元为四面体或六面体。
可选地,所述装置还包括:
转换模块,被配置为将所述模型转换为像素,并确定所述模型的外表面的像素位置;
第三确定模块,被配置为基于所述模型的外表面的像素位置确定至少一个三维网格单元。
可选地,每个所述三维网格单元的外表面像素位置包括第一像素位置、第二像素位置和第三像素位置;
所述摄像机位置包括摄像机第一位置、摄像机第二位置和摄像机第三位置;
所述对应的网格参数包括第一网格参数、第二网格参数和第三网格参数;
每个所述三维网格单元的内表面的预先投影位置包括第一投影位置、第二投影位置和第三投影位置。
可选地,所述获得模块,进一步被配置为:
基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的第一投影位置、第二投影位置和第三投影位置。
可选地,所述装置还包括:
第四确定模块,被配置为基于每个所述三维网格单元的外表面像素位置确定对应的网格参数。
可选地,所述第一渲染模块,进一步被配置为:
基于每个所述三维网格单元的内表面的法线位置和方向进行光照计算,获得渲染后的每个所述三维网格单元,实现所述模型的绘制,其中,渲染后的每个所述三维网格单元构成渲染后的模型。
可选地,所述装置还包括:
第五确定模块,被配置为基于每个所述三维网格单元的内表面的预先投影位置、摄像机位置以及预设的三维网格单元每个面的厚度确定每个所述三维网格单元的内表面的实际投影位置。
可选地,所述第二确定模块,进一步被配置为基于所述实际投影位置确定每个所述三维网格单元的内表面的法线位置和方向;
所述第一渲染模块,进一步被配置为基于每个所述三维网格单元的内表面的法线位置和方向进行光照计算,获得渲染后的每个所述三维网格单元,实现所述模型的绘制,其中,渲染后的每个所述三维网格单元构成渲染后的模型。
第三方面,本申请还公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述三维模型绘制方法的步骤。
第四方面,本申请还公开了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要如上所述三维模型绘制方法的步骤。
本申请提供的一种三维模型绘制方法及装置、一种计算设备及计算机可读存储介质,其中,所述模型包括至少一个三维网格单元,所述方法包括:确定所述至少一个三维网格单元的外表面的像素位置;基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置;基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向;基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制。在渲染所述三维网格单元时,通过计算每个所述三维网格单元的内表面的法线位置和方向,使得渲染的所述三维网格单元在视觉上不会存在空气墙的效果,从而可以精确地模拟3D建筑真实的内部结构。
附图说明
图1是本说明书一个或多个实施例提供的一种计算设备的结构框图;
图2是本说明书一个或多个实施例提供的一种三维模型绘制方法的流程图;
图3是本说明书一个或多个实施例提供的一种三维模型绘制方法的预设投影位置示意图;
图4是本说明书一个或多个实施例提供的一种三维模型绘制方法的流程图;
图5是本说明书一个或多个实施例提供的一种三维模型绘制方法的实际投影位置示意图;
图6是本说明书一个或多个实施例提供的一种三维模型绘制装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
Phong光照模型:Phong光照模型是真实图形学中提出的第一个有影响的光照明模型,该模型只考虑物体对直接光照的反射作用,认为环境光是常量,没有考虑物体之间相互的反射光,物体间的反射光只用环境光表示。Phong光照模型属于简单光照模型。
Blinn-Phong光照模型:BlinnPhong光照模型混合和了Lambert的漫反射和标准的高光,渲染有时比Phong高光更柔和、更平滑,此外它的处理速度也相当快。
Remap:是一个数学函数,原理为:线性映射,将值v从[a,b]值域线性转化为[c,d],公式为O(v)=c+(v-a)*(d-c)/(b-a)。
在本申请中,提供了一种三维模型绘制方法及装置、一种计算设备及存储介质,在下面的实施例中逐一进行详细说明。
图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示方法中的步骤。图2示出了根据本说明书一实施例的三维模型绘制方法的示意性流程图,所述模型包括至少一个三维网格单元,所述方法包括步骤202至步骤208。
步骤202:确定所述至少一个三维网格单元的外表面的像素位置。
其中,所述三维网格单元为四面体或者六面体,每个三维网格单元均包括多个面,并且每个面均由一个网格构成。
本说明书一个或多个实施例中,所述模型是由多个点和线段组成的多边形;确定所述至少一个三维网格单元的外表面的像素位置之前,还包括:
将所述模型转换为像素,并确定所述模型的外表面的像素位置;
基于所述模型的外表面的像素位置确定至少一个三维网格单元。
实际应用中,所述位置表示坐标,所述模型由多个三维网格单元构成,又可称为图元。
将所述模型转换为像素,并确定所述模型的外表面的像素位置,即为首先图元被适当的裁剪,颜色和纹理数据也相应作出必要的调整,相关的坐标被转换为窗口坐标。最后,光栅化将裁剪好的图元转换为片元,然后将片元通过一系列检测修改为帧缓冲区中对应像素,并确定对应像素的位置即所述模型的外表面的像素位置。
基于所述模型的外表面的像素位置确定至少一个三维网格单元,即根据对应像素的位置计算每个三维网格单元的大小,然后根据计算出的每个三维网格单元的大小将所述模型划分为多个三维网格单元,其中,每个三维网格单元均已知其每个外表面的像素位置,即像素坐标。
步骤204:基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置。
本说明书一个或多个实施例中,基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置之前,还包括:
基于每个所述三维网格单元的外表面像素位置确定对应的网格参数。
其中,每个所述三维网格单元的外表面像素位置包括第一像素位置、第二像素位置和第三像素位置;
所述摄像机位置包括摄像机第一位置、摄像机第二位置和摄像机第三位置;
所述对应的网格参数包括第一网格参数、第二网格参数和第三网格参数;
每个所述三维网格单元的内表面的预先投影位置包括第一投影位置、第二投影位置和第三投影位置。
那么,基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置则可以包括:
基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的第一投影位置、第二投影位置和第三投影位置。
即基于每个所述三维网格单元的外表面第一像素位置、第二像素位置和第三像素位置,摄像机第一位置、摄像机第二位置和摄像机第三位置,以及第一网格参数、第二网格参数和第三网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的第一投影位置、第二投影位置和第三投影位置。
其中,每个所述三维网格单元的外表面像素位置均由一个(x,y,z)向量表示,即第一像素位置、第二像素位置以及第三像素位置表示向量X、Y、Z;同理,所述摄像机位置以及所述对应的网格参数也分别由一个(x,y,z)向量表示,即摄像机第一位置、摄像机第二位置和摄像机第三位置表示向量X、Y、Z,第一网格参数、第二网格参数和第三网格参数表示向量X、Y、Z。
而第一投影位置、第二投影位置和第三投影位置则是基于每个所述三维网格单元的外表面的其中一个像素位置(x,y,z)、摄像机位置(x,y,z)以及对应的网格参数(x,y,z)作为输入,将分别在三维坐标XY、YZ、XZ平面上输出三个投影位置,例如通过所述三维网格单元的外表面像素位置(x,y)、摄像机位置(x,y)以及对应的网格参数(x,y),得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面即三维坐标XY平面的第一投影位置(x,y);同理,得到三维坐标XZ平面的第二投影位置(x,z)、三维坐标YZ平面的第三投影位置(y,z),即第一投影位置、第二投影位置以及第三投影位置投影位置均是由一个(x,y,z)向量所确定的位置。
参见图3,取模型中一个三维网格单元的XY平面视角,以点A为其中一个三维网格单元的其中一个外表面像素位置,摄像机位置为空间坐标,点O为对应的网格参数即网格分层的原点,点P为点A的投影位置为例,对基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置进行详细说明。
首先,基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置,即为基于点A的位置、摄像机位置以及点O的位置,得到在当前摄像机位置下,点A的真正像素位置即预先投影位置点P。
首先,由已知的点A的像素位置A(x,y),计算出点O的位置:
O=Floor(A);
从而可以从相似三角形获得点P的位置:
P(x)=A(x)*O(y)/A(y);
P(y)=O(y)。
该点P的位置是在2D截面上计算出的投影点P的位置,扩展到3D空间,则是由相同的方法取ZY平面视角可得P(z),计算出点A在三维空间的投影位置点P:
P(x)=A(x)*O(y)/A(y);
P(y)=O(y);
P(z)=A(z)*O(y)/A(y)。
因为是将点A投影在XZ平面上,所以,其中点P(x,z)为网格在XZ平面上真正像素位置即点A的投影位置。依据上述方法,可得到点A在XZ,XY,YZ平面上的投影位置点P,从而获得了一个网格中三个面的预先投影位置点P。
实际使用中,一个网格包括六个面,对于其它三个面的投影位置的计算可以参见上述方法,在此不再赘述。其中,每个网格的每个外表面均会存在多个像素位置点A,然后根据多个像素点A可以确定出点A在每个网格内表面的多个预先投影位置点P。
步骤206:基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向。
仍以上述实施例为例,基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向,即基于所述预先投影位置点P,确定出垂直于点P的每个所述三维网格单元的内表面的法线位置和方向。
步骤208:基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制。
本说明书一个或多个实施例中,基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制,具体包括:
基于每个所述三维网格单元的每个内表面的法线位置和方向进行光照计算,即将每个所述三维网格单元的每个内表面的法线位置和方向带代入现有的光照模型中,获得渲染后的每个所述三维网格单元,实现所述模型的绘制,其中,渲染后的每个所述三维网格单元构成渲染后的模型。
实际使用中,可以采用现有的非建模的3D绘制技术基于每个所述三维网格单元的内表面的法线位置和方向进行光照计算,获得渲染后的每个所述三维网格单元,使得每个所述三维网格单元实时定点着色,通过虚拟四面体模型建筑物的方法实现所述模型的绘制。
本说明书一个或多个实施例提供的一种三维模型绘制方法,在进行三维模型绘制时,将所述模型划分为多个三维网格单元,通过在渲染所述三维网格单元时,重新计算每个所述三维网格单元的每个内表面的法线位置和方向,使得渲染的所述三维网格单元在视觉上不会存在空气墙的效果,从而可以精确地模拟3D建筑真实的内部结构,实现所述三维模型的绘制,无需进行三维计算,使得三维模型绘制耗时低,工作效率高。
其中,处理器120可以执行图4所示方法中的步骤。图4示出了根据本说明书一实施例的三维模型绘制方法的示意性流程图,所述模型包括至少一个三维网格单元,所述方法包括步骤402至步骤412。
步骤402:确定所述至少一个三维网格单元的外表面的像素位置。
步骤404:基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置。
步骤406:基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向。
本说明书一个或多个实施例中,步骤402至步骤406的具体实现方式可以参见上述实施例,在此不再赘述。
步骤408:基于每个所述三维网格单元的内表面的预先投影位置、摄像机位置以及预设的三维网格单元每个面的厚度确定每个所述三维网格单元的内表面的实际投影位置。
参见图5,取模型中一个三维网格单元的XY平面视角,以该平面视角的Y轴方向的定义域为(0,1)为例,对基于每个所述三维网格单元的内表面的预先投影位置、摄像机位置以及预设的三维网格单元每个面的厚度确定每个所述三维网格单元的内表面的实际投影位置进行详细说明。
其中,网格Y轴方向的定义域为(0,1),即摄像机与网格入射点A的定义域为(0,1),点A在XZ平面的投影位置为点P1,点O1为对应的网格参数即网格分层的原点。
实际使用中,实现网格的厚度,就相当于将摄像机与点A的定义域限定为某个区间,以区间(0.2,0.8)为例,确定出网格的厚度为0.2,可以看到点A在网格的投影位置不再是点P1而是点P2,同时点B因为在定义域(0,0.2)内,所以点B在XZ平面上的投影还是B点,不需要再进行投影位置计算,然后以点P2为实际投影位置确定三维网格单元的内表面的法线位置和方向,渲染该三维网格单元,实现该三维网格单元的厚度。
对于点P2的计算可以先基于点A确定点O1,然后基于点O1以及预设墙体厚度确定出来点O2,最后根据点O2确定实际投影位置点P2。
即首先对区间(0.2,0.8)内点A的计算,采用Remap进行重新映射O1点的位置,也就是网格原点O1发生了改变后的点O2。其中,计算O1为:
O1=Ceiling(A)
根据O1计算出O2的位置,例如设墙体厚度为K:
O2=Ceiling(A)=>Remap((0,1)=>(clamp(K,0,1)*0.5,1-clamp(K,0,1)*0.5))
根据点O2后,确定出投影定义域的下限和上限:
L1=K*0.5(投影定义域下限)
L2=1-K*0.5(投影定义域上限)
如果L1<=A(x)>=L2;或者L1<=A(y)<=L2;或者L1<=A(z)<=L2时,则P1=A,即网格的预设投影位置点A。
根据点A确定出实际投影位置点P2:
P2=Projector(A,O2),即确定实际投影位置点P2的计算函数。
步骤410:基于所述实际投影位置确定每个所述三维网格单元的内表面的法线位置和方向。
步骤412:基于每个所述三维网格单元的内表面的法线位置和方向进行光照计算,获得渲染后的每个所述三维网格单元,实现所述模型的绘制,其中,渲染后的每个所述三维网格单元构成渲染后的模型。
仍以上述实施例为例,基于所述实际投影位置点P2确定每个所述三维网格单元的内表面的法线位置和方向,然后基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,渲染后的三维网格单元可以体现出网格厚度,实现所述模型的绘制。
本说明书一个或多个实施例提供的一种三维模型绘制方法,在进行三维模型绘制时,将所述模型划分为多个三维网格单元,通过在渲染所述三维网格单元时,重新计算每个所述三维网格单元的内表面的法线位置和方向,使得渲染的所述三维网格单元在视觉上不会存在空气墙的效果,从而可以精确地模拟3D建筑真实的内部结构,实现所述三维模型的绘制,无需进行三维计算,使得三维模型绘制耗时低,工作效率高;并且可以基于预先投影位置确定出实际投影位置,以实际投影位置进行网格渲染,可以体现出三维模型内部网格的厚度,并且该厚度可以根据实际需求进行及时调整,使得绘制的模型更加真实,极大的提高了用户体验。
参见图6,本说明书一个或多个实施例还提供了一种三维模型绘制装置,所述模型包括至少一个三维网格单元,所述装置包括:
第一确定模块602,被配置为确定所述至少一个三维网格单元的外表面的像素位置;
获得模块604,被配置为基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的预先投影位置;
第二确定模块606,被配置为基于所述预先投影位置确定每个所述三维网格单元的内表面的法线位置和方向;
第一渲染模块608,被配置为基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制。
可选地,所述三维网格单元为四面体或六面体。
可选地,所述装置还包括:
转换模块,被配置为将所述模型转换为像素,并确定所述模型的外表面的像素位置;
第三确定模块,被配置为基于所述模型的外表面的像素位置确定至少一个三维网格单元。
可选地,每个所述三维网格单元的外表面像素位置包括第一像素位置、第二像素位置和第三像素位置;
所述摄像机位置包括摄像机第一位置、摄像机第二位置和摄像机第三位置;
所述对应的网格参数包括第一网格参数、第二网格参数和第三网格参数;
每个所述三维网格单元的内表面的预先投影位置包括第一投影位置、第二投影位置和第三投影位置。
可选地,所述获得模块604,进一步被配置为:
基于每个所述三维网格单元的外表面像素位置、摄像机位置以及对应的网格参数,得到每个所述三维网格单元的外表面像素位置在每个所述三维网格单元的内表面的第一投影位置、第二投影位置和第三投影位置。
可选地,所述装置还包括:
第四确定模块,被配置为基于每个所述三维网格单元的外表面像素位置确定对应的网格参数。
可选地,所述第一渲染模块608,进一步被配置为:
基于每个所述三维网格单元的内表面的法线位置和方向进行光照计算,获得渲染后的每个所述三维网格单元,实现所述模型的绘制,其中,渲染后的每个所述三维网格单元构成渲染后的模型。
可选地,所述装置还包括:
第五确定模块,被配置为基于每个所述三维网格单元的内表面的预先投影位置、摄像机位置以及预设的三维网格单元每个面的厚度确定每个所述三维网格单元的内表面的实际投影位置。
可选地,第二确定模块606,进一步被配置为基于所述实际投影位置确定每个所述三维网格单元的内表面的法线位置和方向;
第一渲染模块608,进一步被配置为基于每个所述三维网格单元的内表面的法线位置和方向渲染所述三维网格单元,实现所述模型的绘制。
本说明书一个或多个实施例提供的一种三维模型绘制装置,在进行三维模型绘制时,将所述模型划分为多个三维网格单元,通过在渲染所述三维网格单元时,重新计算每个所述三维网格单元的内表面的法线位置和方向,使得渲染的所述三维网格单元在视觉上不会存在空气墙的效果,从而可以精确地模拟3D建筑真实的内部结构,实现所述三维模型的绘制,无需进行三维计算,使得三维模型绘制耗时低,工作效率高。
上述为本实施例的一种三维模型绘制装置的示意性方案。需要说明的是,该三维模型绘制装置的技术方案与上述的三维模型绘制方法的技术方案属于同一构思,三维模型绘制装置的技术方案未详细描述的细节内容,均可以参见上述三维模型绘制方法的技术方案的描述。
本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述三维模型绘制方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的三维模型绘制方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述三维模型绘制方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述三维模型绘制方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的三维模型绘制方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述三维模型绘制方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。