CN116310041A - 内构效果的渲染方法及装置、电子设备、存储介质 - Google Patents
内构效果的渲染方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN116310041A CN116310041A CN202310265193.2A CN202310265193A CN116310041A CN 116310041 A CN116310041 A CN 116310041A CN 202310265193 A CN202310265193 A CN 202310265193A CN 116310041 A CN116310041 A CN 116310041A
- Authority
- CN
- China
- Prior art keywords
- model
- target
- texture
- rendering
- virtual
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种内构效果的渲染方法及装置、电子设备、存储介质,其中,方法包括:生成形状与内构模型表面的形状一致,并且与内构模型表面之间存在预设间距的虚拟内表面;根据当前视角方向确定虚拟内表面中与内构模型表面的原始像素点对应的虚拟像素点;根据虚拟像素点的法线方向确定虚拟像素点映射到内构模型表面的目标像素点,并根据目标像素点对内构模型的内构纹理贴图进行采样,得到目标内构纹理贴图;根据目标内构纹理贴图渲染内构模型表面;本申请实施例通过将内部模型贴图化,可以减少渲染开销,提高渲染效率;通过生成虚拟内表面,实现视差偏移,使得到的内构效果不仅可以贴合模型表面还可以随视线变化,提高内构效果的真实性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及内构效果的渲染方法及装置、电子设备、存储介质。
背景技术
在计算机图形学,尤其是游戏和动画渲染中,我们大部分渲染都是基于模型表面(surface)进行的。然而,我们仍然会遇到一些特殊的渲染需求,比如带有玻璃窗户的建筑物。在此类渲染中,模型表面由半透明材质覆盖,透过该材质可以看到内部结构。例如我们透过建筑物的玻璃窗,可以看到建筑内部的房间布局,这样的渲染效果,我们统称为内构效果。
现有技术为渲染出真实的内构效果,一般基于内部模型进行渲染,将内构效果的渲染变成了普通的模型渲染。该基于内部模型的渲染,用实际的模型填充已有模型的内部,工作量大、成本高,且渲染消耗大,尤其不适用于大型游戏或动画类的场景。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
鉴于上述问题,提出了本申请以便提供克服上述问题或者至少部分地解决上述问题的内构效果的渲染方法及装置、电子设备、存储介质,包括:
一种内构效果的渲染方法,所述方法包括:
根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
根据所述目标内构纹理贴图渲染所述内构模型表面。
可选地,在所述根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面之前,所述方法还包括:
生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒;
获取所述包围盒的包围盒纹理坐标信息,并将所述包围盒纹理坐标信息与内构纹理贴图关联。
可选地,所述生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒,包括:
通过构建立方体,并调整所述立方体的位置、大小以及朝向,使所述立方体在所述目标模型的投影与所述内构模型表面重合;
根据所述立方体的位置、大小以及朝向,生成所述内构模型表面对应的包围盒。
可选地,所述根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图,包括:
确定所述包围盒中与所述目标像素点对应的像素纹理坐标;
根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图。
可选地,在所述根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图之后,还包括:
获取所述目标模型的预设内构遮罩贴图;所述预设内构遮罩贴图为黑白贴图,且所述预设内构遮罩贴图中的白色区域的边界与所述内构模型表面的边界相对应;
根据所述预设内构遮罩贴图对所述目标内构纹理贴图进行采样,以更新所述目标内构纹理贴图。
可选地,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图渲染所述内构模型表面。
可选地,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图,生成第一渲染结果;
获取所述内构模型表面的第二光照信息以及所述内构模型表面的表面贴图;
根据所述第二光照信息和所述表面贴图,生成第二渲染效果;
融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。
一种内构效果的渲染装置,所述装置包括:
虚拟内表面生成模块,用于根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
虚拟像素点确定模块,用于根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
内构贴图采样模块,用于根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
内构模型渲染模块,用于根据所述目标内构纹理贴图渲染所述内构模型表面。
可选地,所述装置还包括:
包围盒生成模块,用于生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒;
包围盒关联模块,用于获取所述包围盒的包围盒纹理坐标信息,并将所述包围盒纹理坐标信息与内构纹理贴图关联。
可选地,所述包围盒生成模块,包括:
立方体调整子模块,用于通过构建立方体,并调整所述立方体的位置、大小以及朝向,使所述立方体在所述目标模型的投影与所述内构模型表面重合;
参数确定子模块,用于根据所述立方体的位置、大小以及朝向,生成所述内构模型表面对应的包围盒。
可选地,所述内构贴图采样模块,包括:
像素纹理坐标确定子模块,用于确定所述包围盒中与所述目标像素点对应的像素纹理坐标;
基于像素纹理坐标采样子模块,用于根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图。
可选地,所述装置还包括:
预设内构遮罩贴图获取模块,用于获取所述目标模型的预设内构遮罩贴图;所述预设内构遮罩贴图为黑白贴图,且所述预设内构遮罩贴图中的白色区域的边界与所述内构模型表面的边界相对应;
目标内构纹理贴图更新模块,用于根据所述预设内构遮罩贴图对所述目标内构纹理贴图进行采样,以更新所述目标内构纹理贴图。
可选地,所述内构模型渲染模块,包括:
第一光照信息获取模块,用于获取所述目标内构纹理贴图的第一光照信息;
内构渲染模块,用于根据所述第一光照信息和所述目标内构纹理贴图渲染所述内构模型表面。
可选地,所述内构模型渲染模块,包括:
第一光照信息获取模块,用于获取所述目标内构纹理贴图的第一光照信息;
第一渲染子模块,用于根据所述第一光照信息和所述目标内构纹理贴图,生成第一渲染结果;
第二光照信息获取模块,用于获取所述内构模型表面的第二光照信息以及所述内构模型表面的表面贴图;
第二渲染子模块,用于根据所述第二光照信息和所述表面贴图,生成第二渲染效果;
融合子模块,用于融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的内构效果的渲染方法。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的内构效果的渲染方法。
本申请具有以下优点:
在本申请的实施例中,根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,虚拟内表面的形状与内构模型表面的形状一致,并且虚拟内表面与内构模型表面之间存在预设间距;根据当前视角方向确定虚拟内表面中与内构模型表面的原始像素点对应的虚拟像素点;根据虚拟像素点的法线方向确定虚拟像素点映射到内构模型表面的目标像素点,并根据目标像素点对内构模型的内构纹理贴图进行采样,得到目标内构纹理贴图;根据目标内构纹理贴图渲染内构模型表面;本申请实施例通过将内部模型贴图化,可以减少渲染开销,提高渲染效率;本申请实施例通过生成虚拟内表面,实现视差偏移,使得到的内构效果不仅可以贴合模型表面还可以随视线变化,提高内构效果的真实性。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术渲染内构效果的流程示意图;
图2为采用贴花渲染内构效果的流程示意图;
图3为采用内部映射渲染内构效果的原理示意图;
图4为本申请实施例的一种内构效果的渲染方法的步骤流程图;
图5为本申请实施例中确定目标像素点的原理示意图;
图6为本申请一示例中调整立方体时立方体与坐标轴的关系示意图;
图7为本申请一示例中内构模型表面的内构效果示意图;
图8为在图7的基础上,融合第二渲染结果的渲染结果示意图;
图9为本申请一示例中渲染内构效果的流程图;
图10为本申请实施例的一种内构效果的渲染装置的结构框图;
图11为本申请实施例的一种电子设备的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在游戏或动画场景中,存在需要透过透明或半透明的材质显示内部模型的需求。现有技术一般基于内部模型进行渲染,将内构效果的渲染变成了普通的模型渲染。具体包括如图1所示的流程:设计内构区域、根据内构显示区域裁切原始模型和内构模型、将裁切后的原始模型和内构模型合并,再进行模型渲染。该基于内部模型的渲染,用实际的模型填充已有模型的内部,工作量大、成本高,且渲染消耗大,尤其不适用于大型游戏或动画类的场景。
针对现有技术的缺陷,发明人想到可以基于贴花进行渲染,采用一张表现内部结构的2D纹理图片,利用贴花的方式,渲染到模型表面的对应位置,从而来表现内构效果。具体包括如图2所示的流程:设计内构区域、转换成贴花参数、原始模型和内构贴花渲染、合并渲染效果。但是,该基于贴花进行渲染的方式,透过表面透明材质,看到的只是一张内部结构的图片,就像玻璃上的贴纸一样,直接贴到了物体模型的表面上,没有纵深感。在模型出现转角的不同部分上的各个区域之间,并没有透视差异。即使相机与模型对象成一定角度,内部的视野也始终是朝向正面的。这种透视缺失的效果大大削弱了氛围感和立体感。
此外,发明人还想到可以基于内部映射进行渲染,如图3所示,将内部结果所在的区域想像成一个矩形盒子,这样只需将内部的相交点映射到纹理,然后输出正确的颜色即可。虽然该基于内部结构虚构出的立方体区域,采用类似于立方体映射的方式,呈现内部立方体每个面的表现效果,可以呈现出内部结构的纵深感和透视差异。但其根本缺陷是采用了立方体映射的方式,这种方式限定了内部结构是一个立方体区域,而且物体模型的表面是平整的,比如对于建筑物的窗户以及窗户内部房间这样的渲染,可以得到很好的效果。对于一些复杂的物体模型,带有各种弧面、凹凸不平的模型结构,这种方式的渲染效果不能很好的贴合物体表面,仍然是以立方体映射的形式呈现内部结构。此外,对于物体表面出现垂直相交面等转折结构的时候,会造成两个面的内部结构表面形式不一致。
鉴于此,本申请实施例提供了一种内构效果的渲染方法,通过将内部模型贴图化,可以减少渲染开销,提高渲染效率;本申请实施例通过生成虚拟内表面,实现视差偏移,使得到的内构效果不仅可以贴合模型表面还可以随视线变化,提高内构效果的真实性。
参照图4,示出了本申请一实施例提供的一种内构效果的渲染方法的步骤流程图,该内构效果的渲染方法可以运行于本地终端设备或者是服务器。本地终端设备可以包括但不限于智能手机、台式电脑、平板电脑、笔记本电脑、车载中控等电子设备。服务器可以用于为本地终端设备提供后台服务。其中,服务器可以是一个独立运行的服务器,也可以是分布式服务器,还可以是由多个服务器组成的服务器集群。当信息处理方法运行于服务器时,该信息处理方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,内构效果的渲染方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,第一终端设备、电视机、计算机、掌上电脑等;但是内构效果的渲染方法的为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
在一可选的实施方式中,以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备运行游戏程序,该游戏程序可以是需要下载安装的游戏程序,也可以时即点即用的游戏程序等。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
在本申请实施例中,该方法可以包括如下步骤:
步骤401,根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
步骤402,根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
步骤403,根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
步骤404,根据所述目标内构纹理贴图渲染所述内构模型表面
本申请实施例根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,虚拟内表面的形状与内构模型表面的形状一致,并且虚拟内表面与内构模型表面之间存在预设间距;根据当前视角方向确定虚拟内表面中与内构模型表面的原始像素点对应的虚拟像素点;根据虚拟像素点的法线方向确定虚拟像素点映射到内构模型表面的目标像素点,并根据目标像素点对内构模型的内构纹理贴图进行采样,得到目标内构纹理贴图;根据目标内构纹理贴图渲染内构模型表面;本申请实施例通过将内部模型贴图化,可以减少渲染开销,提高渲染效率;本申请实施例通过生成虚拟内表面,实现视差偏移,使得到的内构效果不仅可以贴合模型表面还可以随视线变化,提高内构效果的真实性。
下面,将对本示例性实施例中内构效果的渲染方法作进一步地说明。
在步骤401中,根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距。
内构模型表面可以认为是目标模型中材质为透明材质或半透明材质的部分,内构模型表面用于将目标模型内部的内构模型显示出来。
生成形状与内构模型表面的形状一致,并且与内构模型表面之间存在预设间距的虚拟内表面,当内构模型表面不是平整的平面时,即当内构模型表面存在凹凸不平或弧状时,通过与内构模型表面形状一致的虚拟内表面,可以实现与内构模型表面贴合,且具有深度效果的内构效果,具体实现过程参见后文描述。
在步骤402中,根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点。
在游戏引擎中,虚拟模型都在三维空间中,而屏幕和窗口却是二维像素数组,这导致游戏引擎的大部分工作都是关于把三维坐标转变为适应屏幕的二维像素。三维坐标转为二维坐标的处理过程是由游戏引擎的图形渲染管线(Graphics Pipeline)管理的,该图形渲染管线实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程。图形渲染管线可以被划分为两个主要部分:第一部分把虚拟模型的三维坐标转换为二维坐标,第二部分是把二维坐标转变为实际的有颜色的像素。
可以理解,模型的渲染过程就是将模型的三维坐标转变为适应屏幕的二维像素,并为像素添加相应的颜色。
当前视角方向是指虚拟摄像机的朝向,以虚拟摄像机的视角对目标模型进行观察,可以得到内构模型表面在屏幕中的像素点,即原始像素点;将虚拟摄像机与内构模型表面的各个像素点的连线延长以与虚拟内表面想交,将各个像素点对应的交点确定为各个像素点对应的虚拟像素点。
在步骤403中,根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图。
虚拟内表面与内构模型表面的形状一致,因此,可以确定虚拟内表面的各个虚拟像素点的法线,针对每个虚拟像素点,将该虚拟像素点的法线沿法线方向延长,可以与内构模型表面相交,此时的交点即为虚拟像素点对应的目标像素点。
如图5所示,当着色器渲染内构模型表面P0处的内构效果时,可以通过射线(即视角方向)确定出P0在虚拟内表面的虚拟像素点P2,将该虚拟像素点P2的内构效果作为P0处的内构效果。当视线变化时,即视角方向发生了变化,就可以得到凹陷进去的内构效果,并且完美贴合内构模型表面。由于P2不便于对内构纹理贴图进行采样,因此,可以通过推导出的公式,计算出与P2对应的目标像素点P3的位置,用P3对内构纹理贴图进行采样。对应的计算公式如下:
P2=P0-L*viewDir;
P3=P2+depth*normal=P0-L*viewDir+depth*normal;
其中,depth表示虚拟内表面与内构模型表面之间的预设间距,viewDir表示视角方向,normal表示法线方向。
考虑到在一些场景中,例如,具有复杂显示需求的舰船和空间建筑模型,内构模型表面一般不是一个平面,而是复杂的曲面、或凹凸不平状,其内构模型表面的纹理坐标UV不是连续的,而内构模型的内构纹理贴图一般对应的是连续的UV,因此,难以直接利用内构模型表面的UV去对内构模型的内构纹理贴图进行采样。其中,UV是贴图影射到模型表面的依据,定义了图像中每个点的位置的信息。这些点与三维场景中的模型是相互联系的,用于定位纹理贴图表面的位置,也就是将图像上每一个像素精确对应到模型的表面。
鉴于此,在本申请一可选实施例中,可以生成与内构模型表面对应的包围盒,通过包围盒的连续UV来表示内构模型表面,从而视线将内构模型表面不连续的UV转换为连续的UV。即在所述根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面之前,所述方法还包括:
生成待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒;
获取所述包围盒的包围盒纹理坐标信息,并将所述包围盒纹理坐标信息与内构纹理贴图关联。
在本实施例中,通过生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒,以将内构模型表面不连续的UV转换为包围盒的连续UV。该包围盒一般是指内构模型表面的最小包围盒,即包围盒覆盖内构模型表面。可以理解,通过虚拟摄像机拍摄该包围盒,该包围盒投影到目标模型中的位置和大小与目标模型的内构模型表面完全一致或基本一致。为了便于计算处理,该包围盒具体可以是AABB包围盒,即上述包围盒具体可以是矩形包围盒,矩形包围盒在计算上消耗很小,即用矩形包围盒来替代内构模型表面,可以减少计算消耗、提高计算效率。
在生成包围盒后,由于包围盒也可以认为是模型空间中的一个模型,因此,可以获取包围盒的纹理坐标信息,为了便于区分,将包围盒的纹理坐标信息记为包围盒纹理坐标信息,并将包围盒纹理坐标信息与内构纹理贴图关联,可以理解,内构纹理贴图中的任意一个像素点在包围盒上都可以找到对应的UV,反之,根据包围盒的包围盒纹理坐标信息,可以从内构纹理贴图中找到相应的像素点。采用内构纹理贴图渲染包围盒,可以实现在包围盒所在的位置显示内构模型的效果。
其中,在生成待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒的过程中,需要确定包围盒的大小、位置以及投影方向。
示例性地,可以先对目标模型的标准坐标轴,按照投影方向进行旋转,即对目标模型所在的模型空间的坐标轴进行旋转,使其中一个坐标轴与投影方向平行,一般是使投影方向垂直于内构模型表面的一个顶点所在的平面;然后计算目标模型的顶点与投影立方体中心的方向向量,该投影立方体可以理解为虚拟摄像机,得到各个顶点与投影立方体中心的方向向量后,将方向向量投影到旋转后投影的坐标轴上,然后对投影进行截取,即可得到与内构模型表面对应的包围盒。相应的代码如下:
float3 display_box_x_local=float3(1.0,0.0,0.0);
float3 display_box_y_local=float3(0.0,1.0,0.0);
float3 display_box_z_local=float3(0.0,0.0,1.0);
display_box_x_local=mul(eular_rotation_mat,display_box_x_local);
display_box_y_local=mul(eular_rotation_mat,display_box_y_local);
display_box_z_local=mul(eular_rotation_mat,display_box_z_local);
float3 model_pos_from_box_center=position_local-box_center.xyz;
float x_dot=dot(display_box_x_local,model_pos_from_box_center);
float y_dot=dot(display_box_y_local,model_pos_from_box_center);
float z_dot=dot(display_box_z_local,model_pos_from_box_center);
float region_mask_x=step(abs(x_dot),box_size.x*0.5f);
float region_mask_y=step(abs(y_dot),box_size.y*0.5f);
float region_mask_z=step(abs(z_dot),box_size.z*0.5f);
float region_mask=region_mask_x*region_mask_y*region_mask_z。
然而,在实际操作过程中,相关人员凭感觉和经验去设置包围盒的大小、位置以及投影方向是有一定困难的,并且效率很低,因此,本申请一可选实施例提供了一种包围盒的生成方式,即上述生成待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒,可以包括:
通过构建立方体,并调整所述立方体的位置、大小以及朝向,使所述立方体在所述目标模型的投影与所述内构模型表面重合;
根据所述立方体的位置、大小以及朝向,生成所述内构模型表面对应的包围盒。
在本实施例中,通过在模型空间中构建出一个立方体,并调整立方体的位置、大小以及朝向,使立方体在目标模型的投影与内构模型表面重合,然后将该立方体的参数转换到着色器中内构模型表面的参数中,这样,就可以方便地在编辑器中通过图形化辅助的立方体,去直观地调整包围盒。
需要说明的是,由于包围盒的参数是在模型空间中定义的,而编辑器中编辑立方体,在属性面板看到的转换transform参数是世界空间的,因此,需要将立方体的transform参数转换到目标模型的模型空间中。
为了提高制作的便捷性,在编辑参数时,可以将目标模型在场景中的transform的位置和朝向归0,缩放归1,这样目标模型的模型空间与场景的世界空间是重叠的,调整立方体得到的transform参数就是最终所需的参数,不需要进行转换。
为了在着色器中可以直接使用立方体的transform参数,还需要一些特殊处理,在进行欧拉旋转的时候,默认的三个坐标轴需要和模型空间中的标准坐标轴保持一致,相应的代码如下:
float3 display_box_x_local=float3(1.0,0.0,0.0);
float3 display_box_y_local=float3(0.0,1.0,0.0);
float3 display_box_z_local=float3(0.0,0.0,1.0);
此时,在着色器利用立方体transform参数经过欧拉变换之后得到的包围盒与在编辑器中看到的立方体就是一致的。
如图6所示,在投影立方体中,可以以x轴表示投影方向,在生成包围盒UV时,以投影方向垂直平面,也就是YZ平面为基准,以Z轴表示水平方向,也就是U的方向,以Y轴为垂直方向,也就是V方向。
在得到内构模型表面对应的包围盒后,上述根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图,包括:
确定所述包围盒中与所述目标像素点对应的像素纹理坐标;
根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图。
由于目标像素点是内构模型表面的像素点,该目标像素点对应的纹理坐标可以用包围盒中与该目标像素点对应的像素的像素纹理坐标来表示,其中,包围盒中与目标像素点对应的像素纹理坐标,即为包围盒中投影到目标像素点的表面的像素纹理坐标。
由于包围盒的包围盒纹理坐标与内构纹理贴图关联,因此,根据包围盒的像素纹理坐标可以从内构纹理贴图中找到对应的纹理。在虚拟摄像机的拍摄范围内,可以得到多个原始像素点,每个原始像素点都可以确定一个对应的虚拟像素点,因此可以得到多个虚拟像素点,而每个虚拟像素点可以确定一个对应的目标像素点,因此,可以得到多个目标像素点,进而可以确定每个目标像素点对应的像素纹理坐标,因此,可以得到多个像素纹理坐标,根据多个像素纹理坐标对内构纹理贴图进行采样,即可得到目标内构纹理贴图。
进一步地,考虑到在借助包围盒来将内构模型表面的UV连续化的过程中,为了便于计算,减少性能消耗,一般采用AABB包围盒,而实际上,内构模型表面边缘与包围盒的边缘并不完全一致,为了细化细节的处理,在本申请一些可选实施例中,上述方法还可以包括:
获取所述目标模型的预设内构遮罩贴图;所述预设内构遮罩贴图为黑白贴图,且所述预设内构遮罩贴图中的白色区域的边界与所述内构模型表面的边界相对应;
根据所述预设内构遮罩贴图对所述目标内构纹理贴图进行采样,以更新所述目标内构纹理贴图。
其中,预设内构遮罩贴图为黑白贴图,也称0-1遮罩贴图,当预设内构遮罩贴图中的像素点为白色时,即像素值为1时,表示目标模型中与该像素点对应的位置属于内构模型表面;当预设内构遮罩贴图中的像素点为黑色时,即像素值为0时,表示目标模型中与该像素点对应的位置属于非内构模型表面,即不属于内构模型表面,是不透明的。预设内构遮罩贴图可以根据目标模型各部位的透明度进行生成,或者,也可以由相关人员根据实际需求预先设置得到。
本实施例通过预设内构遮罩贴图对目标内构纹理贴图进行采样,来更新目标内构纹理贴图,不仅可以提高后续渲染效果的细节表现,当预设内构遮罩贴图是由相关人员根据实际需求预先设置得到时,还可以实现通过修改预设内构遮罩贴图很方便地调整内构模型显示区域的边缘,而不需要对模型进行修改,可以大大节约制作成本。
在步骤404中,根据所述目标内构纹理贴图渲染所述内构模型表面。
在得到目标内构纹理贴图后,采用目标内构纹理贴图渲染内构模型表面,可以得到在内构模型表现呈现出内构模型的效果,即得到内构效果。
进一步地,为了使内构效果更加真实,在本申请一些可选实施例中,上述根据所述目标内构纹理贴图渲染所述内构模型表面,还可以包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图渲染所述内构模型表面。
本实施例在对内构模型表面进行渲染的过程中,还需要结合目标内构纹理贴图的第一光照信息,即结合内构模型的第一光照信息,根据第一光照信息和目标内构纹理贴图对内构模型表面进行渲染,可以实现更加真实的内构效果,如图7所示为本申请一示例中内构模型表面的内构效果示意图。
进一步地,考虑到一些内构模型表面可能不是完全透明的,例如带颜色的玻璃,这类内构模型表面也存在对应的纹理贴图,为了便于区分,将内构模型表面对应的纹理贴图记为表面贴图。为了使内构效果更加真实,在本申请一些可选实施例中,上述根据所述目标内构纹理贴图渲染所述内构模型表面,还可以包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图,生成第一渲染结果;
获取所述内构模型表面的第二光照信息以及所述内构模型表面的表面贴图;
根据所述第二光照信息和所述表面贴图,生成第二渲染效果;
融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。
本实施例中,在对内构模型表面进行渲染的过程中,不仅需要考虑其对应的内构模型的纹理,还需要考虑其本身的纹理。上述根据第一光照信息和目标内构纹理贴图,生成第一渲染结果,该第一渲染结果可以认为是内构模型中与内构模型表面对应区域的渲染结果,上述根据第二光照信息和表面贴图,生成第二渲染结果,该第二渲染结果可以认为是内构模型表面的渲染结果。将第一渲染结果和第二渲染结果进行混合,即可得到内构模型表面最终的渲染结果。
其中,融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。如图8所示为在图7的基础上,融合第二渲染结果的渲染结果示意图。
为了方便本领域技术人员理解本方案,下面将结合图9所示的流程图对本申请实施例提供的内构效果的渲染方法进行示例性说明。
步骤901,将目标模型分为内构模型表面和其他模型表面,其他模型表面是指不能显示内构模型的表面;针对内构模型表面执行步骤902,针对其他模型表面执行步骤906。
步骤902,根据内构模型表面生成与内构模型表面的形状一致的虚拟内表面,该虚拟内表面与内构模型表面存在预设间距。
步骤903,根据虚拟内表面,计算内构模型表面的原始像素位置P0映射到虚拟内表面的虚拟像素位置P2。
步骤904,将虚拟内表面的虚拟像素位置P2按照法线方向,映射回内构模型表面的目标像素位置P3。
步骤905,利用贴花算法,确定目标像素位置P3的UV。在本申请一可选实施例中,贴花算法是通过生成内构模型表面对应的包围盒来实现的,确定目标像素位置P3的UV,即确定包围盒中与目标像素位置P3对应的像素的UV。
步骤906,利用确定出的UV,对内构模型的内构纹理贴图进行采样,并进行光照计算,得到第一渲染结果。
步骤907,对其他模型表面进行常规的光照渲染,得到第三渲染结果。
步骤908,将第一渲染结果和第三渲染结果进行融合,得到目标模型的最终渲染结果。可以理解,目标模型的最终渲染结果是目标模型整体的渲染结果,既包含了内构模型表面的渲染结果,也包含了其他模型表面的渲染结果。将第一渲染结果和第三渲染结果进行融合的过程,可以认为是将第一渲染结果所对应的像素点和第三渲染结果所对应的像素点进行拼接,以得到目标模型整体的渲染结果。
本申请实施例根据待渲染的目标模型用于显示内构模型的内构模型表面,生成虚拟内表面,虚拟内表面的形状与内构模型表面的形状一致,并且虚拟内表面与内构模型表面之间存在预设间距;根据当前视角方向确定虚拟内表面中与内构模型表面的原始像素点对应的虚拟像素点;根据虚拟像素点的法线方向确定虚拟像素点映射到内构模型表面的目标像素点,并根据目标像素点对内构模型的内构纹理贴图进行采样,得到目标内构纹理贴图;根据目标内构纹理贴图渲染内构模型表面;本申请实施例通过将内部模型贴图化,可以减少渲染开销,提高渲染效率;本申请实施例通过生成虚拟内表面,实现视差偏移,使得到的内构效果不仅可以贴合模型表面还可以随视线变化,提高内构效果的真实性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图10,示出了本申请的一种内构效果的渲染装置实施例的结构框图,与内构效果的渲染方法实施例相对应,在本申请实施例中,内构效果的渲染装置可以包括如下模块:
虚拟内表面生成模块1001,用于根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
虚拟像素点确定模块1002,用于根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
内构贴图采样模块1003,用于根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
内构模型渲染模块1004,用于根据所述目标内构纹理贴图渲染所述内构模型表面。
在本申请的一些可选实施例中,所述装置还可以包括:
包围盒生成模块,用于生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒;
包围盒关联模块,用于获取所述包围盒的包围盒纹理坐标信息,并将所述包围盒纹理坐标信息与内构纹理贴图关联。
在本申请的一些可选实施例中,所述包围盒生成模块,可以包括:
立方体调整子模块,用于通过构建立方体,并调整所述立方体的位置、大小以及朝向,使所述立方体在所述目标模型的投影与所述内构模型表面重合;
参数确定子模块,用于根据所述立方体的位置、大小以及朝向,生成所述内构模型表面对应的包围盒。
在本申请的一些可选实施例中,所述内构贴图采样模块1003,可以包括:
像素纹理坐标确定子模块,用于确定所述包围盒中与所述目标像素点对应的像素纹理坐标;
基于像素纹理坐标采样子模块,用于根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图。
在本申请的一些可选实施例中,所述装置还可以包括:
预设内构遮罩贴图获取模块,用于获取所述目标模型的预设内构遮罩贴图;所述预设内构遮罩贴图为黑白贴图,且所述预设内构遮罩贴图中的白色区域的边界与所述内构模型表面的边界相对应;
目标内构纹理贴图更新模块,用于根据所述预设内构遮罩贴图对所述目标内构纹理贴图进行采样,以更新所述目标内构纹理贴图。
在本申请的一些可选实施例中,所述内构模型渲染模块1004,可以包括:
第一光照信息获取模块,用于获取所述目标内构纹理贴图的第一光照信息;
内构渲染模块,用于根据所述第一光照信息和所述目标内构纹理贴图渲染所述内构模型表面。
在本申请的一些可选实施例中,所述内构模型渲染模块1004,可以包括:
第一光照信息获取模块,用于获取所述目标内构纹理贴图的第一光照信息;
第一渲染子模块,用于根据所述第一光照信息和所述目标内构纹理贴图,生成第一渲染结果;
第二光照信息获取模块,用于获取所述内构模型表面的第二光照信息以及所述内构模型表面的表面贴图;
第二渲染子模块,用于根据所述第二光照信息和所述表面贴图,生成第二渲染效果;
融合子模块,用于融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参见图11,本申请实施例还公开了电子设备11,包括处理器1101、存储器1102及存储在所述存储器1102上并能够在所述处理器1101上运行的计算机程序1103,所述计算机程序1103被所述处理器1101执行时实现如上所述的内构效果的渲染方法的步骤,例如:
根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
根据所述目标内构纹理贴图渲染所述内构模型表面。
在本申请的一些可选实施例中,在所述根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面之前,所述方法还包括:
生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒;
获取所述包围盒的包围盒纹理坐标信息,并将所述包围盒纹理坐标信息与内构纹理贴图关联。
在本申请的一些可选实施例中,所述生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒,包括:
通过构建立方体,并调整所述立方体的位置、大小以及朝向,使所述立方体在所述目标模型的投影与所述内构模型表面重合;
根据所述立方体的位置、大小以及朝向,生成所述内构模型表面对应的包围盒。
在本申请的一些可选实施例中,所述根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图,包括:
确定所述包围盒中与所述目标像素点对应的像素纹理坐标;
根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图。
在本申请的一些可选实施例中,在所述根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图之后,还包括:
获取所述目标模型的预设内构遮罩贴图;所述预设内构遮罩贴图为黑白贴图,且所述预设内构遮罩贴图中的白色区域的边界与所述内构模型表面的边界相对应;
根据所述预设内构遮罩贴图对所述目标内构纹理贴图进行采样,以更新所述目标内构纹理贴图。
在本申请的一些可选实施例中,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图渲染所述内构模型表面。
在本申请的一些可选实施例中,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图,生成第一渲染结果;
获取所述内构模型表面的第二光照信息以及所述内构模型表面的表面贴图;
根据所述第二光照信息和所述表面贴图,生成第二渲染效果;
融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。
根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,虚拟内表面的形状与内构模型表面的形状一致,并且虚拟内表面与内构模型表面之间存在预设间距;根据当前视角方向确定虚拟内表面中与内构模型表面的原始像素点对应的虚拟像素点;根据虚拟像素点的法线方向确定虚拟像素点映射到内构模型表面的目标像素点,并根据目标像素点对内构模型的内构纹理贴图进行采样,得到目标内构纹理贴图;根据目标内构纹理贴图渲染内构模型表面;本申请实施例通过将内部模型贴图化,可以减少渲染开销,提高渲染效率;本申请实施例通过生成虚拟内表面,实现视差偏移,使得到的内构效果不仅可以贴合模型表面还可以随视线变化,提高内构效果的真实性。
本申请实施例还公开了计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的内构效果的渲染方法的步骤,例如:
根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
根据所述目标内构纹理贴图渲染所述内构模型表面。
在本申请的一些可选实施例中,在所述根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面之前,所述方法还包括:
生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒;
获取所述包围盒的包围盒纹理坐标信息,并将所述包围盒纹理坐标信息与内构纹理贴图关联。
在本申请的一些可选实施例中,所述生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒,包括:
通过构建立方体,并调整所述立方体的位置、大小以及朝向,使所述立方体在所述目标模型的投影与所述内构模型表面重合;
根据所述立方体的位置、大小以及朝向,生成所述内构模型表面对应的包围盒。
在本申请的一些可选实施例中,所述根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图,包括:
确定所述包围盒中与所述目标像素点对应的像素纹理坐标;
根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图。
在本申请的一些可选实施例中,在所述根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图之后,还包括:
获取所述目标模型的预设内构遮罩贴图;所述预设内构遮罩贴图为黑白贴图,且所述预设内构遮罩贴图中的白色区域的边界与所述内构模型表面的边界相对应;
根据所述预设内构遮罩贴图对所述目标内构纹理贴图进行采样,以更新所述目标内构纹理贴图。
在本申请的一些可选实施例中,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图渲染所述内构模型表面。
在本申请的一些可选实施例中,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图,生成第一渲染结果;
获取所述内构模型表面的第二光照信息以及所述内构模型表面的表面贴图;
根据所述第二光照信息和所述表面贴图,生成第二渲染效果;
融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。
根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,虚拟内表面的形状与内构模型表面的形状一致,并且虚拟内表面与内构模型表面之间存在预设间距;根据当前视角方向确定虚拟内表面中与内构模型表面的原始像素点对应的虚拟像素点;根据虚拟像素点的法线方向确定虚拟像素点映射到内构模型表面的目标像素点,并根据目标像素点对内构模型的内构纹理贴图进行采样,得到目标内构纹理贴图;根据目标内构纹理贴图渲染内构模型表面;本申请实施例通过将内部模型贴图化,可以减少渲染开销,提高渲染效率;本申请实施例通过生成虚拟内表面,实现视差偏移,使得到的内构效果不仅可以贴合模型表面还可以随视线变化,提高内构效果的真实性。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请实施例中提出的所有获取信息的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种内构效果的渲染方法及装置、电子设备、存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种内构效果的渲染方法,其特征在于,所述方法包括:
根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
根据所述目标内构纹理贴图渲染所述内构模型表面。
2.根据权利要求1所述的方法,其特征在于,在所述根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面之前,所述方法还包括:
生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒;
获取所述包围盒的包围盒纹理坐标信息,并将所述包围盒纹理坐标信息与内构纹理贴图关联。
3.根据权利要求2所述的方法,其特征在于,所述生成与待渲染的目标模型中用于显示内构模型的内构模型表面对应的包围盒,包括:
通过构建立方体,并调整所述立方体的位置、大小以及朝向,使所述立方体在所述目标模型的投影与所述内构模型表面重合;
根据所述立方体的位置、大小以及朝向,生成所述内构模型表面对应的包围盒。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图,包括:
确定所述包围盒中与所述目标像素点对应的像素纹理坐标;
根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图。
5.根据权利要求4所述的方法,其特征在于,在所述根据所述像素纹理坐标对所述内构纹理贴图进行采样,得到目标内构纹理贴图之后,还包括:
获取所述目标模型的预设内构遮罩贴图;所述预设内构遮罩贴图为黑白贴图,且所述预设内构遮罩贴图中的白色区域的边界与所述内构模型表面的边界相对应;
根据所述预设内构遮罩贴图对所述目标内构纹理贴图进行采样,以更新所述目标内构纹理贴图。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图渲染所述内构模型表面。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述目标内构纹理贴图渲染所述内构模型表面,包括:
获取所述目标内构纹理贴图的第一光照信息;
根据所述第一光照信息和所述目标内构纹理贴图,生成第一渲染结果;
获取所述内构模型表面的第二光照信息以及所述内构模型表面的表面贴图;
根据所述第二光照信息和所述表面贴图,生成第二渲染效果;
融合所述第一渲染结果和所述第二渲染结果,得到所述内构模型表面的渲染结果。
8.一种内构效果的渲染装置,其特征在于,所述装置包括:
虚拟内表面生成模块,用于根据待渲染的目标模型中用于显示内构模型的内构模型表面,生成虚拟内表面,所述虚拟内表面的形状与所述内构模型表面的形状一致,并且所述虚拟内表面与所述内构模型表面之间存在预设间距;
虚拟像素点确定模块,用于根据当前视角方向确定所述虚拟内表面中与所述内构模型表面的原始像素点对应的虚拟像素点;
内构贴图采样模块,用于根据所述虚拟像素点的法线方向确定所述虚拟像素点映射到所述内构模型表面的目标像素点,并根据所述目标像素点对内构纹理贴图进行采样,得到目标内构纹理贴图;所述内构纹理贴图是所述内构模型对应的纹理贴图;
内构模型渲染模块,用于根据所述目标内构纹理贴图渲染所述内构模型表面。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7任一项所述的内构效果的渲染方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的内构效果的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310265193.2A CN116310041A (zh) | 2023-03-13 | 2023-03-13 | 内构效果的渲染方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310265193.2A CN116310041A (zh) | 2023-03-13 | 2023-03-13 | 内构效果的渲染方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116310041A true CN116310041A (zh) | 2023-06-23 |
Family
ID=86792139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310265193.2A Pending CN116310041A (zh) | 2023-03-13 | 2023-03-13 | 内构效果的渲染方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116310041A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117218266A (zh) * | 2023-10-26 | 2023-12-12 | 神力视界(深圳)文化科技有限公司 | 3d白模的纹理贴图生成方法、装置、设备及介质 |
-
2023
- 2023-03-13 CN CN202310265193.2A patent/CN116310041A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117218266A (zh) * | 2023-10-26 | 2023-12-12 | 神力视界(深圳)文化科技有限公司 | 3d白模的纹理贴图生成方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108648269B (zh) | 三维建筑物模型的单体化方法和系统 | |
US11694392B2 (en) | Environment synthesis for lighting an object | |
US9626790B1 (en) | View-dependent textures for interactive geographic information system | |
EP3057066B1 (en) | Generation of three-dimensional imagery from a two-dimensional image using a depth map | |
US7348989B2 (en) | Preparing digital images for display utilizing view-dependent texturing | |
US9704282B1 (en) | Texture blending between view-dependent texture and base texture in a geographic information system | |
JP5299173B2 (ja) | 画像処理装置および画像処理方法、並びにプログラム | |
EP3655928B1 (en) | Soft-occlusion for computer graphics rendering | |
CN112288873B (zh) | 渲染方法和装置、计算机可读存储介质、电子设备 | |
CN115049811B (zh) | 一种数字孪生虚拟三维场景的编辑方法、系统及存储介质 | |
US9965893B2 (en) | Curvature-driven normal interpolation for shading applications | |
US9754398B1 (en) | Animation curve reduction for mobile application user interface objects | |
CN109741431B (zh) | 一种二三维一体化电子地图框架 | |
CN112734896A (zh) | 环境遮蔽渲染方法、装置、存储介质及电子设备 | |
CN116310041A (zh) | 内构效果的渲染方法及装置、电子设备、存储介质 | |
Sandnes | Sketching 3D immersed experiences rapidly by hand through 2D cross sections | |
KR20170091710A (ko) | 디지털 비디오 렌더링 | |
US9401044B1 (en) | Method for conformal visualization | |
CN117011492B (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
US20230260218A1 (en) | Method and apparatus for presenting object annotation information, electronic device, and storage medium | |
CN116416386A (zh) | 一种基于数字孪生l5级仿真高清渲染还原系统 | |
KR101428577B1 (ko) | 적외선 동작 인식 카메라를 사용하여 화면상에 네추럴 유저 인터페이스 기반 입체 지구본을 제공하는 방법 | |
US10275939B2 (en) | Determining two-dimensional images using three-dimensional models | |
JP2973413B2 (ja) | コンピュータグラフィックスの照度計算方法及び表示装置 | |
CN116030228B (zh) | 一种基于web的mr虚拟画面展示方法及装置 |
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 |