CN117611727A - 渲染处理方法、装置、设备以及介质 - Google Patents

渲染处理方法、装置、设备以及介质 Download PDF

Info

Publication number
CN117611727A
CN117611727A CN202410095187.1A CN202410095187A CN117611727A CN 117611727 A CN117611727 A CN 117611727A CN 202410095187 A CN202410095187 A CN 202410095187A CN 117611727 A CN117611727 A CN 117611727A
Authority
CN
China
Prior art keywords
voxel
vertex
resolution
resolution layer
sampling
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
Application number
CN202410095187.1A
Other languages
English (en)
Other versions
CN117611727B (zh
Inventor
阴小杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202410095187.1A priority Critical patent/CN117611727B/zh
Publication of CN117611727A publication Critical patent/CN117611727A/zh
Application granted granted Critical
Publication of CN117611727B publication Critical patent/CN117611727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

本申请实施例提供了一种渲染处理方法、装置、设备以及介质,该方法可应用在实时渲染中,用于提高辐射缓存结果的准确性,进而提升场景渲染效果。该方法包括:获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个候选体素的体素顶点索引;根据第j个分辨率层中的候选体素的体素顶点索引,在第j个分辨率层对应的哈希表中,获取第j个分辨率层中的候选体素对应的顶点特征向量;对顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量;对采样点对应的辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,根据编码特征确定采样点对应的辐射缓存结果。

Description

渲染处理方法、装置、设备以及介质
技术领域
本申请涉及人工智能技术领域,尤其涉及一种渲染处理方法、装置、设备以及介质。
背景技术
神经辐射缓存是一种结合神经网络和辐射缓存的计算机图形学技术,其旨在通过训练神经网络来学习和存储场景的光照信息。
目前的神经辐射缓存技术中,使用不同频率的三角函数对场景中的空间位置信息进行编码,编码后的空间位置信息被扩展到高维空间;编码后的空间位置信息用于输入多层感知机(Multilayer Perceptron,MLP),通过该多层感知机输出光线辐射,并对光线辐射进行存储,以便在需要时快速查询和重用。其中,不同频率的三角函数对最终输出结果(光线辐射)的贡献并不相同,MLP可以逐步学习到不同函数对于最终输出结果的贡献权重;然而,在MLP的学习过程中,贡献权重更多地集中在低频三角函数,高频三角函数的贡献权重降低,会导致三角函数的编码结果缺失很多细节,进而降低了神经辐射缓存结果的准确性。
发明内容
本申请实施例提供一种渲染处理方法、装置、设备以及介质,可以提高辐射缓存结果的准确性,进而提升场景渲染效果。
本申请实施例一方面提供了一种渲染处理方法,包括:
获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数;
根据第j个分辨率层中的候选体素对应的体素顶点索引,在第j个分辨率层对应的哈希表中,获取第j个分辨率层中的候选体素对应的顶点特征向量;第j个分辨率层对应的哈希表中包括第j个分辨率层中的各个体素的体素顶点所对应的特征向量,j为小于或等于L的正整数;
对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量;
获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,根据编码特征确定采样点对应的辐射缓存结果。
本申请实施例一方面提供了一种渲染处理装置,包括:
体素确定模块,用于获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数;
特征查找模块,用于根据第j个分辨率层中的候选体素对应的体素顶点索引,在第j个分辨率层对应的哈希表中,获取第j个分辨率层中的候选体素对应的顶点特征向量;第j个分辨率层对应的哈希表中包括第j个分辨率层中的各个体素的体素顶点所对应的特征向量,j为小于或等于L的正整数;
插值处理模块,用于对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量;
辐射缓存输出模块,用于获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,根据编码特征确定采样点对应的辐射缓存结果。
其中,体素确定模块获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引,用于执行以下操作:
获取待渲染场景中的采样点对应的采样位置信息,根据采样位置信息与L个分辨率层中的各个体素的体素顶点所对应的顶点位置信息,在L个分辨率层的每一个分辨率层中确定采样点所属的候选体素;
对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素对应的体素顶点索引。
其中,体素确定模块对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素对应的体素顶点索引,用于执行以下操作:
获取第j个分辨率层中的候选体素的体素顶点a所对应的顶点位置信息,以及获取D个空间维度对应的哈希编码权重;D为正整数;
将体素顶点a对应的顶点位置信息中所包含的D个维度坐标,与D个空间维度对应的哈希编码权重进行相乘,得到体素顶点a在D个空间维度上的加权坐标;
对体素顶点a在D个空间维度上的加权坐标进行异或运算,得到异或运算结果,获取第j个分辨率层对应的哈希表的表尺寸,将异或运算结果对表尺寸的取余结果,确定为体素顶点a对应的体素顶点索引。
其中,该装置还包括:
哈希表创建模块,用于为待渲染场景设置L个分辨率层,获取L个分辨率层分别对应的体素尺寸;
哈希表创建模块,还用于根据L个分辨率层分别对应的体素尺寸,对待渲染场景进行L次体素化处理,得到每一个分辨率层中的多个体素;
哈希表创建模块,还用于对第j个分辨率层中的多个体素对应的顶点位置信息进行哈希运算,得到第j个分辨率层中的多个体素对应的体素顶点索引;
哈希表创建模块,还用于获取第j个分辨率层中的多个体素的体素顶点所对应的特征向量,将第j个分辨率层中的多个体素的体素顶点对应的体素顶点索引和特征向量封装为键值对结构,得到第j个分辨率层对应的哈希表。
其中,哈希表创建模块获取L个分辨率层分别对应的体素尺寸,用于执行以下步骤:
获取L个分辨率层中的最小分辨率和最大分辨率,根据最小分辨率和最大分辨率确定分辨率增长因子;
将最小分辨率与分辨率增长因子的j次方之间的乘积进行向下取整,得到第j个分辨率层对应的体素尺寸。
其中,哈希表创建模块获取第j个分辨率层中的多个体素的体素顶点所对应的特征向量,用于执行以下步骤:
获取第j个分辨率层中的多个体素的体素顶点c所对应的粗糙度、射线信息以及法线信息,将体素顶点c对应的粗糙度、射线信息以及法线信息确定为体素顶点c的几何特征;
将体素顶点c对应的漫反射和镜面反射,确定为体素顶点c的光照特征,将几何特征和光照特征,确定为体素顶点c对应的特征向量。
其中,插值处理模块对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量,用于执行以下步骤:
根据采样点对应的采样位置信息,以及第j个分辨率层中的候选体素对应的顶点坐标信息,获取采样点在第j个分辨率层的候选体素内的D个局部坐标参数;D为正整数;
根据D个局部坐标参数,对第j个分辨率层中的候选体素对应的顶点特征向量进行双线性插值处理,得到采样点在第j个分辨率层中的采样特征向量。
其中,插值处理模块对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量,用于执行以下步骤:
对第j个分辨率层中的候选体素对应的顶点坐标信息进行归一化处理,得到第j个分辨率层中的候选体素对应的归一化坐标信息;
根据插值函数和第j个分辨率层中的候选体素对应的归一化坐标信息,获取采样点在D个空间维度上的坐标权重;D为正整数;
根据D个空间维度上的坐标权重,对第j个分辨率层中的候选体素对应的顶点特征向量进行加权平均处理,得到采样点在第j个分辨率层中的采样特征向量。
其中,辐射缓存输出模块获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,用于执行以下步骤:
将采样点对应的粗糙度、射线信息、法线信息、漫反射以及镜面反射,确定为采样点对应的辅助特征;
按照分辨率升序的顺序,对采样点在各个分辨率层中的采样特征向量进行连接,得到采样连接特征,将采样连接特征和辅助特征连接为采样点对应的编码特征。
其中,辐射缓存输出模块根据编码特征确定采样点对应的辐射缓存结果,用于执行以下步骤:
将编码特征输入至神经网络模型,根据神经网络模型中的N个子网络对应的权重矩阵,对编码特征进行特征变换处理,得到采样点对应的辐射缓存结果;N为正整数。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例中上述一方面提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例中上述一方面提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
本申请实施例中,对于待渲染场景中的采样点,可以确定该采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引,根据体素顶点索引,在各个分辨率层对应的哈希表中获取各个候选体素对应的顶点特征向量进行插值处理,得到该采样点在L个分辨率层中的采样特征向量。对采样点在每一个分辨率层中的采样特征向量进行连接,再加上该采样点对应的辅助特征,作为该采样点对应的编码特征,由此得到的编码特征可以包含更多有效的位置信息;基于该编码特征确定该采样点对应的辐射缓存结果,可以提高辐射缓存结果的准确性,进而提高场景渲染效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种实时渲染架构的参数配置界面示意图;
图3是本申请实施例提供的一种渲染处理方法的流程示意图一;
图4是本申请实施例提供的一种神经网络模型的网络结构示意图;
图5是本申请实施例提供的一种渲染处理方法的流程示意图二;
图6是本申请实施例提供的一种辐射缓存结果的生成示意图;
图7是本申请实施例提供的一种实时渲染的结果对比示意图;
图8是本申请实施例提供的一种渲染处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解,下面先对本申请实施例涉及的相关技术进行描述:
实时渲染:是计算机图形学中的一种在有限时间内生成图像的渲染方法。实时渲染的目标是在尽可能短的时间内生成视觉效果较好的图像,以便在交互式应用程序(如视频游戏、虚拟现实和增强现实)中实现流畅的用户体验。
路径追随(Path Tracing):是一种基于光追(Ray Tracing)的全局光照算法,用于生成真实感的渲染图像。Path Tracing通过模拟光线在场景中的物体之间的相互反射、折射和散射,来计算物体表面的颜色和亮度。与传统的Ray Tracing方法相比,Path Tracing能够更准确地模拟复杂的光照效果,如软阴影、间接光照、颜色漫反射和透明度。
辐射度(Radiance):是一种描述光的强度和方向分布的物理量。辐射度用于度量在给定方向上通过某个表面单位面积的光的能量。该辐射度有助于模拟光在场景中的传播以及物体表面的反射、折射和散射等现象。
辐射缓存(Radiance Caching,RC):是计算机图形学当中一种用于提高全局光照计算效率的技术,其核心思想是在场景中存储预计算的光照信息,以便在需要时快速查询和重用。
神经辐射缓存(Neural Radiance Caching,NRC):是一种结合神经网络和辐射缓存的计算机图形学技术,其旨在通过训练神经网络来学习和存储场景的光照信息,从而提高全局光照计算的效率。其中,适用于静态场景的神经辐射缓存可以称为静态神经辐射缓存,静态场景中的几何结构、材质和光照在渲染过程中保持不变。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。本申请实施例具体涉及机器学习下属的人工神经网络模型(简称为神经网络模型),该神经网络模型可以利用场景中的空间哈希编码和真实的光线辐射训练得到,训练完成的神经网络可以用于生成辐射缓存结果。
空间哈希编码:是一种将任意形状的空间数据对象映射为定长的哈希值的方法。空间哈希编码通常用于空间索引、数据压缩、聚类分析等领域。在空间哈希编码中,可以将空间划分为若干个网格单元,每个网格单元可以看作是一个桶。对于每个空间对象,将其质心坐标映射到对应的桶中。若多个对象映射到同一个桶中,则可以认为多个对象是相邻的。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图,该网络架构可以包括服务器10d和终端集群,该终端集群可以包括一个或者多个终端设备,这里不对终端集群所包含的终端设备的数量进行限制。如图1所示,该终端集群可以具体包括终端设备10a、终端设备10b以及终端设备10c等;终端集群中的所有终端设备(例如,可以包括终端设备10a、终端设备10b以及终端设备10c等)均可以与服务器10d进行网络连接,以便于各个终端设备均可以通过该网络连接与服务器10d之间进行数据交互。
终端集群的终端设备可以包括智能手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)、智能语音交互设备、智能家电(例如智能电视等)、车载设备、飞行器等电子设备,本申请对终端设备的类型不做限定。可以理解的是,如图1所示的终端集群中的每个终端设备均可以安装业务客户端,当该业务客户端运行于各终端设备中时,可以分别与上述图1所示的服务器10d之间进行数据交互。其中,各终端设备中运行的业务客户端可以对应一个独立的客户端,也可以对应一个集成在某个客户端中的嵌入式子客户端,本申请对此不做限定。
其中,业务客户端可以具体包括但不限于:浏览器、车载客户端、智能家居客户端、娱乐客户端(例如,游戏客户端)、多媒体客户端(例如,视频客户端、短视频客户端)、虚拟现实客户端、增强现实客户端以及会议客户端等具有实时渲染功能的应用。其中,若终端集群所包含的终端设备为车载设备,那么该车载设备可以为智慧交通场景下的智能终端,该车载设备中所运行的业务客户端可以称为车载客户端。
其中,服务器10d可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请对服务器的类型不做限定。
其中,图1所示的各个终端设备中可以运行实时渲染工具,该实时渲染工具可以应用在电子游戏、虚拟现实、增强现实、计算机辅助设计和可视化等场景中,该实时渲染工具可以为支持实时神经辐射缓存的任意实时渲染工具。例如,在电子游戏中,可以通过终端设备(例如,终端设备10a)中的实时渲染工具,对电子游戏中的游戏场景进行实时渲染,在尽可能短的时间内生成视觉效果较好的游戏画面。在电子游戏的实时渲染过程中,可以通过训练神经网络来学习和存储场景的光照信息,以便在需要时快速查询和重用;这些学习到的光照信息以一种分布的形式存储在场景的各个位置上,可以包括辐射度、颜色等光照属性。在实时渲染过程中,当光线经过一个位置时,可以从辐射缓存中获取该位置的光照信息,而不需要重新计算整个光照场,这样可以显著减少光照计算的时间,提高渲染速度。
下面以图1所示的终端设备10a为例,对终端设备中的实时渲染工具进行描述。基于终端设备10a中的实时渲染工具进行实时神经辐射缓存时,对象(使用该实时渲染工具的用户)可以启动终端设备10a中的实时渲染工具,进入该实时渲染工具中的参数配置界面,在该参数配置界面中,对象可以对实时神经辐射缓存中的配置参数进行设置。
请参见图2,图2是本申请实施例提供的一种实时渲染架构的参数配置界面示意图。如图2所示的当前界面为实时渲染工具的参数配置界面20a,在该参数配置界面20a中,对象可以选择是否开启神经辐射缓存技术(Enable NRC),若对象选择开启神经辐射缓存技术,则可以在该参数配置界面20a中对神经辐射缓存技术相应的配置参数进行设置。例如,可以为神经辐射缓存技术设置一个功能控件,该功能控件可以对应两个状态,分别为开启状态和关闭状态;其中,当该功能控件属于开启状态时,表示在实时渲染过程中开启神经辐射缓存技术;当该功能控件属于关闭状态时,表示在实时渲染过程中不开启神经辐射缓存技术。应当理解,本申请实施例对该功能控件的开启状态和关闭状态在参数配置界面20a中的呈现方式均不做限定,如以“打对勾”的形式呈现开启状态,以“未打对勾”的形式呈现关闭状态,或者以不同的颜色呈现开启状态和关闭状态等。
如图2所示,在开启神经辐射缓存技术后,该参数配置界面20a中可以包括神经辐射缓存底层参数(NRC Lowlevel Params)、神经辐射缓存调试(NRC Debug)以及神经网络参数(Network Params)等。其中,神经辐射缓存底层参数(NRC Lowlevel Params)可以为数值类型参数,本申请所涉及的数值类型参数可以设置为某预设范围内的任意数值。神经辐射缓存调试(NRC Debug)可以包括开关类型参数和选择类型参数,本申请所涉及的开关类型参数都可以对应开启和关闭两种状态,选择类型参数可以设置为一个或多个预设参数中的任一个。神经网络参数(Network Params)可以包括重置控件和数值类型参数。
如图2所示,神经辐射缓存底层参数(NRC Lowlevel Params)具体可以包括推理过程中的最大弹跳次数(Max inference bounces)、训练过程中的最大弹跳次数(Maxtraining suffix bounces)、Path Tracing时的最大弹跳次数(Max Russian Roulettesuffix bounces)、推理过程中的光线弹跳阈值(Terminate threshold inference)、训练过程中的光线弹跳阈值(Terminate threshold suffix)等数值类型参数。其中,推理过程中的最大弹跳次数(Max inference bounces)表示在神经网络模型的实时推理过程中,光线在场景中的物体表面之间反射、折射和散射的最大次数,如可以设置为数值a1(比如,具体可以设置为5)。训练过程中的最大弹跳次数(Max training suffix bounces)表示在神经网络模型的训练过程中,光线在场景中物体表面之间反射、折射和散射的最大次数,如可以设置为数值a2(比如,具体可以设置为5)。Path Tracing时的最大弹跳次数(Max RussianRoulette suffix bounces)表示在Path Tracing时,允许光线在场景中物体表面之间弹跳的最大次数,如可以设置为数值a3(比如,具体可以设置为10)。推理过程中的光线弹跳阈值(Terminate threshold inference)表示在神经网络模型的实时推理过程中,对于光线弹射的限制值,该数值用于控制光线弹射何时截止,如可以设置为数值a4(比如,具体可以设置为2.500000)。训练过程中的光线弹跳阈值(Terminate threshold suffix)表示在神经网络模型的训练过程中,对于光线弹射的限制值,该数值用于控制光线弹射何时截止,如可以设置为数值a5(比如,具体可以设置为20.000000)。
神经辐射缓存调试(NRC Debug)可以包括是否显示当前像素的光线信息(Raystats)、是否使用神经辐射缓存技术合成当前像素(Visualize NRC)等开关类型参数,以及像素合成模式(Visualize mode)等选择类型参数。Ray stats处于开启状态时表示显示当前像素文本形式的光线信息,Ray stats处于关闭状态时表示不显示当前像素的光线信息;Visualize NRC处于开启状态时表示在合成当前像素时使用神经辐射缓存(NRC)合成,Visualize NRC处于关闭状态时表示在合成当前像素时不使用神经辐射缓存合成。像素合成模式(Visualize mode)可以对应一个选择框,在该选择框中可以选择只显示原始PathTracing结果的bias of radiance(辐射偏置)模式,与显示最终NRC结果的复合辐射度(composited radiance)模式。
神经网络参数(Network Params)中的重置神经网络(reset network)控件可以重置神经网络模型中的网络参数;神经网络参数(Network Params)中的学习率(learningrate)可以设置为数值a6(比如,具体可以设置为0.004500)。
可以理解的是,是否开启神经辐射缓存技术可以为参数配置界面20a中具有最高优先级的配置参数,当对象开启神经辐射缓存技术后,该参数配置界面20a中的神经辐射缓存底层参数(NRC Lowlevel Params)、神经辐射缓存调试(NRC Debug)以及神经网络参数(Network Params)等均是可操作性的;当对象未开启神经辐射缓存技术,表示该对象暂时不需要进行神经辐射缓存技术,此时的神经辐射缓存底层参数(NRC Lowlevel Params)、神经辐射缓存调试(NRC Debug)以及神经网络参数(Network Params)均可以是不可操作的。
本申请实施例提出了一种基于多分辨率哈希编码的实时神经辐射缓存优化方法,在神经辐射缓存过程中可以根据多种分辨率下提取到的哈希编码,有效地还原神经辐射缓存中损失的细节,提高神经辐射缓存结果的准确性。在一种可行的实施方式中,本申请所涉及的编码方式可以通过json(JavaScript Object Notation)格式的配置文件来进行配置,该json格式是一种轻量级的数据交换格式,不仅易于阅读和编写,也易于机器解析和生成。
由于对位置(position)、粗糙度(roughness)等网络输入信息的编码是一同进行的,因此可以将编码方式设定为复合(Composite)类型。其中,位置(position)的编码维度(n_dims_to_encode)可以设定为3,此处的数值3可以表示为三个空间维度(例如,x轴、y轴、z轴);类型(otype)可以设定为HashGrid(哈希网格,一种常用的数据结构,用于在计算机图形学、计算机游戏和物理模拟等领域进行高效的空间索引和碰撞检测)。多分辨率哈希编码的层次数(n_levels)可以设定为16层,即可以有16种不同分辨率的哈希编码;每个哈希表词条的特征向量维度(n_features_per_level)可以为2;哈希表的大小(hashmap_size)可以设定为2的19次方,即log2_hashmap_size=19。每个级别的几何增长因子(per_level_scale),即每个轴上相邻级别的分辨率之间的倍数为2;其余的设定可以为其他信息的编码。可以理解的是,前述设定的数值仅为本申请实施例中的一种举例说明,本申请对上述设定不做限定。
为便于理解,本申请实施例以前述举例说明中的设定为例,并结合附图3至图7,对基于多分辨率哈希编码的实时神经辐射缓存优化方法进行描述。
请参见图3,图3是本申请实施例提供的一种渲染处理方法的流程示意图一;可以理解地,该渲染处理方法可以由计算机设备执行,该计算机设备可以为服务器(如图1所示的服务器10d),或者可以为终端设备(如图1所示的终端集群中的任意一个终端设备),本申请对此不做限定。如图3所示,该渲染处理方法可以包括以下步骤S101至步骤S104:
步骤S101,获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数。
具体的,在实时渲染过程中,可以对场景进行光照计算,以获取该场景对应的光照结果。为提高实时渲染处理中的光照计算效率,本申请实施例在实时渲染处理中开启实时神经辐射缓存技术,即通过训练神经网络模型来学习和存储场景的光照信息,以便在需要时快速查询和重用。本申请可以将需要进行渲染的场景称为待渲染场景,对于待渲染场景中的任意一个采样点(例如,待渲染场景中的采样点s),可以计算该采样点s在待渲染场景中的辐射缓存结果,并对计算得到的辐射缓存结果进行存储。
其中,本申请实施例中的采样点可以为待渲染场景中的任意一个三维坐标点。在实际应用中,可以将待渲染场景的整个空间进行L次体素化处理,得到L个体素层,L为正整数,L可以取值为1,2,……;如此处的L可以取值为16、32等,本申请对此不做限定。其中,体素化处理可以是指将连续的形状或物体离散化为立方体单元或体素的过程,如可以将待渲染场景分割为离散的体素。体素(或者可以称为体素元)是三维空间中的体积像素单元,体素是对三维数据的离散表示。一个体素层对应一个分辨率层,不同的体素层对应不同的分辨率层。体素层的精度逐层增加,即体素层的层数越大,表示该体素层所对应的分辨率层的分辨率越大;体素层的层数越小,表示该体素层所对应的分辨率层的分辨率越小。一个体素层中可以包括多个体素,同一个体素层中的体素具有相同的尺寸,不同的体素层中的体素具有不同的尺寸。在确定了每一个体素层中的体素尺寸之后,可以根据每个体素层中的体素尺寸,确定各个体素层分别包含的体素数量。
在一种可行的实施方式中,可以获取待渲染场景中的采样点对应的采样位置信息,根据该采样位置信息与L个分辨率层中的各个体素的体素顶点所对应的顶点位置信息,在L个分辨率层的每一个分辨率层中确定该采样点所属的候选体素;对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素对应的体素顶点索引。
其中,采样位置信息可以为采样点的三维坐标信息,候选体素可以是指采样点在每一个分辨率层中所属的体素。体素作为三维空间中的体积像素单元,一个体素至少可以具有8个体素顶点,各个体素的体素顶点所对应的顶点位置信息可以为体素顶点的三维坐标信息。根据每一个分辨率层中的各个体素的体素顶点所对应的顶点位置信息,可以确定每一个分辨率层中的各个体素对应的空间区域范围;采样点s属于哪一个空间区域范围,就可以确定采样点s在每一个分辨率层中所属的体素,本申请实施例可以将采样点s所属的体素称为候选体素,每一个分辨率层中都可以有一个候选体素。例如,假设L个分辨率层中的第j个分辨率层(j为小于或等于L的正整数)包括体素1、体素2、体素3以及体素4,若采样点对应的采样位置信息属于体素3对应的空间区域范围,那么可以将体素3作为采样点在第j个分辨率层中所属的候选体素。体素顶点索引可以是指对候选体素的各个体素顶点所对应的顶点位置信息进行哈希运算后的哈希值。
需要说明的是,本申请实施例中,可以采用任意一个哈希算法对候选体素的各个体素顶点的三维坐标进行哈希运算,以得到各个体素顶点对应的体素顶点索引。此处的哈希算法可以包括但不限于:MD5(Message Digest Algorithm 5)、SHA(Secure HashAlgorithm)系列(如SHA-1、SHA-256、SHA-384、SHA-512等)、CRC(Cyclic Redund Check)、MurmurHash(一种快速非加密型哈希算法)。
其中,对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素的体素顶点所对应的体素顶点索引,包括:对于L个分辨率层中的任意一个分辨率层(例如,第j个分辨率层)中的候选体素的任意一个体素顶点(例如,体素顶点a),可以获取体素顶点a对应的顶点位置信息(可以为三维坐标,如包含x轴坐标、y轴坐标、z轴坐标),以及获取D(D为正整数,如在三维空间中,此处的D可以取值为3)个空间维度对应的哈希编码权重,此处的哈希编码权重可以表示每一个空间维度对于最终的哈希编码结果(体素顶点索引)的贡献权重;将体素顶点a对应的顶点位置信息中所包含的D个维度坐标,与D个空间维度对应的哈希编码权重进行相乘,得到体素顶点a在D个空间维度上的加权坐标。对体素顶点a在D个空间维度上的加权坐标进行异或运算,得到异或运算结果,获取第j个分辨率层对应的哈希表的表尺寸,将异或运算结果对表尺寸的取余结果,确定为体素顶点a对应的体素顶点索引。
可选地,上述体素顶点a对应的体素顶点索引可以通过下述公式(1)表示:
(1)
其中,⊕表示位运算异或操作(即异或运算),D表示空间维度,i为小于或等于D的正整数;si表示体素顶点a对应的顶点位置信息中的第i个维度坐标,即第i个空间维度输入的坐标;πi表示第i个空间维度对于最终的哈希编码结果的贡献权重(即哈希编码权重);mod表示取余操作,T表示第j个分辨率层对应的哈希表的表尺寸;表示候选体素的任意一个体素顶点(例如,体素顶点a)对应的体素顶点索引(哈希值)。应当理解,采样点s在每一个分辨率层中所属的候选体素的体素顶点都可以按照上述公式(1)来计算得到体素顶点索引。通过上述公式(1)可以使用多个素数来生成哈希值,并通过线性同余方法来实现D个空间维度之间的解耦。
步骤S102,根据第j个分辨率层中的候选体素对应的体素顶点索引,在第j个分辨率层对应的哈希表中,获取第j个分辨率层中的候选体素对应的顶点特征向量;第j个分辨率层对应的哈希表中包括第j个分辨率层中的各个体素的体素顶点所对应的特征向量,j为小于或等于L的正整数。
具体的,通过上述公式(1)可以计算得到采样点在各个分辨率层中的候选体素的每一个体素顶点对应的体素顶点索引,根据第j个分辨率层中的候选体素对应的体素顶点索引,可以在该第j个分辨率层对应的哈希表中,查找候选体素的各个体素顶点对应的顶点特征向量。其中,顶点特征向量可以是一个F维特征向量,F为正整数,如F可以取值为2。一个体素顶点对应的顶点特征向量可以包括该体素顶点表面的粗糙度(roughness)、射线信息(direction)、法线(normal)信息、漫反射(diffuse)以及镜面反射(specular值)等,上述体素顶点表面的粗糙度、射线信息、法线信息、漫反射以及镜面反射等相关信息可以在PathTracing过程中进行收集。其中,粗糙度(roughness)、射线信息(direction)、法线(normal)等各项同性的几何特征可以作为顶点特征向量中的第一维特征;将漫反射(diffuse)和镜面反射(specular值)等各项异性的光照特征作为顶点特征向量中的第二维特征;这样可以让顶点特征向量中同一维的特征值具有一些共性,使得神经网络模型为前述两维特征分配权重时更为准确。
可以理解的是,将待渲染场景分割为L个分辨率层之后,可以为每一个分辨率层创建一个哈希表(也可以称为散列表),此处的哈希表是一种数据结构,具体可以是一种根据键(Key)直接访问到值(Value)的数据结构。一个分辨率层对应的哈希表中的键可以为该分辨率层中的各个体素的体素顶点所对应的体素顶点索引(哈希值),值可以为该分辨率层中的各个体素的体素顶点所对应的顶点特征向量,一个体素顶点对应一个键值对结构。例如,对于第j个分辨率层中的某一个体素的体素顶点a,可以将体素顶点a对应的体素顶点索引作为键(Key),将体素顶点a对应的顶点特征向量作为值(Value),以键值对结构的形式存储到第j个分辨率层对应的哈希表中。其中,每一个分辨率层中的各个体素的体素顶点所对应的体素顶点索引均可以通过上述公式(1)计算得到。
步骤S103,对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量。
具体的,对于L个分辨率层中的任意一个分辨率层(例如,第j个分辨率层),可以对第j个分辨率层中的候选体素的体素顶点所对应的顶点特征向量进行线性插值处理,由此得到的插值结果可以作为采样点在第j个分辨率层中的采样特征向量,该采样特征向量可以是根据采样点在第j个分辨率层中的相对位置进行线性插值处理后的结果。其中,线性插值方法可以包括但不限于:双线性插值、双三次插值等。
举例来说,假设第j个分辨率层中的候选体素具有8个体素顶点,这8个体素顶点对应的顶点特征向量可以根据各个体素顶点对应的体素顶点索引,从第j个分辨率层对应的哈希表中查询得到。通过对这8个体素顶点对应的顶点特征向量进行线性插值处理,最终得到的插值结果可以作为采样点在第j个分辨率层中的采样特征向量。
步骤S104,获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,根据编码特征确定采样点对应的辐射缓存结果。
具体的,可以在Path Tracing过程中收集采样点表面的粗糙度、射线信息、法线信息、漫反射以及镜面反射等信息,这些粗糙度、射线信息、法线信息、漫反射以及镜面反射等信息可以作为采样点对应的辅助特征。按照分辨率升序的顺序,对采样点在各个分辨率层中的采样特征向量进行连接,得到采样连接特征,进而可以将采样连接特征和辅助特征连接为采样点对应的编码特征。其中,L个分辨率层的升序顺序可以表示为:第1个分辨率层、第2个分辨率层、第3个分辨率层、……、第L-1个分辨率层、第L个分辨率层。采样点在L个分辨率层中的采样特征向量可以按照前述顺序进行依次连接,并加上采样点的辅助特征,可以得到采样点对应的编码特征。其中,采样点对应的编码特征可以是指在神经辐射缓存过程中使用多种分辨率(即L个分辨率层)下提取到的哈希编码,可以有效提取采样点的位置信息,并在神经网络模型的学习过程中有效保留细节信息,进而提高神经辐射缓存结果的准确性。
可以将采样点的编码特征输入至神经网络模型,通过该神经网络模型中的各个网络层的权重矩阵和偏置向量,对采样点的编码特征进行非线性变换,输出采样点对应的辐射缓存结果(此处的辐射缓存结果可以为散射辐射度),并对该采样点的辐射缓存结果进行存储。其中,本申请所涉及的神经网络模型可以通过Path Tracing过程中实时收集到的光照信息进行实时训练,其训练过程中所涉及的相关参数可以参见图2所对应实施例中的相关描述,此处不再进行赘述。上述神经网络模型可以为多层感知机(MultilayerPerceptron,MLP)、卷积神经网络模型(Convolutional Neural Networks,CNN)或者其他任一种网络结构,本申请对神经网络模型的网络结构不做具体限定。
其中,神经网络模型可以是一个全连接神经网络,该神经网络模型可以记为f(y;Φ),此处的y表示神经网络模型的输入数据,如采样点对应的编码特征;通过该神经网络模型可以对输入的编码特征进行编码,以在广泛应用中提高近似质量和训练速度,且不带来明显的性能开销。该神经网络模型可以具有可训练的权重参数Φ,以及可训练的编码参数,这些参数可以被分为L个级别,每个级别包含T个特征向量,每个特征向量的维度可以记为F;此处的T和F均可以为正整数。
为便于理解,下面以神经网络模型是多层感知机为例进行描述。可以在PathTracing过程中实时生成训练该神经网络模型所需要的数据,并实时训练神经网络模型来获取新的光照信息(例如,具体可以为散射辐射度,或者可以称为辐射缓存结果),这样可以避免计算复杂的散射辐射度。多层感知机通常由输入层、隐藏层以及输出层组成,其中隐藏层可以为多层;多层感知机中的每个神经元都可以对应一个权重向量和一个偏置值(此处的权重向量和偏置值都可以称为多层感知机的网络参数),通过这些网络参数可以对输入的编码特征进行线性组合,并应用激活函数来输出辐射缓存结果;多层感知机中的激活函数可以包括但不限于:Sigmoid函数、tanh函数、Relu函数、Leaky ReLU函数(PReLU)等。
为了保证神经网络模型的实时性,降低神经网络模型的输入和输出维度,本申请实施例可以将神经网络模型的网络结构拆分为多个小网格(可以称为子网络),这样可以降低神经网络模型的复杂度,拆分之后的多个子网络可以实现高性能并发,可以提高神经网络模型的训练效率。具体而言,可以将采样点对应的编码特征输入至神经网络模型,根据神经网络模型中的N(N为正整数)个子网络对应的权重矩阵,对采样点对应的编码特征进行特征变换处理,得到采样点对应的辐射缓存结果;采样点对应的编码特征在神经网络模型中的处理过程可以称为该神经网络模型的实时推理过程。神经网络模型可以拆分为N个子网络,此处的N可以为大于1的整数,如N可以取值为2,3,……;在神经网络模型的实时推理过程中,N个子网络可以进行并行处理。
请参见图4,图4是本申请实施例提供的一种神经网络模型的网络结构示意图。本申请实施例所涉及的神经网络模型的网络结构如图4所示的多层感知机30a,该多层感知机30a可以包括多个子网络(此处子网络的数量N可以取值为4),分别为子网络30b、子网络30c、子网络30d以及子网络30e。每一个子网路都可以包括一个输入层、H个隐藏层(H可以为大于1的整数)、一个输出层,每一个隐藏层都可以对应一个权重矩阵(也可以称为链接系数矩阵)。其中,前一个隐藏层的计算结果与后一个隐藏层的权重矩阵相乘,加上后一个隐藏层的偏置矩阵,进而可以经过一个激活函数(例如,Relu函数),以得到后一个隐藏层的输出结果;每一个隐藏层都可以连接一个激活函数,多层感知机30a中的每一个隐藏层的计算结果都可以认为是输入的线性组合,通过激活函数可以使多层感知机30a中的每一个子网络利用到更多的非线性模型中。
如图4所示,采样点对应的编码特征可以输入到多层感知机30a的各个子网络中。例如,采样点对应的编码特征可以拆分为4个特征向量,这4个特征向量可以分别输入至子网络30b、子网络30c、子网络30d以及子网络30e这4个子网络的输入层;子网络30b、子网络30c、子网络30d以及子网络30e这4个子网络的输出层的计算结果可以作为采样点的辐射缓存结果。本申请实施例通过将神经网络模型拆分为多个子网络,可以降低神经网络模型的输入和输出维度,降低单个网络的复杂度;通过对多个子网络进行并行处理,可以提高数据处理效率,保证了神经网络模型训练和推理的实时进行。
本申请实施例中,对于待渲染场景中的采样点,可以确定该采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引,根据体素顶点索引,在各个分辨率层对应的哈希表中获取各个候选体素对应的顶点特征向量进行插值处理,得到该采样点在L个分辨率层中的采样特征向量。对采样点在每一个分辨率层中的采样特征向量进行连接,再加上该采样点对应的辅助特征,作为该采样点对应的编码特征,由此得到的编码特征可以包含更多有效的位置信息;基于该编码特征确定该采样点对应的辐射缓存结果,可以提高辐射缓存结果的准确性,进而提高场景渲染效果。
请参见图5,图5是本申请实施例提供的一种渲染处理方法的流程示意图二;可以理解地,该渲染处理方法可以由计算机设备执行,该计算机设备可以为服务器,或者可以为终端设备,本申请对此不做限定。如图5所示,该渲染处理方法可以包括以下步骤S201至步骤S209:
步骤S201,为待渲染场景设置L个分辨率层,获取L个分辨率层分别对应的体素尺寸。
具体的,在实时渲染过程中,可以预先为待渲染场景设置体素化次数,此处的体素化次数可以记为L,该L可以为正整数,如该体素化次数L可以取值为16,或者其他数值等。基于该体素化次数L可以确定待渲染场景对应的分辨率序列,该分辨率序列可以包括L个分辨率,该分辨率序列中的每一个分辨率都可以对应一个分辨率层;从该分辨率序列中获取最小分辨率(可以记为Nmin,也可以称为最粗糙的分辨率)和最大分辨率(可以记为Nmax,也可以称为最精细的分辨率),即获取L个分辨率层中的最小分辨率Nmin和最大分辨率Nmax
根据最小分辨率Nmin和最大分辨率Nmax可以确定分辨率增长因子b;将最小分辨率Nmin与分辨率增长因子b的j次方之间的乘积进行向下取整,可以得到第j个分辨率层对应的体素尺寸。其中,由于体素化次数L的数量可能很大,分辨率增长因子通常很小,在实际应用场景中,分辨率增长因子的选择区间可以为[1.26,2],本申请实施例对分辨率增长因子的取值不做限定。在确定了分辨率增长因子b之后,可以根据最小分辨率Nmin和分辨率增长因子b,得到每一个分辨率层对应的体素尺寸。
可选地,分辨率增长因子b的定义可以如下述公式(2)所示:
(2)
其中,上述公式(2)中的ln表示自然对数函数,exp表示以自然常数e为底的指数函数;L表示分辨率层的总层数,或者理解为待渲染场景需要进行体素化处理的次数。
可选地,第j个分辨率层中的体素对应的体素尺寸可以记为Nj,体素尺寸Nj的定义可以如下述公式(3)所示:
(3)
其中,上述公式(3)中的表示分辨率增长因子b的j次方,第j个分辨率层中的体素对应的体素尺寸Nj为最小分辨率Nmin和b的j次方的乘积的向下取整。通过上述公式(3)可以得到L个分辨率层中的每一个分辨率层分别对应的体素尺寸。
步骤S202,根据L个分辨率层分别对应的体素尺寸,对待渲染场景进行L次体素化处理,得到每一个分辨率层中的多个体素。
具体的,在得到每一个分辨率层对应的体素尺寸之后,可以根据各个分辨率层中的体素对应的体素尺寸,对待渲染场景进行L次体素化处理,得到各个分辨率层中的多个体素。换言之,在确定了各个分辨率层中的体素所对应的体素尺寸之后,可以确定待渲染场景在每一个分辨率层下所包含的体素的数量,不同分辨率层中所包含的体素都是独立的。其中,各个分辨率层中的每一个体素都可以包括多个体素顶点,如一个体素可以包括8个体素顶点。
步骤S203,对第j个分辨率层中的多个体素对应的顶点位置信息进行哈希运算,得到第j个分辨率层中的多个体素对应的体素顶点索引。
具体的,可以获取第j个分辨率层中的各个体素的所有顶点位置信息,根据公式(1)可以对第j个分辨率层中的各个体素的所有顶点位置信息进行哈希运算,得到第j个分辨率层中每一个体素的每一个体素顶点对应的体素顶点索引。应当理解,对于L个分辨率层中的每一个分辨率层所包含的各个体素,均可以通过公式(1)计算每一个体素的各个体素顶点对应的体素顶点索引,此处不再进行赘述。
步骤S204,获取第j个分辨率层中的多个体素的体素顶点所对应的特征向量,将第j个分辨率层中的多个体素的体素顶点对应的体素顶点索引和特征向量封装为键值对结构,得到第j个分辨率层对应的哈希表。
具体的,对于第j个分辨率层中任意一个体素的任意一个体素顶点(例如,体素顶点c),可以在Path Tracing过程中收集该体素顶点c所对应的粗糙度、射线信息以及法线信息,将体素顶点c对应的粗糙度、射线信息以及法线信息确定为体素顶点c的几何特征。获取体素顶点c对应的漫反射和镜面反射,将该体素顶点c对应的漫反射和镜面反射,确定为体素顶点c的光照特征;可以将该体素顶点c的几何特征和光照特征,确定为该体素顶点c对应的特征向量。该体素顶点c对应的体素顶点索引和该体素顶点c对应的特征向量可以采用键值对结构的形式存储在哈希表中,其中体素顶点c对应的体素顶点索引可以作为键值对结构中的键,体素顶点c对应的特征向量可以作为键值对结构中的值。
应当理解,通过上述方式可以获取第j个分辨率层中的每一个体素的每一个体素顶点对应的特征向量,对于每一个体素的任意一个体素顶点,都可以将该体素顶点对应的体素顶点索引和特征向量封装为一个键值对结构,这些体素顶点对应的键值对结构可以组成第j个分辨率层对应的哈希表。采用相同的方式可以创建每一个分辨率层分别对应的哈希表。
需要说明的是,每一个分辨率层对应的哈希表可以具有相同的尺寸,也可以具有不同的尺寸,本申请对此不做限定。通过为每一个分辨率层预先创建哈希表,存储每个分辨率层中所包含的各个体素的体素顶点对应的特征向量;在辐射缓存过程中,可以通过顶点位置信息对应的体素顶点索引,快速查询体素顶点对应的特征向量,这样可以提高体素顶点对应的特征向量的查询效率。
步骤S205,获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数。
步骤S206,根据第j个分辨率层中的候选体素对应的体素顶点索引,在第j个分辨率层对应的哈希表中,获取第j个分辨率层中的候选体素对应的顶点特征向量。
其中,步骤S205和步骤S206的具体实现过程可以参见图3所对应实施例中的步骤S101和步骤S102,此处不再进行赘述。
步骤S207,对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量。
具体的,在第j个分辨率层对应的哈希表中,查询到采样点在第j个分辨率层中所属的候选体素对应的顶点特征向量之后,可以对候选体素的所有体素顶点对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量;其中,本申请对插值方式不做限定。
可选地,下面以双线性插值方式为例,对采样点在第j个分辨率层中的采样特征向量进行描述。可以根据采样点对应的采样位置信息,以及第j个分辨率层中的候选体素对应的顶点坐标信息,获取采样点在第j个分辨率层的候选体素内的D个局部坐标参数;D为正整数。根据D个局部坐标参数,对第j个分辨率层中的候选体素对应的顶点特征向量进行双线性插值处理,得到采样点在第j个分辨率层中的采样特征向量。
举例来说,假设本申请所涉及的每一个体素都具有8个体素顶点,根据采样点与第j个分辨率层中的候选体素的8个体素顶点的坐标差异,可以得到D个局部坐标参数,此处的D可以取值为3,表示三维空间坐标。D个局部坐标参数可以包括局部坐标参数u、局部坐标参数v、局部坐标参数w。其中,上述采样点可以记为s,第j个分辨率层中的候选体素的8个体素顶点可以依次记为P1、P2、P3、P4、P5、P6、P7、P8;局部坐标参数u表示采样点s在体素顶点P1-体素顶点P2这一条边上的插值位置,局部坐标参数v表示采样点s在体素顶点P1-体素顶点P3这一条边上的插值位置,局部坐标参数w表示采样点s在体素顶点P1-体素顶点P5这一条边上的插值位置。
其中,局部坐标参数u=(s.x-P1.x)/(P2.x-P1.x),局部坐标参数v=(s.y-P1.y)/(P3.y-P1.y),局部坐标参数w=(s.z-P1.z)/(P5.z-P1.z);其中s.x、s.y、s.z分别表示采样点s对应的采样坐标信息中的x轴坐标值、y轴坐标值、z轴坐标值;P1.x、P1.y、P1.z分别表示体素顶点P1对应的顶点坐标信息中的x轴坐标值、y轴坐标值、z轴坐标值;P2.x表示体素顶点P2对应的顶点坐标信息中的x轴坐标值;P3.y表示体素顶点P3对应的顶点坐标信息中的y轴坐标值;P5.z表示体素顶点P5对应的顶点坐标信息中的z轴坐标值。
根据局部坐标参数u、局部坐标参数v、局部坐标参数w,对候选体素的8个体素顶点对应的顶点特征向量进行插值计算,如在u维度上的插值计算可以包括:R1=P1.feature+u×(P2.feature-P1.feature),R2=P5.feature+u×(P6.feature-P5.feature);在v维度上的插值计算可以包括:R3=P3.feature+u×(P4.feature-P3.feature),R4=P7.feature+u×(P8.feature-P7.feature);在w维度上的插值计算可以包括:R0=R1+v×(R2-R1),S0=R3+v×(R4-R3);在三维特征向量空间中进行插值计算:Result=R0+w×(S0–R0)。其中P1.feature、P2.feature、P3.feature、P4.feature、P5.feature、P6.feature、P7.feature、P8.feature分别表示第j个分辨率层中的候选体素的8个体素顶点P1、P2、P3、P4、P5、P6、P7、P8所对应的顶点特征向量;R0、R1、R2、R3、R4、S0、Result可以表示为在双线性插值处理中的临时结果,通过上述插值计算过程可以得到采样点s在第j个分辨率层中的采样特征向量。应当理解,上述插值计算过程仅为本申请实施例所涉及的双线性插值处理的一个举例说明,本申请对双线性插值的方式不做限定。
可选地,下面以双三次插值方式为例,对采样点在第j个分辨率层中的采样特征向量进行描述。对第j个分辨率层中的候选体素对应的顶点坐标信息进行归一化处理,得到第j个分辨率层中的候选体素对应的归一化坐标信息,该归一化坐标信息所包含坐标值为0和1之间的任意数值;根据插值函数和第j个分辨率层中的候选体素对应的归一化坐标信息,获取采样点在D个空间维度上的坐标权重;根据D个空间维度上的坐标权重,对第j个分辨率层中的候选体素对应的顶点特征向量进行加权平均处理,得到采样点在第j个分辨率层中的采样特征向量。其中,双三次插值需要采用插值函数来计算采样点在D个空间维度上的坐标权重,该插值函数可以包括但不限于:B样条插值函数、Catmull-Rom插值函数、Hermite插值函数等。
例如,若采用的插值函数为Hermite插值函数,则可以根据第j个分辨率层中的候选体素对应的归一化坐标信息,计算出采样点在三个空间维度(或者可以称为三维空间的三个坐标轴方向)上的三次Hermite插值函数的坐标权重,通过三个空间维度上的三次Hermite插值函数的坐标权重,对第j个分辨率层中的候选体素对应的顶点特征向量进行加权平均,得到采样点在第j个分辨率层中的采样特征向量。通过对各个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,可以提升采样点s的位置信息的有效性。
步骤S208,获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征。
步骤S209,将编码特征输入至神经网络模型,根据神经网络模型中的N个子网络对应的权重矩阵,对编码特征进行特征变换处理,得到采样点对应的辐射缓存结果;N为正整数。
其中,步骤S208和步骤S209的具体实现过程可以参见图3所对应实施例的步骤S104中的相关描述,此处不再进行赘述。
请参见图6,图6是本申请实施例提供的一种辐射缓存结果的生成示意图。如图6所示,假设预先为待渲染场景40a设置体素化次数L为2,计算得到的分辨率增长因子b为1.5,那么可以将待渲染场景40a划分为2个分辨率层,第一个分辨率层中的体素尺寸可以记为N1,第二个分辨率层中的体素尺寸可以记为N1。通过每一个分辨率层中的体素尺寸,可以对待渲染场景40a进行2次体素化处理,得到每一个分辨率层中的多个体素;如图6所示,第一个分辨率层可以包括四个体素,第二个分辨率层可以包括9个体素。需要说明的是,本申请实施例中所涉及的待渲染场景可以为三维空间区域,为便于理解,图6所示的待渲染场景40a实质上应为三维空间区域,只是以二维形式进行呈现。
对于该待渲染场景40a中的任意一个采样点s,可以确定该采样点s在第一个分辨率层中所属的体素为候选体素40b,该采样点s在第二分辨率层中所属的体素为候选体素40c。可以获取候选体素40b的8个体素顶点对应的顶点位置信息(可以认为是体素顶点的三维坐标值),通过公式(1)可以计算得到候选体素40b的8个体素顶点对应的哈希值,并将哈希值作为体素顶点索引,从第一个分辨率层对应的哈希表中查找候选体素40b的8个体素顶点对应的顶点特征向量。通过对候选体素40b的8个体素顶点对应的顶点特征向量进行线性插值处理,得到采样点s在第一个分辨率层中的采样特征向量40e。
同理,可以获取候选体素40c的8个体素顶点对应的顶点位置信息,通过公式(1)可以计算得到候选体素40c的8个体素顶点对应的哈希值,并将哈希值作为体素顶点索引,从第二个分辨率层对应的哈希表中查找候选体素40c的8个体素顶点对应的顶点特征向量。通过对候选体素40c的8个体素顶点对应的顶点特征向量进行线性插值处理,得到采样点s在第二个分辨率层中的采样特征向量40d。其中,采样特征向量40d和采样特征向量40e都可以包括T个特征向量,此处的T可以表示各个分辨率层对应的哈希表的尺寸,采样特征向量40d和采样特征向量40e的维度为F。
将采样点s在第一个分辨率层中的采样特征向量40e,以及采样点s在第二个分辨率层中的采样特征向量40d进行连接,连接后的特征的维度为L·F;进而为连接后的特征加上采样点s对应的辅助特征(该辅助特征的维度为E,E为正整数),可以得到采样点s对应的编码特征40f。该编码特征40f可以输入至神经网络模型40g,通过该神经网络模型40g可以输出采样点s对应的辐射缓存结果,并对该采样点s对应的辐射缓存结果进行存储。
本申请实施例通过基于多分辨率哈希编码方式,在实时神经辐射缓存过程中,可以有效地提取位置信息,并在神经网络模型的学习过程中有效地保留细节信息,进而可以提高神经缓存结果的准确性。请参见图7,图7是本申请实施例提供的一种实时渲染的结果对比示意图。如图7所示,使用三角函数位置编码后的神经辐射缓存结果可以如图像50a所示(该方式为目前现有的神经辐射缓存技术,是一种使用三角函数进行位置编码的神经辐射缓存,在神经辐射缓存的相关技术中,被广泛使用的位置编码方式可以为使用不同频率的sin和cos的编码方式);使用多分辨率哈希编码后的神经辐射缓存结果可以如图像50b所示(本申请实施例提供的神经辐射缓存技术);理想渲染结果如图像50c所示,该理想渲染结果可以作为衡量使用不同编码方式的神经辐射缓存结果的参考依据。
如图7所示,通过将图像50a中的区域50d、区域50e,以及图像50b中的区域50f、区域50g,与图像50c中的区域50h、区域50i进行比对,可以知晓,相较于使用三角函数位置编码后的神经辐射缓存结果,本申请实施例所使用的多分辨率哈希编码,可以提高神经辐射缓存结果的准确性,进而提升渲染效果。
本申请实施例中,对于待渲染场景中的采样点,可以确定该采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引,根据体素顶点索引,在各个分辨率层对应的哈希表中获取各个候选体素对应的顶点特征向量进行插值处理,得到该采样点在L个分辨率层中的采样特征向量。对采样点在每一个分辨率层中的采样特征向量进行连接,再加上该采样点对应的辅助特征,作为该采样点对应的编码特征,由此得到的编码特征可以包含更多有效的位置信息;基于该编码特征确定该采样点对应的辐射缓存结果,可以提高辐射缓存结果的准确性,进而提高场景渲染效果。
可以理解的是,在本申请的具体实施方式中,可能涉及到一些实时渲染的图像,这些图像可能涉及到用户的个人图片等,当本申请以上实施例运用到具体产品或技术中时,需要获得相关机构或部门、或者用户自身的许可或同意,且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准。
请参见图8,图8是本申请实施例提供的一种渲染处理装置的结构示意图。如图8所示,该渲染处理装置1包括:体素确定模块11,特征查找模块12,插值处理模块13,辐射缓存输出模块14;
体素确定模块11,用于获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数;
特征查找模块12,用于根据第j个分辨率层中的候选体素对应的体素顶点索引,在第j个分辨率层对应的哈希表中,获取第j个分辨率层中的候选体素对应的顶点特征向量;第j个分辨率层对应的哈希表中包括第j个分辨率层中的各个体素的体素顶点所对应的特征向量,j为小于或等于L的正整数;
插值处理模块13,用于对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量;
辐射缓存输出模块14,用于获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,根据编码特征确定采样点对应的辐射缓存结果。
在一个或多个实施例中,体素确定模块11获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引,用于执行以下操作:
获取待渲染场景中的采样点对应的采样位置信息,根据采样位置信息与L个分辨率层中的各个体素的体素顶点所对应的顶点位置信息,在L个分辨率层的每一个分辨率层中确定采样点所属的候选体素;
对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素对应的体素顶点索引。
在一个或多个实施例中,体素确定模块11对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素对应的体素顶点索引,用于执行以下操作:
获取第j个分辨率层中的候选体素的体素顶点a所对应的顶点位置信息,以及获取D个空间维度对应的哈希编码权重;D为正整数;
将体素顶点a对应的顶点位置信息中所包含的D个维度坐标,与D个空间维度对应的哈希编码权重进行相乘,得到体素顶点a在D个空间维度上的加权坐标;
对体素顶点a在D个空间维度上的加权坐标进行异或运算,得到异或运算结果,获取第j个分辨率层对应的哈希表的表尺寸,将异或运算结果对表尺寸的取余结果,确定为体素顶点a对应的体素顶点索引。
在一个或多个实施例中,该渲染处理装置1还包括:哈希表创建模块15;
哈希表创建模块15,用于为待渲染场景设置L个分辨率层,获取L个分辨率层分别对应的体素尺寸;
哈希表创建模块15,还用于根据L个分辨率层分别对应的体素尺寸,对待渲染场景进行L次体素化处理,得到每一个分辨率层中的多个体素;
哈希表创建模块15,还用于对第j个分辨率层中的多个体素对应的顶点位置信息进行哈希运算,得到第j个分辨率层中的多个体素对应的体素顶点索引;
哈希表创建模块15,还用于获取第j个分辨率层中的多个体素的体素顶点所对应的特征向量,将第j个分辨率层中的多个体素的体素顶点对应的体素顶点索引和特征向量封装为键值对结构,得到第j个分辨率层对应的哈希表。
在一个或多个实施例中,哈希表创建模块15获取L个分辨率层分别对应的体素尺寸,用于执行以下步骤:
获取L个分辨率层中的最小分辨率和最大分辨率,根据最小分辨率和最大分辨率确定分辨率增长因子;
将最小分辨率与分辨率增长因子的j次方之间的乘积进行向下取整,得到第j个分辨率层对应的体素尺寸。
在一个或多个实施例中,哈希表创建模块15获取第j个分辨率层中的多个体素的体素顶点所对应的特征向量,用于执行以下步骤:
获取第j个分辨率层中的多个体素的体素顶点c所对应的粗糙度、射线信息以及法线信息,将体素顶点c对应的粗糙度、射线信息以及法线信息确定为体素顶点c的几何特征;
将体素顶点c对应的漫反射和镜面反射,确定为体素顶点c的光照特征,将几何特征和光照特征,确定为体素顶点c对应的特征向量。
在一个或多个实施例中,插值处理模块13对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量,用于执行以下步骤:
根据采样点对应的采样位置信息,以及第j个分辨率层中的候选体素对应的顶点坐标信息,获取采样点在第j个分辨率层的候选体素内的D个局部坐标参数;D为正整数;
根据D个局部坐标参数,对第j个分辨率层中的候选体素对应的顶点特征向量进行双线性插值处理,得到采样点在第j个分辨率层中的采样特征向量。
在一个或多个实施例中,插值处理模块13对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量,用于执行以下步骤:
对第j个分辨率层中的候选体素对应的顶点坐标信息进行归一化处理,得到第j个分辨率层中的候选体素对应的归一化坐标信息;
根据插值函数和第j个分辨率层中的候选体素对应的归一化坐标信息,获取采样点在D个空间维度上的坐标权重;D为正整数;
根据D个空间维度上的坐标权重,对第j个分辨率层中的候选体素对应的顶点特征向量进行加权平均处理,得到采样点在第j个分辨率层中的采样特征向量。
在一个或多个实施例中,辐射缓存输出模块14获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,用于执行以下步骤:
将采样点对应的粗糙度、射线信息、法线信息、漫反射以及镜面反射,确定为采样点对应的辅助特征;
按照分辨率升序的顺序,对采样点在各个分辨率层中的采样特征向量进行连接,得到采样连接特征,将采样连接特征和辅助特征连接为采样点对应的编码特征。
在一个或多个实施例中,辐射缓存输出模块14根据编码特征确定采样点对应的辐射缓存结果,用于执行以下步骤:
将编码特征输入至神经网络模型,根据神经网络模型中的N个子网络对应的权重矩阵,对编码特征进行特征变换处理,得到采样点对应的辐射缓存结果;N为正整数。
根据本申请的一种实施例,前文图3所示的渲染处理方法所涉及的步骤可以由图8所示的渲染处理装置1中的各个模块来执行。例如,图3所示的步骤S101可由图8所示的体素确定模块11来执行,图3所示的步骤S102可由图8所示的特征查找模块12来执行,图3所示的步骤S103可由图8所示的插值处理模块13来执行,图3所示的步骤S104可由图8所示的辐射缓存输出模块14来执行等。
根据本申请的一个实施例,图8所示的渲染处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的至少两个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由至少两个单元来实现,或者至少两个模块的功能由一个单元实现。在本申请的其它实施例中,渲染处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由至少两个单元协作实现。
本申请实施例中,对于待渲染场景中的采样点,可以确定该采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引,根据体素顶点索引,在各个分辨率层对应的哈希表中获取各个候选体素对应的顶点特征向量进行插值处理,得到该采样点在L个分辨率层中的采样特征向量。对采样点在每一个分辨率层中的采样特征向量进行连接,再加上该采样点对应的辅助特征,作为该采样点对应的编码特征,由此得到的编码特征可以包含更多有效的位置信息;基于该编码特征确定该采样点对应的辐射缓存结果,可以提高辐射缓存结果的准确性,进而提高场景渲染效果。
请参见图9,图9是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,该计算机设备1000可以为终端设备,例如,上述图1所对应实施例中的终端设备10a,还可以为服务器,例如,上述图1所对应实施例中的服务器10d,这里将不对其进行限制。为便于理解,本申请以计算机设备为终端设备为例,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
其中,该计算机设备1000中的网络接口1004还可以提供网络通讯功能,且可选用户接口1003还可以包括显示屏(Display)、键盘(Keyboard)。在图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取待渲染场景中的采样点,确定采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数;
根据第j个分辨率层中的候选体素对应的体素顶点索引,在第j个分辨率层对应的哈希表中,获取第j个分辨率层中的候选体素对应的顶点特征向量;第j个分辨率层对应的哈希表中包括第j个分辨率层中的各个体素的体素顶点所对应的特征向量,j为小于或等于L的正整数;
对第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到采样点在第j个分辨率层中的采样特征向量;
获取采样点对应的辅助特征,对辅助特征和采样点在各个分辨率层中的采样特征向量进行连接,得到采样点对应的编码特征,根据编码特征确定采样点对应的辐射缓存结果。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3、图5中任一个实施例中对渲染处理方法的描述,也可执行前文图8所对应实施例中对渲染处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的渲染处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3、图5中任一个实施例中对渲染处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。其中,存储介质可以为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3、图5中任一个实施例中对渲染处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同媒体内容,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (14)

1.一种渲染处理方法,其特征在于,包括:
获取待渲染场景中的采样点,确定所述采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数;
根据第j个分辨率层中的候选体素对应的体素顶点索引,在所述第j个分辨率层对应的哈希表中,获取所述第j个分辨率层中的候选体素对应的顶点特征向量;所述第j个分辨率层对应的哈希表中包括所述第j个分辨率层中的各个体素的体素顶点所对应的特征向量,j为小于或等于L的正整数;
对所述第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到所述采样点在所述第j个分辨率层中的采样特征向量;
获取所述采样点对应的辅助特征,对所述辅助特征和所述采样点在各个分辨率层中的采样特征向量进行连接,得到所述采样点对应的编码特征,根据所述编码特征确定所述采样点对应的辐射缓存结果。
2.根据权利要求1所述的方法,其特征在于,所述获取待渲染场景中的采样点,确定所述采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引,包括:
获取待渲染场景中的采样点对应的采样位置信息,根据所述采样位置信息与L个分辨率层中的各个体素的体素顶点所对应的顶点位置信息,在所述L个分辨率层的每一个分辨率层中确定所述采样点所属的候选体素;
对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素对应的体素顶点索引。
3.根据权利要求2所述的方法,其特征在于,所述对每一个分辨率层中的候选体素所对应的顶点位置信息进行哈希运算,得到各个分辨率层中的候选体素对应的体素顶点索引,包括:
获取第j个分辨率层中的候选体素的体素顶点a所对应的顶点位置信息,以及获取D个空间维度对应的哈希编码权重;D为正整数;
将所述体素顶点a对应的顶点位置信息中所包含的D个维度坐标,与所述D个空间维度对应的哈希编码权重进行相乘,得到所述体素顶点a在所述D个空间维度上的加权坐标;
对所述体素顶点a在所述D个空间维度上的加权坐标进行异或运算,得到异或运算结果,获取所述第j个分辨率层对应的哈希表的表尺寸,将所述异或运算结果对所述表尺寸的取余结果,确定为所述体素顶点a对应的体素顶点索引。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述待渲染场景设置L个分辨率层,获取所述L个分辨率层分别对应的体素尺寸;
根据所述L个分辨率层分别对应的体素尺寸,对所述待渲染场景进行L次体素化处理,得到每一个分辨率层中的多个体素;
对第j个分辨率层中的多个体素对应的顶点位置信息进行哈希运算,得到所述第j个分辨率层中的多个体素对应的体素顶点索引;
获取所述第j个分辨率层中的多个体素的体素顶点所对应的特征向量,将所述第j个分辨率层中的多个体素的体素顶点对应的体素顶点索引和特征向量封装为键值对结构,得到所述第j个分辨率层对应的哈希表。
5.根据权利要求4所述的方法,其特征在于,所述获取所述L个分辨率层分别对应的体素尺寸,包括:
获取所述L个分辨率层中的最小分辨率和最大分辨率,根据所述最小分辨率和所述最大分辨率确定分辨率增长因子;
将所述最小分辨率与所述分辨率增长因子的j次方之间的乘积进行向下取整,得到所述第j个分辨率层对应的体素尺寸。
6.根据权利要求4所述的方法,其特征在于,所述获取所述第j个分辨率层中的多个体素的体素顶点所对应的特征向量,包括:
获取所述第j个分辨率层中的多个体素的体素顶点c所对应的粗糙度、射线信息以及法线信息,将所述体素顶点c对应的粗糙度、射线信息以及法线信息确定为所述体素顶点c的几何特征;
将所述体素顶点c对应的漫反射和镜面反射,确定为所述体素顶点c的光照特征,将所述几何特征和所述光照特征,确定为所述体素顶点c对应的特征向量。
7.根据权利要求1所述的方法,其特征在于,所述对所述第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到所述采样点在所述第j个分辨率层中的采样特征向量,包括:
根据所述采样点对应的采样位置信息,以及所述第j个分辨率层中的候选体素对应的顶点坐标信息,获取所述采样点在所述第j个分辨率层的候选体素内的D个局部坐标参数;D为正整数;
根据所述D个局部坐标参数,对所述第j个分辨率层中的候选体素对应的顶点特征向量进行双线性插值处理,得到所述采样点在所述第j个分辨率层中的采样特征向量。
8.根据权利要求1所述的方法,其特征在于,所述对所述第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到所述采样点在所述第j个分辨率层中的采样特征向量,包括:
对所述第j个分辨率层中的候选体素对应的顶点坐标信息进行归一化处理,得到所述第j个分辨率层中的候选体素对应的归一化坐标信息;
根据插值函数和所述第j个分辨率层中的候选体素对应的归一化坐标信息,获取所述采样点在D个空间维度上的坐标权重;D为正整数;
根据所述D个空间维度上的坐标权重,对所述第j个分辨率层中的候选体素对应的顶点特征向量进行加权平均处理,得到所述采样点在第j个分辨率层中的采样特征向量。
9.根据权利要求1所述的方法,其特征在于,所述获取所述采样点对应的辅助特征,对所述辅助特征和所述采样点在各个分辨率层中的采样特征向量进行连接,得到所述采样点对应的编码特征,包括:
将所述采样点对应的粗糙度、射线信息、法线信息、漫反射以及镜面反射,确定为所述采样点对应的辅助特征;
按照分辨率升序的顺序,对所述采样点在各个分辨率层中的采样特征向量进行连接,得到采样连接特征,将所述采样连接特征和所述辅助特征连接为所述采样点对应的编码特征。
10.根据权利要求1所述的方法,其特征在于,所述根据所述编码特征确定所述采样点对应的辐射缓存结果,包括:
将所述编码特征输入至神经网络模型,根据所述神经网络模型中的N个子网络对应的权重矩阵,对所述编码特征进行特征变换处理,得到所述采样点对应的辐射缓存结果;N为正整数。
11.一种渲染处理装置,其特征在于,包括:
体素确定模块,用于获取待渲染场景中的采样点,确定所述采样点在L个分辨率层中所属的候选体素,获取各个分辨率层中的候选体素对应的体素顶点索引;L为正整数;
特征查找模块,用于根据第j个分辨率层中的候选体素对应的体素顶点索引,在所述第j个分辨率层对应的哈希表中,获取所述第j个分辨率层中的候选体素对应的顶点特征向量;所述第j个分辨率层对应的哈希表中包括所述第j个分辨率层中的各个体素的体素顶点所对应的特征向量,j为小于或等于L的正整数;
插值处理模块,用于对所述第j个分辨率层中的候选体素对应的顶点特征向量进行线性插值处理,得到所述采样点在所述第j个分辨率层中的采样特征向量;
辐射缓存输出模块,用于获取所述采样点对应的辅助特征,对所述辅助特征和所述采样点在各个分辨率层中的采样特征向量进行连接,得到所述采样点对应的编码特征,根据所述编码特征确定所述采样点对应的辐射缓存结果。
12.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至10任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至10任一项所述的方法。
14.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至10任一项所述的方法。
CN202410095187.1A 2024-01-24 2024-01-24 渲染处理方法、装置、设备以及介质 Active CN117611727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410095187.1A CN117611727B (zh) 2024-01-24 2024-01-24 渲染处理方法、装置、设备以及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410095187.1A CN117611727B (zh) 2024-01-24 2024-01-24 渲染处理方法、装置、设备以及介质

Publications (2)

Publication Number Publication Date
CN117611727A true CN117611727A (zh) 2024-02-27
CN117611727B CN117611727B (zh) 2024-05-10

Family

ID=89953913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410095187.1A Active CN117611727B (zh) 2024-01-24 2024-01-24 渲染处理方法、装置、设备以及介质

Country Status (1)

Country Link
CN (1) CN117611727B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115147577A (zh) * 2022-09-06 2022-10-04 深圳市明源云科技有限公司 Vr场景生成方法、装置、设备及存储介质
CN115546373A (zh) * 2022-10-24 2022-12-30 中山大学 一种基于FPGA和多分辨率哈希编码算法的NeRF渲染器及渲染方法
CN115701613A (zh) * 2021-08-02 2023-02-10 辉达公司 用于神经网络的多分辨率散列编码
CN115937394A (zh) * 2022-12-05 2023-04-07 百果园技术(新加坡)有限公司 一种基于神经辐射场的三维图像渲染方法及系统
CN116503551A (zh) * 2023-04-14 2023-07-28 海尔数字科技(上海)有限公司 一种三维重建方法及装置
CN116778063A (zh) * 2023-05-31 2023-09-19 南京邮电大学 一种基于特征纹理网格和哈希编码的快速虚拟视点合成方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115701613A (zh) * 2021-08-02 2023-02-10 辉达公司 用于神经网络的多分辨率散列编码
US20230052645A1 (en) * 2021-08-02 2023-02-16 Nvidia Corporation Multiresolution hash encoding for neural networks
CN115147577A (zh) * 2022-09-06 2022-10-04 深圳市明源云科技有限公司 Vr场景生成方法、装置、设备及存储介质
CN115546373A (zh) * 2022-10-24 2022-12-30 中山大学 一种基于FPGA和多分辨率哈希编码算法的NeRF渲染器及渲染方法
CN115937394A (zh) * 2022-12-05 2023-04-07 百果园技术(新加坡)有限公司 一种基于神经辐射场的三维图像渲染方法及系统
CN116503551A (zh) * 2023-04-14 2023-07-28 海尔数字科技(上海)有限公司 一种三维重建方法及装置
CN116778063A (zh) * 2023-05-31 2023-09-19 南京邮电大学 一种基于特征纹理网格和哈希编码的快速虚拟视点合成方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANDREAS ENGELHARDT 等: "SHINOBI: Shape and Illumination using Neural Object Decomposition via BRDF Optimization In-the-wild", pages 1 - 16, Retrieved from the Internet <URL:https://arxiv.org/abs/2401.10171> *
THOMAS MÜLLER 等: "Instant Neural Graphics Primitives with a Multiresolution Hash Encoding", pages 1 - 15, XP059129619, Retrieved from the Internet <URL:https://arxiv.org/abs/2201.05989> DOI: 10.1145/3528223.3530127 *
THOMAS MÜLLER 等: "Real-time Neural Radiance Caching for Path Tracing", pages 1 - 16, XP059134642, Retrieved from the Internet <URL:https://arxiv.org/abs/2106.12372> DOI: 10.1145/3450626.3459812 *

Also Published As

Publication number Publication date
CN117611727B (zh) 2024-05-10

Similar Documents

Publication Publication Date Title
AU2017248506B2 (en) Implementation of an advanced image formation process as a network layer and its applications
KR20230156105A (ko) 고해상도 신경 렌더링
CN112755535B (zh) 光照渲染方法、装置、存储介质及计算机设备
CN115100339A (zh) 图像生成方法、装置、电子设备和存储介质
CN115797606B (zh) 基于深度学习的3d虚拟数字人交互动作生成方法及系统
CN117280387A (zh) 用于光线和路径追踪的位移微网格
CN114792359B (zh) 渲染网络训练和虚拟对象渲染方法、装置、设备及介质
CN110458924B (zh) 一种三维脸部模型建立方法、装置和电子设备
CN114119853B (zh) 图像渲染方法、装置、设备和介质
CN116824092B (zh) 三维模型生成方法、装置、计算机设备和存储介质
JP2023512721A (ja) 3次元オブジェクトの多角形メッシュの生成のための自己回帰ニューラルネットワーク
CN115578393A (zh) 关键点检测方法、训练方法、装置、设备、介质及产品
CN117218300B (zh) 三维模型的构建方法、三维构建模型的训练方法及装置
CN113298931B (zh) 一种物体模型的重建方法、装置、终端设备和存储介质
CN115984440B (zh) 对象渲染方法、装置、计算机设备和存储介质
CN116152419B (zh) 数据处理方法、装置、设备及存储介质
CN116385622B (zh) 云图处理方法、装置、计算机及可读存储介质
Ge et al. Interactive simulation of scattering effects in participating media using a neural network model
CN117611727B (zh) 渲染处理方法、装置、设备以及介质
CN115953524B (zh) 一种数据处理方法、装置、计算机设备及存储介质
Liu et al. Neural impostor: Editing neural radiance fields with explicit shape manipulation
CN110084845A (zh) 变形预测方法、装置及计算机可读存储介质
CN111915701B (zh) 一种基于人工智能的按钮图像生成方法和装置
CN114333069A (zh) 对象的姿态处理方法、装置、设备及存储介质
Aman et al. Multi‐level tetrahedralization‐based accelerator for ray‐tracing animated 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
GR01 Patent grant
GR01 Patent grant