CN116474363A - 场景模型的渲染方法、装置和电子设备 - Google Patents
场景模型的渲染方法、装置和电子设备 Download PDFInfo
- Publication number
- CN116474363A CN116474363A CN202310111582.XA CN202310111582A CN116474363A CN 116474363 A CN116474363 A CN 116474363A CN 202310111582 A CN202310111582 A CN 202310111582A CN 116474363 A CN116474363 A CN 116474363A
- Authority
- CN
- China
- Prior art keywords
- scene
- model
- normal
- scene model
- world space
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000010586 diagram Methods 0.000 claims abstract description 17
- 238000005070 sampling Methods 0.000 claims description 62
- 239000011159 matrix material Substances 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 19
- 230000009466 transformation Effects 0.000 claims description 19
- 230000003068 static effect Effects 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种场景模型的渲染方法、装置和电子设备,其中,该方法包括获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;基于场景高度图生成目标场景的第二场景模型;基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。该方式可以在场景模型面数较低的情况下,准确的表达复杂的场景形态,降低了整体性能开销,提高了复杂场景形态的表达准确率。
Description
技术领域
本发明涉及计算机图形技术领域,尤其是涉及一种场景模型的渲染方法、装置和电子设备。
背景技术
在虚拟场景中,场景模型可以为用户提供重要的视觉体验和交互体验,例如,SLG(Simulation Game,模拟游戏)游戏场景中的地形模型。相关技术中,工作人员在三维编辑软件中制作场景模型,导出场景模型的高度图和材质分布图,然后将高度图和材质分布图导入游戏引擎,还原得到场景模型。为了准确的表达场景形态,通常需要场景模型具有较高的面数,场景形态越复杂,对场景模型的面数要求就会越高;然而对于手机、平板电脑等终端设备,硬件资源和性能有限,难以支持高面数的场景模型,导致复杂场景形态的表达准确率较低。
发明内容
有鉴于此,本发明的目的在于提供一种场景模型的渲染方法、装置和电子设备,以在场景模型面数较低的前提下,提高复杂场景形态的表达准确率。
第一方面,本发明实施例提供了一种场景模型的渲染方法,该方法包括:获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
第二方面,本发明实施例还提供一种场景模型的渲染装置,该装置包括:第一生成模块,用于获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;转换模块,用于获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;第二生成模块,用于基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;渲染模块,用于基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述场景模型的渲染方法。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述场景模型的渲染方法。
本发明实施例带来了以下有益效果:
获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。该方式中,根据目标场景的场景高度图,分别生成高面数场景模型和低面数场景模型,将高面数场景模型的局部空间法线经转换得到对应的世界空间法线,进而基于该世界空间法线对低面数场景模型进行渲染,得到目标场景的渲染结果。该方式可以在场景模型面数较低的情况下,准确的表达复杂的场景形态,降低了整体性能开销,提高了复杂场景形态的表达准确率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种场景模型的渲染方法的流程图;
图2为本发明实施例提供的一种场景模型的表达效果对比示意图;
图3为本发明实施例提供的一种场景模型的渲染装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,虚拟场景中的场景模型通常有两种制作方式,一种方式中,是通过美术工作人员在拥有编辑功能的三维编辑软件中制作场景模型,导出场景模型的高度图和材质分布图,再将高度图和材质分布图导入游戏引擎,还原得到场景模型。该方式中,为了准确的表达场景形态,需要场景模型具有较高的面数,而对于手机、平板电脑等终端设备,由于硬件资源和性能有限,难以支持高面数的场景模型,因此导致复杂场景形态的表达准确率较低。
另一种方式中,是技术工作人员通过分析场景模型以及场景模型中元素的网格形态,通过程序化的方式生成场景模型以及场景模型中元素的网格,然后为生成的网格编写材质。而该方式中,对场景模型效果的表达是有限的,会导致生成的场景模型比较单调、僵硬。
基于上述,本发明实施例提供的一种场景模型的渲染方法、装置以及系统,可以用于影视或游戏等虚拟场景中,对场景模型的制作、渲染,例如,渲染SLG游戏中的地形。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种场景模型的渲染方法进行详细介绍,如图1所示,本方法包括如下步骤:
步骤S102,获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;
在虚拟场景中,通常包括多种场景模型,可以为用户提供重要的视觉体验和交互体验,营造很好的氛围感。以游戏场景为例,对于不同的游戏类型以及游戏情节,其对应的游戏场景也不尽相同。通常情况下,在游戏场景中的场景模型可以包括建筑模型、场景道具模型、植物模型、地形模型等等,可以通过制作不同的场景模型,来组成不同的游戏场景,以此来体现游戏的美术风格、配合游戏剧情发展烘托整体氛围,或者满足交互需求等。
上述目标场景可以为虚拟场景中的任一场景模型对应的场景,上述场景高度图可以为一个二维数组,比如(u,v),并且可以包括目标场景中场景位置的高度信息。以策略类游戏为例,在该类游戏场景中少不了游戏地图,而在游戏地图中又少不了地形。因此,在实际实现时,上述目标场景可以为游戏场景中的地形,该地形可以理解为一系列高度不同的网格。上述场景高度图的数组中的每个元素可以指定地形网格中某一顶点的高度值,用于模拟现实生活中的地形。场景高度图可以有多种表现形式,比如,灰度图、声音流等。通常情况下,高度图一般通过灰度图来表示,其中的每个像素点可以代表采样的高度。
进一步的,可以根据场景高度图,生成目标场景的第一场景模型,该第一场景模型中的模型面数高于预设面数阈值,实际实现时,游戏场景中的场景模型都可以有面数要求,其中,面数越高的场景模型,其表达的场景形态也越复杂,面数较低的场景模型,其表达的场景形态相对简单。上述第一场景模型,即可为根据场景高度图生成的高面数地形模型。
一种具体的实现方式中,可以通过对场景高度图进行采样,根据采样数据来生成目标场景的第一场景模型,在采样过程中,当采样的间隔越小时,生成的场景模型的面数会越多。因此,在对目标场景的场景高度图进行采样时,以较小的采样间隔来采样,即可获得模型面数高于预设面数阈值的第一场景模型。
步骤S104,获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;
具体的,每个模型都有自己的局部空间,当模型旋转或者移动时,模型的局部空间也会随之移动。另外,模型的每个顶点都位于局部空间内。而世界空间是各个不同的模型都堆砌在一起的虚拟空间。在实际实现时,需要获取第一场景模型的局部空间法线,该局部空间法线可以根据预设的局部空间坐标系确定,而局部空间坐标系可以根据第一场景模型建立,比如,以第一场景模型的中心或者某个顶点为坐标原点,建立局部空间坐标系。
然后,将局部空间法线转化至世界空间,该世界空间是上述第一场景模型所在的虚拟空间。在将第一场景模型放入到世界空间中时,可以基于第一场景模型在世界空间中的位置、缩放比例等因素,使第一场景模型的局部空间和世界空间建立一种对应关系,基于这种对应关系,可以将上述局部空间法线转换到世界空间,进而得到第一场景模型对应的世界空间法线。该世界空间法线可以很好的表现第一场景模型中的细节信息。
步骤S106,基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;
具体的,还可以根据上述目标场景的场景高度图生成第二场景模型,需要注意的是,该第二场景模型中的模型面数低于预设的面数阈值,也就是,第二场景模型可以为低面数地形模型。实际实现时,可以以较大的采样间隔对目标场景的场景高度图再次采样,从而生成模型面数低于预设面数阈值的第二场景模型。
该步骤中,由于采样间隔较大,可以极大的降低整体性能开销。
步骤S108,基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
为了使低面数的场景模型也能够很好的表达目标场景的场景形态,需要对第二场景模型进行物理渲染。具体的,可以在第二场景模型的着色器中对上述世界空间法线进行采样,然后,再根据需要将颜色、粗糙度、金属度等参数输入至引擎中内置的物理渲染相关函数中,根据计算出的结果对第二场景模型进行物理渲染,从而得到目标场景的渲染结果。
该渲染结果是基于世界空间法线对目标场景的低面数模型进行渲染得到的结果,因此对目标场景中的复杂场景形态具有良好的表达效果。
上述场景模型的渲染方法,获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
该方式中,根据目标场景的场景高度图,分别生成高面数场景模型和低面数场景模型,将高面数场景模型的局部空间法线经转换得到对应的世界空间法线,进而基于该世界空间法线对低面数场景模型进行渲染,得到目标场景的渲染结果。该方式可以在场景模型面数较低的情况下,准确的表达复杂的场景形态,降低了整体性能开销,提高了复杂场景形态的表达准确率。
下述实施例提供一种获取第一场景模型中顶点的局部空间法线的具体实施方式。
获取第一场景模型中模型图元的局部空间坐标;基于模型图元的局部空间坐标,确定该模型图元的图元法线;基于图元法线,确定第一场景模型中顶点的局部空间法线;其中,该顶点的局部空间法线,基于顶点相邻的至少一个模型图元的图元法线确定。
具体的,上述模型图元是组成图像的基本单元,比如,三维模型中的点、线段、面等,其本质是顶点的集合,比如,线段为两个顶点,面通常为三角形构成的平面。通常模型图元最多只有三角形,因为三角形总是有相同的顶点数,而且三个顶点可以确定一个平面,方便后续将其视为二维平面处理。如果有四个点,则需要额外的方法保证其在同一个平面,且不产生凹多边形。
一种具体的实现方式中,可以获取第一场景模型中所有模型图元的局部空间坐标,基于模型图元的局部空间坐标,可以确定模型图元的图元法线。以模型图元为三角形为例,如果获取某个模型图元的局部空间的三个点的坐标为A,B,C,可以令V1=B-A,V2=C-A,此时,该模型图元的图元法线可以通过叉积(V1,V2)计算得到。
进一步的,可以根据图元法线确定第一场景模型中顶点的局部空间法线。实际实现时,第一场景模型中任意顶点的局部空间法线可以是与顶点相邻的所有模型图元的图元法线的平均,也就是,第一场景模型中顶点的局部空间法线可以根据与顶点相邻的至少一个模型图元的图元法线来确定。
下述实施例提供一种得到第一场景模型对应的世界空间法线的具体实施方式。
一种方式中,获取顶点变换矩阵;其中,该顶点变换矩阵用于:将世界空间中的法线转换至局部空间坐标系中;将局部空间法线与顶点变换矩阵的逆矩阵的乘积,确定为第一场景模型对应的世界空间法线。
在创建完成模型后,模型的顶点坐标信息是定义在以该模型的中心或者某个顶点为原点的局部空间中的,当将模型放入到虚拟场景中时,可以通过变换矩阵对模型进行移动、旋转或者缩放等变换,从而使模型处在虚拟场景对应的世界空间中。也就是说,局部空间和世界空间可以通过变换矩阵获得一种对应关系。
在一可选的方式中,可以获取顶点变换矩阵,该顶点变化矩阵可以用来将世界空间中的法线转换至局部空间坐标系中。也就是,世界空间中的法线与顶点变化矩阵做乘积运算,可以得到世界空间法线在局部空间坐标系中对应的信息。反之,可以将局部空间法线与上述顶点变化矩阵的逆矩阵的乘积,确定为第一场景模型中顶点的世界空间法线。
实际实现时,可以在顶点着色器中计算第一场景模型中顶点的世界空间法线。其中,顶点着色器,是可以对顶点进行一系列操作的着色器,具体可以是一组指令代码,该组指令代码在顶点被渲染时执行。顶点除了具有最基本的位置属性,还可以包含纹理、法线等其他属性。通过顶点着色器,显卡可以知道顶点应该绘制的具体位置。具体的,顶点着色器可以从应用阶段获取需要的数据,比如,顶点在局部空间中的坐标位置、顶点的局部空间法线、颜色等等。在Unity引擎中,提供了通过网格顶点坐标数据自动生成顶点局部空间法线的程序联通接口。因此,可以在着色器的顶点输入中,输入第一场景模型网格顶点坐标数据,自动生成顶点的局部空间法线,然后在顶点着色器中,将顶点的局部空间法线乘上顶点变换矩阵的逆矩阵,得到的乘积,即可确定为第一场景模型中顶点的世界空间法线。
另一种方式中,将第一场景模型划分为多个模型块;基于正交相机对模型块进行透视插值,得到该模型块对应的世界空间法线;将多个模型块对应的世界空间法线,确定为第一场景模型对应的世界空间法线。
在另一可选的实施方式中,可以将第一场景模型划分为多个模型块,该多个模型块可以根据其所处的位置,对第一场景模型的场景高度图进行采样,使每个模型块具有比较高的网格密度,也就是,以较小的采样间隔进行采样,基于此,每个模型块可以完善的显示第一场景模型的场景高度图所表达的内容。
在实际实现时,可以将上述顶点的世界空间法线,输入至像素着色器中,然后由正交相机对模型块进行透视插值,得到正交相机视口内任意像素的世界空间法线。其中,像素着色器,也是一组指令代码,该组指令代码在顶点中像素被渲染时执行。正交相机使用正交投影来进行投影,在这种投影模式下,无论物体距离相机距离远还是近,在最终渲染的图片中,物体的大小是保持不变的。基于正交相机对模型块进行透视插值,可以得到模型块中像素的世界空间法线。然后,可以将多个模型块中像素的世界空间法线,确定为第一场景模型的像素的世界空间法线。
进一步的,设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;在像素着色器中,通过光栅化阶段的透视插值,获取相机视口内像素的世界空间法线,将该世界空间法线烘焙到预设的法线贴图中。
在实际实现时,需要对正交相机进行设置。具体的,设置正交相机的朝向与上述模型块垂直,即,正交相机的视线是垂直看向模型块的。然后,设置正交相机与模型块中心位置的连线与模型块垂直,即,正交相机的视口中心与模型块中心在水平平面上坐标相同。另外,需要注意的是正交相机的相机视口大小要包含整个模型块。
另外,在像素着色器中,可以通过光栅化阶段的透视插值,获取相机视口内像素的世界空间法线。其中,光栅化是一种解决图形渲染过程中可见性问题的方法,可见性包括能够分辨模型的哪部分对相机是可见的,而不可见的部分,可以是位于相机视口之外,还可以被其他模型遮挡隐藏。在光栅化阶段,可以使用透视投影,将模型图元的三维坐标变成二维坐标来表示,其中,该模型图元可以为三角形。由于投影面上顶点的二维坐标与模型图元的顶点属性不成线性关系,因此,不能简单的使用线性插值来计算顶点属性,而是采用透视插值,具体可以采用透视矫正插值进行计算,进而可以获得相机视口内像素的世界空间法线。
然后,再将上述世界空间法线烘焙到预设的法线贴图中,其中,法线贴图是可以应用到三维立体表面的特殊纹理,可以使每个平面的各像素拥有高度值,可以创建出多种特殊的立体视觉效果。
采用该方式生成的世界空间法线,可以很好的表现第一场景模型的细节信息。
下述实施例提供一种生成目标场景的第二场景模型的具体实施方式。
基于预设采样间隔,对场景高度图进行采样,得到第一采样数据;基于该第一采样数据生成目标场景的第二场景模型;其中,采样间隔越大,第二场景模型的模型面数越少。
具体的,可以预设采样间隔,根据该采样间隔对目标场景的场景高度图进行采样,得到第一采样数据。需要说明的是,上述预设的采样间隔,可以根据目标场景中顶点的数量来设置,举例来说,如果目标场景的顶点数量为100*100,假设顶点分布均匀,那么上述预设采样间隔可以为1/100,当顶点的数量越多时,即密度越大,预设的采样间隔越小。反之,当顶点数量越少时,预设的采样间隔会越大。然后,可以根据上述第一采样数据生成目标场景的第二场景模型,该第二场景模型的面数低于预设面数阈值,也就是,第二场景模型为低面数的场景模型。
在实际实现时,当采样间隔越大时,生成的第二场景模型的模型面数越少。因此,可以将目标场景划分为多个区域,在划分时,可以依据实际项目的需要或者可以接受的程度进行划分,使目标场景的多个区域中的顶点数量对应的采样间隔满足要求,进而使生成的目标场景的场景模型的模型面数符合要求。
该步骤中,基于预设采样间隔,对场景高度图进行采样,生成低面数的场景模型,降低了整体性能开销。
下述实施例提供一种对第二场景模型进行物理渲染的具体实施方式。
获取世界空间法线对应的法线贴图;其中,该法线贴图用于:将第一场景模型的高度方向上的法线信息投影至第二场景模型;对法线贴图进行采样处理,得到第二采样数据;基于该第二采样数据对第二场景模型进行物理渲染。
实际实现时,根据上述第一采样数据生成目标场景的第二场景模型后,可以获取第一场景模型的世界空间法线对应的法线贴图,该法线贴图可以用于将第一场景模型的高度方向上的法线信息投影至第二场景模型。进一步的,第二场景模型可以在像素着色器中,传入烘焙的法线贴图,以及阴影贴图等,此时,可以直接通过目标场景的高度图对法线贴图进行采样处理,得到第二采样数据,该第二采样数据可以包括世界空间法线值、阴影值等数据。
最后,根据第二采样数据对第二场景模型进行物理渲染。具体的,输入上述第二采样数据,以及粗糙度、颜色值、金属度等参数,经过引擎中内置的物理渲染的相关函数的计算,得到计算结果,然后对第二场景模型进行物理渲染,即可获得最终的渲染结果。
以地形模型为例,图2为由两种方式生成的低面数地形模型的表达效果对比图,其中图2左侧的(a)为直接生成的低面数地形模型,右侧的(b)为根据本实施进行物理渲染后的低面数地形模型。通过观察可知,(b)中的地形模型细节信息更加丰富,对地形模型的表达效果更准确。
该步骤中,将高面数模型的世界空间法线沿垂直方向投影到低面数模型上,再经过物理渲染计算,对低面数模型进行物理渲染,使得低面数模型拥有高面数模型的细节,提高了低面数模型对复杂场景形态的表达准确率。
进一步的,获取第一场景模型对应的阴影贴图;其中,该阴影贴图中包括第一场景模型的静态阴影信息;基于阴影贴图对第二场景模型进行物理渲染,得到目标场景的阴影渲染结果。具体的,还可以获取第一场景模型对应的阴影贴图,在该阴影贴图中可以包括第一场景模型的静态阴影信息,该静态阴影源于静态光源,是静态光源产生的阴影。需要注意的是,静态阴影是直接烘焙在贴图上的,即使将模型移开,地上的阴影也不会发生变化。然后,再根据上述阴影贴图对第二次场景模型进行物理渲染,得到目标场景的阴影渲染结果,从而使第二场景模型拥有真实感光照和更加精确的阴影效果。
需要说明的是,该步骤不是本实施例的必要步骤,可以根据实际需要决定是否基于阴影贴图对场景模型进行渲染。
下述实施例提供一种获取第一场景模型对应的阴影贴图的具体实施方式。
将第一场景模型划分为多个模型块;设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;计算相机视口内像素的静态阴影,得到阴影计算结果;将阴影计算结果烘焙到预设的阴影贴图中,得到第一场景模型对应的阴影贴图。
实际实现时,还可以将上述第一场景模型划分为多个模型块,并设置正交相机,具体可以为:设置正交相机的朝向与上述模型块垂直,即,正交相机的视线是垂直看向模型块的。然后,设置正交相机与模型块中心位置的连线与模型块垂直,即,正交相机的视口中心与模型块中心在水平平面上坐标相同。另外,需要注意的是正交相机的相机视口大小要包含整个模型块。
然后,计算相机视口内像素的静态阴影,需要说明的是,计算上述静态阴影的方式有多种,本实施例在此不作限定,可以根据实际情况,选取合适的计算方式,得到阴影计算结果。进一步的,将该阴影解算结果通过上述正交相机烘焙到预设的阴影贴图中,从而得到第一场景模型对应的阴影贴图。
本实施例中,首先根据目标场景的场景高度图生成高面数的场景模型,并获取高面数场景模型的局部空间法线,对其进行转化得到对应的世界空间法线,并烘焙到法线贴图,还可以计算高面数场景模型的静态阴影,将其烘焙到阴影贴图。再根据目标场景的场景高度图生成一低面数的场景模型,并在低面数场景模型的像素着色器中采样高面数模型的贴图,得到采样数据,将采样数据加入物理渲染流程中,对低面数模型进行物理渲染。最终获得可以准确表达复杂场景形态的低面数场景模型。需要说明的是,本实施例采用正交相机进行烘焙,近似于将高面数模型的世界空间法线沿着垂直方向投影到低面数模型上,从而使低面数场景模型可以表达高面数场景模型的细节信息,提高了低面数场景模型表达复杂场景形态的准确率。
对于上述方法实施例,参见图3所示的一种场景模型的渲染装置的结构示意图,该装置包括:
第一生成模块32,用于获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;
转换模块34,用于获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;
第二生成模块36,用于基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;
渲染模块38,用于基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
上述场景模型的渲染装置,获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
该方式中,根据目标场景的场景高度图,分别生成高面数场景模型和低面数场景模型,将高面数场景模型的局部空间法线经转换得到对应的世界空间法线,进而基于该世界空间法线对低面数场景模型进行渲染,得到目标场景的渲染结果。该方式可以在场景模型面数较低的情况下,准确的表达复杂的场景形态,降低了整体性能开销,提高了复杂场景形态的表达准确率。
上述转换模块还用于:获取第一场景模型中模型图元的局部空间坐标;基于模型图元的局部空间坐标,确定该模型图元的图元法线;基于图元法线,确定第一场景模型中顶点的局部空间法线;其中,该顶点的局部空间法线,基于顶点相邻的至少一个模型图元的图元法线确定。
上述转换模块还用于:获取顶点变换矩阵;其中,该顶点变换矩阵用于:将世界空间中的法线转换至局部空间坐标系中;将局部空间法线与顶点变换矩阵的逆矩阵的乘积,确定为第一场景模型对应的世界空间法线。
上述装置还包括:确定模块,用于:将第一场景模型划分为多个模型块;基于正交相机对模型块进行透视插值,得到该模型块对应的世界空间法线;将多个模型块对应的世界空间法线,确定为第一场景模型对应的世界空间法线。
上述确定模块,还用于:设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;在像素着色器中,通过光栅化阶段的透视插值,获取相机视口内像素的世界空间法线,将该世界空间法线烘焙到预设的法线贴图中。
上述第二生成模块还用于:基于预设采样间隔,对场景高度图进行采样,得到第一采样数据;基于该第一采样数据生成目标场景的第二场景模型;其中,采样间隔越大,第二场景模型的模型面数越少。
上述渲染模块还用于:获取世界空间法线对应的法线贴图;其中,该法线贴图用于:将第一场景模型的高度方向上的法线信息投影至第二场景模型;对法线贴图进行采样处理,得到第二采样数据;基于该第二采样数据对第二场景模型进行物理渲染。
上述装置还包括:获取模块,用于:获取第一场景模型对应的阴影贴图;其中,该阴影贴图中包括第一场景模型的静态阴影信息;基于阴影贴图对第二场景模型进行物理渲染,得到目标场景的阴影渲染结果。
上述获取模块,还用于:将第一场景模型划分为多个模型块;设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;计算相机视口内像素的静态阴影,得到阴影计算结果;将阴影计算结果烘焙到预设的阴影贴图中,得到第一场景模型对应的阴影贴图。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述场景模型的渲染方法。该电子设备可以是服务器,也可以是终端设备。
参见图4所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述场景模型的渲染方法。
进一步地,图4所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述场景模型的渲染方法中的下述操作:
获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
该方式中,根据目标场景的场景高度图,分别生成高面数场景模型和低面数场景模型,将高面数场景模型的局部空间法线经转换得到对应的世界空间法线,进而基于该世界空间法线对低面数场景模型进行渲染,得到目标场景的渲染结果。该方式可以在场景模型面数较低的情况下,准确的表达复杂的场景形态,降低了整体性能开销,提高了复杂场景形态的表达准确率。
获取第一场景模型中模型图元的局部空间坐标;基于模型图元的局部空间坐标,确定该模型图元的图元法线;基于图元法线,确定第一场景模型中顶点的局部空间法线;其中,该顶点的局部空间法线,基于顶点相邻的至少一个模型图元的图元法线确定。
获取顶点变换矩阵;其中,该顶点变换矩阵用于:将世界空间中的法线转换至局部空间坐标系中;将局部空间法线与顶点变换矩阵的逆矩阵的乘积,确定为第一场景模型对应的世界空间法线。
将第一场景模型划分为多个模型块;基于正交相机对模型块进行透视插值,得到该模型块对应的世界空间法线;将多个模型块对应的世界空间法线,确定为第一场景模型对应的世界空间法线。
设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;在像素着色器中,通过光栅化阶段的透视插值,获取相机视口内像素的世界空间法线,将该世界空间法线烘焙到预设的法线贴图中。
采用该方式生成的世界空间法线,可以很好的表现第一场景模型的细节信息。
基于预设采样间隔,对场景高度图进行采样,得到第一采样数据;基于该第一采样数据生成目标场景的第二场景模型;其中,采样间隔越大,第二场景模型的模型面数越少。
该步骤中,基于预设采样间隔,对场景高度图进行采样,生成低面数的场景模型,降低了整体性能开销。
获取世界空间法线对应的法线贴图;其中,该法线贴图用于:将第一场景模型的高度方向上的法线信息投影至第二场景模型;对法线贴图进行采样处理,得到第二采样数据;基于该第二采样数据对第二场景模型进行物理渲染。
该步骤中,将高面数模型的世界空间法线沿垂直方向投影到低面数模型上,再经过物理渲染计算,对低面数模型进行物理渲染,使得低面数模型拥有高面数模型的细节,提高了低面数模型对复杂场景形态的表达准确率。
获取第一场景模型对应的阴影贴图;其中,该阴影贴图中包括第一场景模型的静态阴影信息;基于阴影贴图对第二场景模型进行物理渲染,得到目标场景的阴影渲染结果。
将第一场景模型划分为多个模型块;设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;计算相机视口内像素的静态阴影,得到阴影计算结果;将阴影计算结果烘焙到预设的阴影贴图中,得到第一场景模型对应的阴影贴图。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述场景模型的渲染方法。
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述场景模型的渲染方法中的下述操作:
获取待渲染目标场景的场景高度图,基于场景高度图生成目标场景的第一场景模型;其中,场景高度图中包括目标场景中场景位置的高度信息;第一场景模型中的模型面数高于预设面数阈值;获取第一场景模型的局部空间法线,将局部空间法线转换至世界空间,得到第一场景模型对应的世界空间法线;其中,局部空间法线基于预设的局部空间坐标系确定;该局部空间坐标系基于第一场景模型建立;世界空间为第一场景模型所在的虚拟空间;基于场景高度图生成目标场景的第二场景模型;其中,该第二场景模型中的模型面数低于预设面数阈值;基于世界空间法线,对第二场景模型进行物理渲染,得到目标场景的渲染结果。
该方式中,根据目标场景的场景高度图,分别生成高面数场景模型和低面数场景模型,将高面数场景模型的局部空间法线经转换得到对应的世界空间法线,进而基于该世界空间法线对低面数场景模型进行渲染,得到目标场景的渲染结果。该方式可以在场景模型面数较低的情况下,准确的表达复杂的场景形态,降低了整体性能开销,提高了复杂场景形态的表达准确率。
获取第一场景模型中模型图元的局部空间坐标;基于模型图元的局部空间坐标,确定该模型图元的图元法线;基于图元法线,确定第一场景模型中顶点的局部空间法线;其中,该顶点的局部空间法线,基于顶点相邻的至少一个模型图元的图元法线确定。
获取顶点变换矩阵;其中,该顶点变换矩阵用于:将世界空间中的法线转换至局部空间坐标系中;将局部空间法线与顶点变换矩阵的逆矩阵的乘积,确定为第一场景模型对应的世界空间法线。
将第一场景模型划分为多个模型块;基于正交相机对模型块进行透视插值,得到该模型块对应的世界空间法线;将多个模型块对应的世界空间法线,确定为第一场景模型对应的世界空间法线。
设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;在像素着色器中,通过光栅化阶段的透视插值,获取相机视口内像素的世界空间法线,将该世界空间法线烘焙到预设的法线贴图中。
采用该方式生成的世界空间法线,可以很好的表现第一场景模型的细节信息。
基于预设采样间隔,对场景高度图进行采样,得到第一采样数据;基于该第一采样数据生成目标场景的第二场景模型;其中,采样间隔越大,第二场景模型的模型面数越少。
该步骤中,基于预设采样间隔,对场景高度图进行采样,生成低面数的场景模型,降低了整体性能开销。
获取世界空间法线对应的法线贴图;其中,该法线贴图用于:将第一场景模型的高度方向上的法线信息投影至第二场景模型;对法线贴图进行采样处理,得到第二采样数据;基于该第二采样数据对第二场景模型进行物理渲染。
该步骤中,将高面数模型的世界空间法线沿垂直方向投影到低面数模型上,再经过物理渲染计算,对低面数模型进行物理渲染,使得低面数模型拥有高面数模型的细节,提高了低面数模型对复杂场景形态的表达准确率。
获取第一场景模型对应的阴影贴图;其中,该阴影贴图中包括第一场景模型的静态阴影信息;基于阴影贴图对第二场景模型进行物理渲染,得到目标场景的阴影渲染结果。
将第一场景模型划分为多个模型块;设置正交相机;其中,该正交相机的朝向与模型块垂直,正交相机与模型块中心位置的连线,与模型块垂直;正交相机的相机视口包含模型块;计算相机视口内像素的静态阴影,得到阴影计算结果;将阴影计算结果烘焙到预设的阴影贴图中,得到第一场景模型对应的阴影贴图。
本发明实施例所提供的场景模型的渲染方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种场景模型的渲染方法,其特征在于,所述方法包括:
获取待渲染目标场景的场景高度图,基于所述场景高度图生成所述目标场景的第一场景模型;其中,所述场景高度图中包括所述目标场景中场景位置的高度信息;所述第一场景模型中的模型面数高于预设面数阈值;
获取所述第一场景模型的局部空间法线,将所述局部空间法线转换至世界空间,得到所述第一场景模型对应的世界空间法线;其中,所述局部空间法线基于预设的局部空间坐标系确定;所述局部空间坐标系基于所述第一场景模型建立;所述世界空间为所述第一场景模型所在的虚拟空间;
基于所述场景高度图生成所述目标场景的第二场景模型;其中,所述第二场景模型中的模型面数低于预设面数阈值;
基于所述世界空间法线,对所述第二场景模型进行物理渲染,得到所述目标场景的渲染结果。
2.根据权利要求1所述的方法,其特征在于,获取所述第一场景模型的局部空间法线的步骤,包括:
获取所述第一场景模型中模型图元的局部空间坐标;
基于所述模型图元的局部空间坐标,确定所述模型图元的图元法线;
基于所述图元法线,确定所述第一场景模型中顶点的局部空间法线;其中,所述顶点的局部空间法线,基于所述顶点相邻的至少一个模型图元的图元法线确定。
3.根据权利要求1所述的方法,其特征在于,将所述局部空间法线转换至世界空间,得到所述第一场景模型对应的世界空间法线的步骤,包括:
获取顶点变换矩阵;其中,所述顶点变换矩阵用于:将所述世界空间中的法线转换至所述局部空间坐标系中;
将所述局部空间法线与所述顶点变换矩阵的逆矩阵的乘积,确定为所述第一场景模型对应的世界空间法线。
4.根据权利要求1所述的方法,其特征在于,将所述局部空间法线转换至世界空间,得到所述第一场景模型对应的世界空间法线的步骤之后,所述方法还包括:
将所述第一场景模型划分为多个模型块;
基于正交相机对所述模型块进行透视插值,得到所述模型块对应的世界空间法线;
将多个所述模型块对应的世界空间法线,确定为所述第一场景模型对应的世界空间法线。
5.根据权利要求4所述的方法,其特征在于,基于正交相机对所述模型块进行透视插值,得到所述模型块对应的世界空间法线的步骤之后,所述方法还包括:
设置正交相机;其中,所述正交相机的朝向与所述模型块垂直,所述正交相机与所述模型块中心位置的连线,与所述模型块垂直;所述正交相机的相机视口包含所述模型块;
在像素着色器中,通过光栅化阶段的透视插值,获取所述相机视口内像素的世界空间法线,将所述世界空间法线烘焙到预设的法线贴图中。
6.根据权利要求1所述的方法,其特征在于,基于所述场景高度图生成所述目标场景的第二场景模型的步骤,包括:
基于预设采样间隔,对所述场景高度图进行采样,得到第一采样数据;
基于所述第一采样数据生成所述目标场景的第二场景模型;其中,所述采样间隔越大,所述第二场景模型的模型面数越少。
7.根据权利要求1所述的方法,其特征在于,基于所述世界空间法线,对所述第二场景模型进行物理渲染的步骤,包括:
获取所述世界空间法线对应的法线贴图;其中,所述法线贴图用于:将所述第一场景模型的高度方向上的法线信息投影至所述第二场景模型;
对所述法线贴图进行采样处理,得到第二采样数据;基于所述第二采样数据对所述第二场景模型进行物理渲染。
8.根据权利要求1所述的方法,其特征在于,基于所述世界空间法线,对所述第二场景模型进行物理渲染的步骤之后,所述方法还包括:
获取所述第一场景模型对应的阴影贴图;其中,所述阴影贴图中包括所述第一场景模型的静态阴影信息;
基于所述阴影贴图对所述第二场景模型进行物理渲染,得到所述目标场景的阴影渲染结果。
9.根据权利要求8所述的方法,其特征在于,获取所述第一场景模型对应的阴影贴图的步骤,包括:
将所述第一场景模型划分为多个模型块;
设置正交相机;其中,所述正交相机的朝向与所述模型块垂直,所述正交相机与所述模型块中心位置的连线,与所述模型块垂直;所述正交相机的相机视口包含所述模型块;
计算所述相机视口内像素的静态阴影,得到阴影计算结果;
将所述阴影计算结果烘焙到预设的阴影贴图中,得到所述第一场景模型对应的阴影贴图。
10.一种场景模型的渲染装置,其特征在于,所述装置包括:
第一生成模块,用于获取待渲染目标场景的场景高度图,基于所述场景高度图生成所述目标场景的第一场景模型;其中,所述场景高度图中包括所述目标场景中场景位置的高度信息;所述第一场景模型中的模型面数高于预设面数阈值;
转换模块,用于获取所述第一场景模型的局部空间法线,将所述局部空间法线转换至世界空间,得到所述第一场景模型对应的世界空间法线;其中,所述局部空间法线基于预设的局部空间坐标系确定;所述局部空间坐标系基于所述第一场景模型建立;所述世界空间为所述第一场景模型所在的虚拟空间;
第二生成模块,用于基于所述场景高度图生成所述目标场景的第二场景模型;其中,所述第二场景模型中的模型面数低于预设面数阈值;
渲染模块,用于基于所述世界空间法线,对所述第二场景模型进行物理渲染,得到所述目标场景的渲染结果。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-9任一项所述的场景模型的渲染方法。
12.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-9任一项所述的场景模型的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111582.XA CN116474363A (zh) | 2023-01-16 | 2023-01-16 | 场景模型的渲染方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310111582.XA CN116474363A (zh) | 2023-01-16 | 2023-01-16 | 场景模型的渲染方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116474363A true CN116474363A (zh) | 2023-07-25 |
Family
ID=87223886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310111582.XA Pending CN116474363A (zh) | 2023-01-16 | 2023-01-16 | 场景模型的渲染方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116474363A (zh) |
-
2023
- 2023-01-16 CN CN202310111582.XA patent/CN116474363A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108648269B (zh) | 三维建筑物模型的单体化方法和系统 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US8207968B1 (en) | Method and apparatus for irradiance caching in computing indirect lighting in 3-D computer graphics | |
US20050041024A1 (en) | Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing | |
CN111968216A (zh) | 一种体积云阴影渲染方法、装置、电子设备及存储介质 | |
US20070195083A1 (en) | Image-based protruded displacement mapping method and bi-layered displacement mapping method using the same | |
CN113674389B (zh) | 场景渲染方法、装置、电子设备及存储介质 | |
CN108805971B (zh) | 一种环境光遮蔽方法 | |
CN112184873B (zh) | 分形图形创建方法、装置、电子设备和存储介质 | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
EP4213102A1 (en) | Rendering method and apparatus, and device | |
CN112734896B (zh) | 环境遮蔽渲染方法、装置、存储介质及电子设备 | |
US20150154805A1 (en) | Blending 3D Model Textures By Image Projection | |
CN111583398B (zh) | 图像显示的方法、装置、电子设备及计算机可读存储介质 | |
CN115512025A (zh) | 模型渲染性能的检测方法、装置、电子设备及存储介质 | |
CN112419460B (zh) | 烘焙模型贴图的方法、装置、计算机设备和存储介质 | |
CN116664752B (zh) | 基于图案化光照实现全景显示的方法、系统及存储介质 | |
CN113129420A (zh) | 一种基于深度缓冲加速的光线追踪渲染方法 | |
US20220392121A1 (en) | Method for Improved Handling of Texture Data For Texturing and Other Image Processing Tasks | |
CN116474363A (zh) | 场景模型的渲染方法、装置和电子设备 | |
CN115409962A (zh) | 虚幻引擎内构建坐标系统的方法、电子设备和存储介质 | |
CN116958457A (zh) | 一种基于OSGEarth的战争迷雾效果绘制方法 | |
CN110689606B (zh) | 一种虚拟场景中雨滴下落位置的计算方法及终端 | |
CN112927352A (zh) | 基于压平多边形的三维场景局部区域动态压平方法及装置 | |
WO2023184139A1 (en) | Methods and systems for rendering three-dimensional scenes |
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 |