CN117911633A - 一种基于虚幻引擎的神经辐射场渲染方法及框架 - Google Patents
一种基于虚幻引擎的神经辐射场渲染方法及框架 Download PDFInfo
- Publication number
- CN117911633A CN117911633A CN202410313130.4A CN202410313130A CN117911633A CN 117911633 A CN117911633 A CN 117911633A CN 202410313130 A CN202410313130 A CN 202410313130A CN 117911633 A CN117911633 A CN 117911633A
- Authority
- CN
- China
- Prior art keywords
- rendering
- radiation field
- neural
- engine
- camera
- 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.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 149
- 230000005855 radiation Effects 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 50
- 210000005036 nerve Anatomy 0.000 title abstract description 24
- 239000000463 material Substances 0.000 claims abstract description 36
- 238000012549 training Methods 0.000 claims abstract description 15
- 230000001537 neural effect Effects 0.000 claims description 65
- 238000005070 sampling Methods 0.000 claims description 20
- 230000015572 biosynthetic process Effects 0.000 claims description 16
- 238000003786 synthesis reaction Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 11
- 239000003795 chemical substances by application Substances 0.000 claims description 6
- 238000005266 casting Methods 0.000 claims description 5
- 238000009499 grossing Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 10
- 239000011159 matrix material Substances 0.000 description 19
- 230000008569 process Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- 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)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种基于虚幻引擎的神经辐射场渲染方法及框架,首先对拍摄的待重建场景视频进行关键帧抽取得到图像序列,然后根据图像序列对三维场景结构和相机参数进行预估得到预估结果,再根据预估结果和图像序列对神经辐射场渲染框架进行训练,导出渲染素材,最后将虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果,在虚幻引擎中呈现实时的、高质量的重建图像。通过对神经辐射场渲染框架的训练、渲染素材的自动导出以及虚幻引擎进行自动渲染能够快速获得高精度3D模型,简化3D模型的生产的过程,提高了制作效率。
Description
技术领域
本申请涉及三维场景渲染技术领域,具体而言,涉及一种基于虚幻引擎的神经辐射场渲染方法及框架。
背景技术
虚幻引擎是一款全球最大的开源3D渲染引擎,其能够提供一套完整的开发工具,适用于任何需要实时技术的用户。从设计可视化和电影式体验,到制作高品质游戏,覆盖了PC、主机、移动设备、VR和AR平台等多个领域,其还能提供项目启动和交付所需的一切工具。
神经辐射场在基于真实世界拍摄的2D图像和深度信息中学习,利用神经网络隐式表征3D场景的几何和光照信息,其能够以非常逼真的方式重建真实世界的场景,并适用于视觉效果、虚拟旅游、三维地图生成等应用。
在现有技术中,从零开始设计和实现高精度的3D模型是一个复杂且耗时的过程。典型的模型制作流程包括模型的初步草图和概念设计、多边形建模来构建模型结构、添加模型的纹理、边缘、孔洞等细节、进行UV映射以及创建模型的材质。制作者通常需要使用专业的软件,如Maya、Blender等,并需要具备相关的知识和不断迭代、优化3D模型。因此会导致3D模型生成的过程变长,进而使得制作效率降低。
发明内容
本申请的目的在于,为了克服现有的技术缺陷,提供了一种基于虚幻引擎的神经辐射场渲染方法及框架,通过对神经辐射场的训练、渲染素材的自动导出以及虚幻引擎进行自动渲染能够快速获得高精度3D模型,简化3D模型的生产的过程,提高了制作效率。
本申请目的通过下述技术方案来实现:
第一方面,本申请提出了一种基于虚幻引擎的神经辐射场渲染方法,所述方法应用于神经辐射场渲染框架,所述方法包括:
对拍摄的待重建场景视频进行关键帧抽取得到图像序列;
根据所述图像序列对三维场景结构和相机参数进行预估得到预估结果;
根据预估结果和图像序列对所述神经辐射场渲染框架进行训练,导出渲染素材,所述渲染素材包括虚幻引擎蓝图资产;
将所述虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果。
在一种可能的实施方式中,对拍摄的待重建场景视频进行关键帧抽取得到图像序列的步骤,包括:
调取ffmpeg程序对拍摄的待重建场景视频进行关键帧抽取,若待重建场景视频的分辨率大于预设阈值,则按照宽高比缩放至神经辐射场渲染框架上限。
在一种可能的实施方式中,所述渲染素材还包括神经辐射场位置编码的2D切片,所述神经辐射场位置编码的2D切片是按照预设宽度、预设高度以及预设深度对设定的剪裁空间进行均匀采样,对采样点进行哈希网格编码所得到。
在一种可能的实施方式中,所述渲染素材还包括占用网格的2D切片,所述占用网格的2D切片是通过对占用网格进行2D切片操作,并进行哈希网格编码得到位置信息,通过密度预测计算位置信息中各个采样点的预测值所得到。
在一种可能的实施方式中,所述渲染素材还包括场景着色器代码,所述场景着色器代码用于对神经辐射场进行渲染,实现光线投射、样本点占用率查询,样本点位置编码采样、光线方向编码、样本点颜色预测、像素颜色合成的功能。
在一种可能的实施方式中,所述渲染素材还包括网格体代理,所述网格体代理是通过marching cube算法生成粗糙网格体,对粗糙网格体的顶点进行平滑,使用基于空间划分的remesh方法重构网格体所得到。
在一种可能的实施方式中,将所述虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果的步骤,包括:
将所述虚幻引擎蓝图资产送入虚幻引擎,通过虚幻引擎渲染管线自动进行光线投射参数初始化、光线投射合成以及阴影生成得到渲染结果;
其中光线投射参数初始化是通过场景着色器代码和相机参数计算相机前向向量和相机在局部坐标系的位置,并将相机在局部坐标系的位置转换至UVW坐标系;
光线投射合成是根据最大步数、包围盒厚度以及入点进行光线投射;
阴影生成是由虚幻引擎的光栅化渲染管线完成。
第二方面,本申请还提出了一种神经辐射场渲染框架,用于实现第一方面任一项所述的神经辐射场渲染方法,所述框架包括:
关键帧提取模块,用于对拍摄的待重建场景视频进行关键帧抽取得到图像序列;
预估模块,用于根据所述图像序列对三维场景结构和相机参数进行预估得到预估结果;
训练模块,用于根据预估结果和图像序列对所述神经辐射场渲染框架进行训练,导出渲染素材,所述渲染素材包括虚幻引擎蓝图资产;
渲染模块,用于将所述虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果。
在一种可能的实施方式中,所述关键帧提取模块,用于:
调取ffmpeg程序对拍摄的待重建场景视频进行关键帧抽取,若待重建场景视频的分辨率大于预设阈值,则按照宽高比缩放至神经辐射场渲染框架上限。
在一种可能的实施方式中,所述渲染模块,用于:
将所述虚幻引擎蓝图资产送入虚幻引擎,通过虚幻引擎渲染管线自动进行光线投射参数初始化、光线投射合成以及阴影生成得到渲染结果;
其中光线投射参数初始化是通过场景着色器代码和相机参数计算相机前向向量和相机在局部坐标系的位置,并将相机在局部坐标系的位置转换至UVW坐标系;
光线投射合成是根据最大步数、包围盒厚度以及入点进行光线投射;
阴影生成是由虚幻引擎的光栅化渲染管线完成。
上述本申请主方案及其各进一步选择方案可以自由组合以形成多个方案,均为本申请可采用并要求保护的方案;且本申请,(各非冲突选择)选择之间以及和其他选择之间也可以自由组合。本领域技术人员在了解本申请方案后根据现有技术和公知常识可明了有多种组合,均为本申请所要保护的技术方案,在此不做穷举。
本申请公开了一种基于虚幻引擎的神经辐射场渲染方法,首先对拍摄的待重建场景视频进行关键帧抽取得到图像序列,然后根据图像序列对三维场景结构和相机参数进行预估得到预估结果,再根据预估结果和图像序列对所述神经辐射场渲染框架进行训练,导出渲染素材,最后将虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果,在虚幻引擎中呈现实时的、高质量的重建图像。通过对神经辐射场渲染框架的训练、渲染素材的自动导出以及虚幻引擎进行自动渲染能够快速获得高精度3D模型,简化3D模型的生产的过程,提高了制作效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例示出的一种基于虚幻引擎的神经辐射场渲染方法的流程示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
instant-ngp是nvidia提出的使用哈希网格编码实现快速训练和预测的神经辐射场方法,其包含两个MLP,分别是密度预测和颜色预测/>,/>接受哈希网格编码后的位置信息作为输入,输出1维的密度信息/>和15维的几何特征/>,/>通过拼接编码后的方向信息和几何特征/>作为输入来预测当前样本点位置处的颜色,最终通过混合同一条射线上所有采样点处的颜色和密度,得到对应像素的颜色和不透明度。本申请实施例使用上述的instant-ngp方法作为神经辐射场的具体实现。
在现有技术中,典型的模型制作流程包括模型的初步草图和概念设计、多边形建模来构建模型结构、添加模型的纹理、边缘、孔洞等细节、进行UV映射以及创建模型的材质。制作者通常需要使用专业的软件,如Maya、Blender等,并需要具备相关的知识和不断迭代、优化3D模型。因此会导致3D模型生成的过程变长,进而使得制作效率降低。
为了解决上述的问题,本申请提出了一种基于虚幻引擎的神经辐射场渲染方法,其涉及到三维场景重建渲染领域,通过对神经辐射场渲染框架的训练、渲染素材的自动导出以及虚幻引擎进行自动渲染能够快速获得高精度3D模型,简化3D模型的生产的过程,提高了制作效率,接下来对其进行详细地说明。
请参照图1,图1示出了本申请实施例示出的一种基于虚幻引擎的神经辐射场渲染方法的流程示意图,该方法应用于神经辐射场渲染框架,能够将任意神经辐射场重建的场景以蓝图资产的形式导出到虚幻引擎中,依托虚幻引擎的现代化渲染管线实现高质量、实时的神经辐射场渲染,该方法包括以下各个步骤:
步骤S100、对拍摄的待重建场景视频进行关键帧抽取得到图像序列。
先进行数据采集,使用摄影摄像设备拍摄需要重建的场景,然后将被拍摄物体置于取景框中心,分别沿着上、中、下三段轨迹围绕被拍摄物体进行拍摄得到三段视频素材。值得注意的是,在拍摄时应尽量避免相机大幅度的晃动导致成像模糊。
在一种可能的实施方式中,对拍摄的待重建场景视频进行关键帧抽取得到图像序列的步骤,包括:
调取ffmpeg程序对拍摄的待重建场景视频进行关键帧抽取,若待重建场景视频的分辨率大于预设阈值,则按照宽高比缩放至神经辐射场渲染框架上限。
在数据采集完成之后,需要对其进行预处理和训练,神经辐射场渲染框架自动调用ffmpeg程序对拍摄的待重建场景视频关键帧抽取,若待重建场景视频的分辨率大于预设阈值,则按照宽高比缩放至神经辐射场渲染框架上限,例如1080p。
步骤S200、根据图像序列对三维场景结构和相机参数进行预估得到预估结果;
在利用关键帧抽取得到图像序列之后,神经辐射场渲染框架自动调用colmap程序对三维场景结构和相机参数进行预估得到预估结果,此时神经辐射场训练所需数据集制作完毕,框架将调用神经辐射场模型进行训练。
步骤S300、根据预估结果和图像序列对神经辐射场渲染框架进行训练,导出渲染素材,渲染素材包括虚幻引擎蓝图资产。
神经辐射场渲染框架进行神经辐射场渲染,采取了派生渲染引擎中AActor父类(ANerfRaymarchActor类),其包括子组件RayCastComponent和ProxyMeshComponent,其中子组件RayCastComponent派生自UStaticMeshComponent类,使用单位立方体网格体作为几何,使得该框架通过使用自定义的材质将神经辐射场重建的场景渲染到虚幻引擎中。子组件ProxyMeshComponent派生自UStaticMeshComponent类,使用代理网格体作为几何,使用隐藏阴影,在渲染时不可见,仅用作阴影生成。
渲染素材还包括神经辐射场位置编码的2D切片,神经辐射场位置编码的2D切片是按照预设宽度、预设高度以及预设深度对设定的剪裁空间进行均匀采样,对采样点进行哈希网格编码所得到。
首先构造一个3D空间,3D空间/>中心坐标设置为/>,然后采用神经辐射场渲染框架对3D空间/>中的任意一点进行位置编码,若该点记为/>,则对其进行位置编码得到/>,其中/>,/>表示通道个数,然后使用多层感知机(MLP)预测该点的密度。接下来按照预设宽度/>、预设高度/>以及预设深度/>对设定的剪裁空间进行均匀采样,对采样点进行哈希网格编码得到一组包含/>张宽/>,高/>的包含/>个通道的神经辐射场位置编码的2D切片。
其中分别表示裁剪空间/>在/>轴、/>轴、/>轴的最小、最大值。采样是沿着Z轴正方向从/>处开始,至/>处结束,一共进行/>次切片操作,每次切片需采样/>个样本点/>,/>表示切片的个数,对样本点/>进行位置编码:,其中,即可得到宽/>,高/>,有/>个通道的2D切片,将其归一化[0,1]并保存到本地,记作/>。
渲染素材还包括占用网格的2D切片,占用网格的2D切片是通过对占用网格进行2D切片操作,并进行哈希网格编码得到位置信息,通过密度预测计算位置信息中各个采样点的预测值所得到。
在进行2D切片操作时,每次切片时的样本点集合为,使用神经辐射场对其密度进行预测得到宽/>、高/>、有1个通道的图像的密度值/>,同时归一化到[0,1]并保存到本地。
在渲染过程中,神经辐射场渲染框架使用预计算的密度信息对光线投射算法中产生的样本点进行密度快速查询,在查询时为了对渲染加速会跳过密度小于一定值的样本点。
渲染素材还包括场景着色器代码,场景着色器代码用于对神经辐射场进行渲染,实现光线投射、样本点占用率查询,样本点位置编码采样、光线方向编码、样本点颜色预测、像素颜色合成的功能。
场景着色器代码实现对神经辐射场进行渲染,并返回一个half4类型的向量,表示该像素的颜色和不透明度。
此外,神经辐射场渲染框架通过将神经辐射场中的MLP模型权重拆分为的小矩阵,对其进行矩阵分块相乘来实现MLP的前向预测过程。
渲染素材还包括网格体代理,网格体代理是通过marching cube算法生成粗糙网格体,对粗糙网格体的顶点进行平滑,使用基于空间划分的remesh方法重构网格体所得到。
由于神经辐射场存在无法实时产生阴影的缺点,为了解决上述缺点,本申请的神经辐射场渲染框架使用网格体代理在虚幻引擎中经过传统光栅渲染管线产生阴影,网格体代理的生成流程为:首先通过marching cube算法生成粗糙的网格体,但是由于粗糙的网格体中包含的三角面片数量高达10万个以上,其并不能够直接使用,如果直接使用会严重拖慢渲染速度,且表面通常凹凸不平,使得产生的阴影不够平滑。为了减少表面凹凸不平的现象必须平滑粗糙网格体的所有顶点,接着使用基于空间划分的remesh方法,重构网格体,特别的,通过设定八叉树深度为8,最大限度保留原始网格体的形状。
在神经辐射场渲染框架中生成自定义的材质“M_NerfRayMarch”,选择材质域为“表面(Surface)”,设置材质混合模式为“不透明(Opaque)”,设定节点为“自定义(Custom)”。在自定义节点中使用场景着色器代码作为渲染函数进行渲染,输出颜色到基础颜色(Basic Color)、不透明度到“不透明度(Opacity)”和“不透明蒙板(Opacity Mask)”。材质输入参数为位置编码体积(PosEncVolume)、占用网格体积(OccupancyVolume)、入点位置(Entry Pos)、厚度(Thickness)和最大步数(Steps)。其中,位置编码体积使用神经辐射场位置编码的2D切片所生成,占用网格体积使用占用网格的2D切片所生成,其中的瓦片大小均设置为其切片时的宽高大小,压缩格式分别为“HDR(RGBA16F,无sRGB)”和“单浮点(R32F)”,Mip生成设置均为“无mip贴图”。
将位置编码体积和占用网格体积绑定到材质入参,并将RayCastComponent的材质设置为M_NerfRayMarch材质,调用虚幻引擎的“CreateBlueprintFromActor”函数,创建蓝图资产并保存。
步骤S400、将虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果。
将蓝图资产拖入虚幻引擎的关卡编辑器中,蓝图将自动进行渲染,用户能够直观地任意改变实例化后的神经辐射场的位置、朝向及大小。
在一种可能的实施方式中,将虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果的步骤,包括:
将虚幻引擎蓝图资产送入虚幻引擎,通过虚幻引擎渲染管线自动进行光线投射参数初始化、光线投射合成以及阴影生成得到渲染结果;
其中光线投射参数初始化是通过场景着色器代码和相机参数计算相机前向向量和相机在局部坐标系的位置,并将相机在局部坐标系的位置转换至UVW坐标系;
光线投射合成是根据最大步数、包围盒厚度以及入点进行光线投射;
阴影生成是由虚幻引擎的光栅化渲染管线完成。
光线投射参数初始化能够通过射线与代理网格(单位立方体网格体)求交,并计算射线从进入到离开代理网格的时间,得到当前像素包围盒的厚度以及在UVW坐标系下的入点位置。
光线投射合成根据最大步数(Steps)、包围盒厚度(Thickness)以及入点(EntryPos)进行光线投射过程。在光线投射合成过程中,初始化累加颜色向量类型为float4,赋值为0();初始化当前位置/>、步长/>、射线方向其中/>表示最大步数(Steps)。/>表示归一化,/>表示矩阵乘法,/>表示世界坐标系下的相机前向向量,/>表示世界坐标系转换到局部坐标系的矩阵。
接下来进入光线投射循环,光线投射循环的伪代码为:
[loop] for (int i=0; i<S; i++) {;
CurPos += D;// 朝方向D前进步长S,得到当前样本点位置;
if (IsOccupied(CurPos, D)) {// 查寻占用网格,该点是否被占用;
float4 ColorSample=QueryColorDensityAt(CurPos, D); // 采样并前向得到样本点的颜色和密度;
// 以下为累加计算该像素的最终颜色和不透明度;
float T=1.0f-Out.a;
float alpha=1.0f-exp(-ColorSample.a*N);
float wight=alpha*T;
Out.rgb+=ColorSample.rgb*weight;
Out.a+=weight;
};
在上述的伪代码中,QueryColorDensityAt函数表示根据当前样本点位置(CurPos)和射线方向(D)预测得到该位置处的颜色和密度,QueryColorDensityAt函数的伪代码为:
float4 QueryColorDensityAt(float3 Pos,float3 Dir){;
//从位置编码体积中采样当前位置的编码,C表示编码后的通道个数;
half4 PosEnc[C/4]=SamplePositionEncodedVolume(Pos,PosEncVolume);
half Density=QueryDensity(PosEnc);//通过MLP预测当前位置的密度;
half3 Color=QueryColor(DirEncode(Dir),Density);//进行方向编码,通过MLP预测当前位置颜色;
return half4(Color.rgb,Density);
};
在上述的神经辐射场的具体实现中,SamplePositionEncodedVolume函数、QueryDensity函数以及QueryColor函数会有所不同,但是神经辐射场渲染框架会约定SamplePositionEncodedVolume函数需要根据当前样本点在UVW坐标下的位置,对位置编码体积进行采样并获取其编码后的结果,调用QueryDensity函数来得到该位置的密度。QueryColor函数通过使用编码后的方向和预测的密度来得到该位置的颜色。QueryDensity和QueryColor函数使用MLP来进行前向预测。
值得说明的是,框架通过将MLP展开为一系列half4x4类型的小矩阵块,通过矩阵乘法和加法来实现MLP的前向计算过程,该过程的伪代码为:
half4 Outputs[4];//输出通道数为16;
half4 Inputs[8];//输入通道数为32;
half4 layer1_out[16];//隐层通道数为64;
uint2 layer1_dim=uint2(16,8);//MLP第一层的4x4矩阵块行列个数;
half4x4 layer1_w[16][8];//MLP第一层的权重矩阵;
uint2 layer2_dim=uint2(4,16);//MLP第二层的4x4矩阵块行列个数;
half4x4 layer2_w[4][16];//MLP第二层的权重矩阵;
[unroll] for(uint brow=0;brow<layer1_dim.x;++brow){;
half4 tmp=half4(0.0,0.0,0.0,0.0);//记录中间结果;
for (uint bcol = 0; bcol<layer1_dim.y; ++bcol) {;
tmp += mul(layer1_w[brow][bcol], Inputs [bcol]);
};
layer1_out[brow] = max(tmp, 0);// Relu激活;
};
[unroll] for (uint brow = 0; brow<layer2_dim.x; ++brow) {;
half4 tmp = half4(0.0, 0.0, 0.0, 0.0); // 记录中间结果;
for (uint bcol = 0; bcol<layer2_dim.y; ++bcol) {;
tmp += mul(layer2_w[brow][bcol], layer1_out[bcol]);
};
Outputs[brow] = tmp;
};
其为一个2层的MLP前向预测伪代码实现,该MLP输入通道个数为32,第一层输出通道数为64,第二层输出通道数为16。其中,layer1_w、layer2_w分别表示第一层和第二层的权重系数,需要按照4x4的矩阵块进行划分,layer1_dim、layer2_dim表示按照该划分方案下,每一行每一列有多少个4x4的矩阵块。框架使用临时变量tmp来记录并累加得到最后的前向结果。
在阴影生成中,代理网格体使用隐藏式阴影,并在编辑器窗口可见,但在关卡运行时不可见。
虚幻引擎提供对神经辐射场重建场景位移、旋转和缩放等编辑功能,同时还能够预览重建的场景。用户只需将待重建场景的视频输入到框架中,就可以快速获得高精度3D模型,简化了传统3D模型的生产的过程,提高了制作效率。
在一种可能的实施例中,设置instant-ngp的位置编码由哈希网格编码算法进行,一共有16个层级,每一个层级特征维度为2,对于任意点,有,编码后的位置信息有32个通道。
首先对神经辐射场位置编码进行2D切片操作,设定宽、高/>、深度/>,在单位立方体中均匀采样,对采样点进行哈希网格编码,编码后的数据维度为,并划分为8张4通道的半精度浮点类型的exr格式图像进行存储,每张图像的数据维度为/>。
接下来对占用网格进行2D切片操作,将哈希网格编码后的位置信息通过,预计算各个采样点的密度值,其数据维度为/>,本实施例将其保存为1张单通道的单精度浮点类型的exr格式图像进行存储,图像的数据维度为/>。
然后将训练后的instant-ngp模型参数进行矩阵分块并更新权重数据到着色器代码中,包含2层权重,第一层输入通道为32,输出通道为64,故第一层权重划分为16行8列的half4x4矩阵块,存储到二维数组:中。第二层输入通道64,输出通道16,故第二层权重划分为4行16列的half4x4矩阵块,存储到二维数组:中。
包含3层权重,第一层输入通道32,输出通道64,对应权重划分为16行8列的half4x4矩阵块,第二层输入通道64,输出通道64,对应权重划分为16行16列的half4x4矩阵块,第三层输入通道64,输出通道16,对应权重划分为4行16列的half4x4矩阵块,分别存储到三个二维数组中,其中三个二维数组分别为:
最后框架将自动生成代理网格体,并使用以上导出的素材生成虚幻引擎蓝图资产,将蓝图资产从虚幻引擎内容浏览器中拖入所在关卡的“世界”中,对该神经辐射场进行位移、旋转、缩放并在编辑器窗口进行预览。
下面给出一种神经辐射场渲染框架可能的实现方式,其用于执行实现上述实施例及可能的实现方式中示出的神经辐射场渲染方法各个执行步骤和相应的技术效果,该框架包括:
关键帧提取模块,用于对拍摄的待重建场景视频进行关键帧抽取得到图像序列;
预估模块,用于根据图像序列对三维场景结构和相机参数进行预估得到预估结果;
训练模块,用于根据预估结果和图像序列对神经辐射场渲染框架进行训练,导出渲染素材,渲染素材包括虚幻引擎蓝图资产;
渲染模块,用于将虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果。
在一种可能的实施方式中,关键帧提取模块,用于:
调取ffmpeg程序对拍摄的待重建场景视频进行关键帧抽取,若待重建场景视频的分辨率大于预设阈值,则按照宽高比缩放至神经辐射场渲染框架上限。
在一种可能的实施方式中,渲染模块,用于:
将虚幻引擎蓝图资产送入虚幻引擎,通过虚幻引擎渲染管线自动进行光线投射参数初始化、光线投射合成以及阴影生成得到渲染结果;
其中光线投射参数初始化是通过场景着色器代码和相机参数计算相机前向向量和相机在局部坐标系的位置,并将相机在局部坐标系的位置转换至UVW坐标系;
光线投射合成是根据最大步数、包围盒厚度以及入点进行光线投射;
阴影生成是由虚幻引擎的光栅化渲染管线完成。
本优选实施例提供了一种计算机设备,该计算机设备可以实现本申请实施例所提供的神经辐射场渲染方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的神经辐射场渲染方法的有益效果,详见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的神经辐射场渲染方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一神经辐射场渲染方法实施例中的步骤,因此,可以实现本申请实施例所提供的任一神经辐射场渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于虚幻引擎的神经辐射场渲染方法,其特征在于,所述方法应用于神经辐射场渲染框架,所述方法包括:
对拍摄的待重建场景视频进行关键帧抽取得到图像序列;
根据所述图像序列对三维场景结构和相机参数进行预估得到预估结果;
根据预估结果和图像序列对所述神经辐射场渲染框架进行训练,导出渲染素材,所述渲染素材包括虚幻引擎蓝图资产;
将所述虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果。
2.如权利要求1所述的神经辐射场渲染方法,其特征在于,对拍摄的待重建场景视频进行关键帧抽取得到图像序列的步骤,包括:
调取ffmpeg程序对拍摄的待重建场景视频进行关键帧抽取,若待重建场景视频的分辨率大于预设阈值,则按照宽高比缩放至神经辐射场渲染框架上限。
3.如权利要求1所述的神经辐射场渲染方法,其特征在于,所述渲染素材还包括神经辐射场位置编码的2D切片,所述神经辐射场位置编码的2D切片是按照预设宽度、预设高度以及预设深度对设定的剪裁空间进行均匀采样,对采样点进行哈希网格编码所得到。
4.如权利要求1所述的神经辐射场渲染方法,其特征在于,所述渲染素材还包括占用网格的2D切片,所述占用网格的2D切片是通过对占用网格进行2D切片操作,并进行哈希网格编码得到位置信息,通过密度预测计算位置信息中各个采样点的预测值所得到。
5.如权利要求1所述的神经辐射场渲染方法,其特征在于,所述渲染素材还包括场景着色器代码,所述场景着色器代码用于对神经辐射场进行渲染,实现光线投射、样本点占用率查询,样本点位置编码采样、光线方向编码、样本点颜色预测、像素颜色合成的功能。
6. 如权利要求1所述的神经辐射场渲染方法,其特征在于,所述渲染素材还包括网格体代理,所述网格体代理是通过marching cube算法生成粗糙网格体,对粗糙网格体的顶点进行平滑,使用基于空间划分的remesh方法重构网格体所得到。
7.如权利要求1所述的神经辐射场渲染方法,其特征在于,将所述虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果的步骤,包括:
将所述虚幻引擎蓝图资产送入虚幻引擎,通过虚幻引擎渲染管线自动进行光线投射参数初始化、光线投射合成以及阴影生成得到渲染结果;
其中光线投射参数初始化是通过场景着色器代码和相机参数计算相机前向向量和相机在局部坐标系的位置,并将相机在局部坐标系的位置转换至UVW坐标系;
光线投射合成是根据最大步数、包围盒厚度以及入点进行光线投射;
阴影生成是由虚幻引擎的光栅化渲染管线完成。
8.一种神经辐射场渲染框架,其特征在于,用于实现权利要求1-7任一项所述的神经辐射场渲染方法,所述框架包括:
关键帧提取模块,用于对拍摄的待重建场景视频进行关键帧抽取得到图像序列;
预估模块,用于根据所述图像序列对三维场景结构和相机参数进行预估得到预估结果;
训练模块,用于根据预估结果和图像序列对所述神经辐射场渲染框架进行训练,导出渲染素材,所述渲染素材包括虚幻引擎蓝图资产;
渲染模块,用于将所述虚幻引擎蓝图资产送入虚幻引擎进行自动渲染得到渲染结果。
9.如权利要求8所述的神经辐射场渲染框架,其特征在于,所述关键帧提取模块,用于:
调取ffmpeg程序对拍摄的待重建场景视频进行关键帧抽取,若待重建场景视频的分辨率大于预设阈值,则按照宽高比缩放至神经辐射场渲染框架上限。
10.如权利要求8所述的神经辐射场渲染框架,其特征在于,所述渲染模块,用于:
将所述虚幻引擎蓝图资产送入虚幻引擎,通过虚幻引擎渲染管线自动进行光线投射参数初始化、光线投射合成以及阴影生成得到渲染结果;
其中光线投射参数初始化是通过场景着色器代码和相机参数计算相机前向向量和相机在局部坐标系的位置,并将相机在局部坐标系的位置转换至UVW坐标系;
光线投射合成是根据最大步数、包围盒厚度以及入点进行光线投射;
阴影生成是由虚幻引擎的光栅化渲染管线完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410313130.4A CN117911633B (zh) | 2024-03-19 | 2024-03-19 | 一种基于虚幻引擎的神经辐射场渲染方法及框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410313130.4A CN117911633B (zh) | 2024-03-19 | 2024-03-19 | 一种基于虚幻引擎的神经辐射场渲染方法及框架 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117911633A true CN117911633A (zh) | 2024-04-19 |
CN117911633B CN117911633B (zh) | 2024-05-31 |
Family
ID=90686239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410313130.4A Active CN117911633B (zh) | 2024-03-19 | 2024-03-19 | 一种基于虚幻引擎的神经辐射场渲染方法及框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117911633B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115457188A (zh) * | 2022-09-19 | 2022-12-09 | 遥在(山东)数字科技有限公司 | 一种基于注视点的3d渲染显示方法及*** |
CN116071471A (zh) * | 2022-12-31 | 2023-05-05 | 杭州趣看科技有限公司 | 一种基于虚幻引擎的多机位渲染方法与装置 |
WO2023080921A1 (en) * | 2021-11-03 | 2023-05-11 | Google Llc | Neural radiance field generative modeling of object classes from single two-dimensional views |
WO2023129190A1 (en) * | 2021-12-30 | 2023-07-06 | Google Llc | Generative modeling of three dimensional scenes and applications to inverse problems |
CN116958367A (zh) * | 2023-06-26 | 2023-10-27 | 浙江大学 | 一种快速组合并渲染复杂神经场景的方法 |
CN117372602A (zh) * | 2023-12-05 | 2024-01-09 | 成都索贝数码科技股份有限公司 | 一种异构三维多对象融合渲染方法、设备及*** |
-
2024
- 2024-03-19 CN CN202410313130.4A patent/CN117911633B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023080921A1 (en) * | 2021-11-03 | 2023-05-11 | Google Llc | Neural radiance field generative modeling of object classes from single two-dimensional views |
WO2023129190A1 (en) * | 2021-12-30 | 2023-07-06 | Google Llc | Generative modeling of three dimensional scenes and applications to inverse problems |
CN115457188A (zh) * | 2022-09-19 | 2022-12-09 | 遥在(山东)数字科技有限公司 | 一种基于注视点的3d渲染显示方法及*** |
CN116071471A (zh) * | 2022-12-31 | 2023-05-05 | 杭州趣看科技有限公司 | 一种基于虚幻引擎的多机位渲染方法与装置 |
CN116958367A (zh) * | 2023-06-26 | 2023-10-27 | 浙江大学 | 一种快速组合并渲染复杂神经场景的方法 |
CN117372602A (zh) * | 2023-12-05 | 2024-01-09 | 成都索贝数码科技股份有限公司 | 一种异构三维多对象融合渲染方法、设备及*** |
Non-Patent Citations (2)
Title |
---|
GU, J等: "UE4-NeRF:Neural Radiance Field for Real-Time Rendering of Large-Scale Scene", 《ARXIV》, 15 February 2024 (2024-02-15), pages 1 - 13 * |
赵宇: "人工智能生成内容(AIGC)在虚拟现实交互影像中的应用与探索", 《现代电影技术 》, 11 August 2023 (2023-08-11), pages 59 - 64 * |
Also Published As
Publication number | Publication date |
---|---|
CN117911633B (zh) | 2024-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Plenoctrees for real-time rendering of neural radiance fields | |
CN109255831B (zh) | 基于多任务学习的单视图人脸三维重建及纹理生成的方法 | |
CN113706714A (zh) | 基于深度图像和神经辐射场的新视角合成方法 | |
Wei et al. | State of the art in example-based texture synthesis | |
Oh et al. | Image-based modeling and photo editing | |
Alatan et al. | Scene representation technologies for 3DTV—A survey | |
Matusik et al. | Image-based visual hulls | |
US7450758B2 (en) | Stylization of video | |
US7436404B2 (en) | Method and apparatus for rendering of translucent objects using volumetric grids | |
Cook et al. | Stochastic simplification of aggregate detail | |
JP2008513882A (ja) | ビデオイメージ処理システム及びビデオイメージ処理方法 | |
CN110517352B (zh) | 一种物体的三维重建方法、存储介质、终端及*** | |
EP3767592A1 (en) | Techniques for feature-based neural rendering | |
Liu et al. | Real-time neural rasterization for large scenes | |
Breslav et al. | Dynamic 2D patterns for shading 3D scenes | |
Corker-Marin et al. | 4d cubism: Modeling, animation, and fabrication of artistic shapes | |
Liu et al. | Neural impostor: Editing neural radiance fields with explicit shape manipulation | |
CN118076977A (zh) | 使用分层神经表示的可编辑自由视点视频 | |
CA3169797A1 (en) | Visualisation of surface features of a virtual fluid | |
CN117911633B (zh) | 一种基于虚幻引擎的神经辐射场渲染方法及框架 | |
CN118052828A (zh) | 利用二维图像的分割三维对象网格修改二维图像 | |
Froumentin et al. | A Vector‐based Representation for Image Warping | |
Papaioannou et al. | Enhancing Virtual Reality Walkthroughs of Archaeological Sites. | |
Olajos | Real-time rendering of volumetric clouds | |
Pavie et al. | Volumetric spot noise for procedural 3D shell texture synthesis |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |