CN117523062B - 光照效果的预览方法、装置、设备及存储介质 - Google Patents
光照效果的预览方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117523062B CN117523062B CN202410017515.6A CN202410017515A CN117523062B CN 117523062 B CN117523062 B CN 117523062B CN 202410017515 A CN202410017515 A CN 202410017515A CN 117523062 B CN117523062 B CN 117523062B
- Authority
- CN
- China
- Prior art keywords
- illumination
- irradiance
- map
- plug
- parameters
- 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.)
- Active
Links
- 238000005286 illumination Methods 0.000 title claims abstract description 253
- 238000000034 method Methods 0.000 title claims abstract description 116
- 230000000694 effects Effects 0.000 title claims abstract description 76
- 238000009877 rendering Methods 0.000 claims abstract description 198
- 238000013507 mapping Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims description 67
- 230000006870 function Effects 0.000 claims description 53
- 230000003993 interaction Effects 0.000 claims description 12
- 239000000463 material Substances 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 208000022372 Reading disease Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 206010013932 dyslexia Diseases 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001795 light effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- 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/06—Ray-tracing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种光照效果的预览方法、装置、设备及存储介质,属于图像处理技术领域。该方法包括:基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,光照渲染参数由图形引擎提供,图形引擎无法调用硬件光线追踪功能;通过图形引擎获取辐照度贴图对应的着色器资源视图,着色器资源视图用于实现插件与图形引擎之间的贴图数据共享;基于着色器资源视图,通过图形引擎进行全局光照,生成光照渲染图像;在图形预览窗口中展示光照渲染图像。采用本申请实施例提供的方案,能够实现在低性能版本的图形引擎中对光照渲染参数表征的光照环境中相机视角下目标场景的光照效果进行预览,降低了预览光照效果的门槛。
Description
技术领域
本申请实施例涉及图像处理技术领域,特别涉及一种光照效果的预览方法、装置、设备及存储介质。
背景技术
实时全局光照渲染方案是游戏开发中的重点问题,手机游戏受限于设备性能多数选择预计算(烘焙)的方式。
相关技术中,在游戏场景开发环节,通常使用高性能版本引擎,并通过引擎内置的硬件光线追踪功能来实现实时全局光照预览,从而通过不断调整光源的位置、角度、强度、颜色等等,确定最终应用于游戏场景内的光源参数。而到游戏应用环节,通常是基于确定的光源参数,通过预计算的方式生成烘焙贴图,并应用于玩家终端的游戏场景内,从而导致烘焙效果与开发过程中实时预览效果存在较大差异,影响玩家体验。
发明内容
本申请实施例提供了一种光照效果的预览方法、装置、设备及存储介质,能够实现在低性能版本的图形引擎中对光照效果进行预览。所述技术方案如下。
一方面,本申请实施例提供了一种光照效果的预览方法,所述方法包括:
基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,所述辐照度贴图用于表征相机视角下各个像素点对应的辐照度,所述光照渲染参数由图形引擎提供,所述图形引擎无法调用所述硬件光线追踪功能;
通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,所述着色器资源视图为所述插件基于所述辐照度贴图创建,所述着色器资源视图用于实现所述插件与所述图形引擎之间的贴图数据共享;
基于所述着色器资源视图,通过所述图形引擎进行全局光照,生成光照渲染图像;
在图形预览窗口中展示所述光照渲染图像,所述图形预览窗口用于实时预览所述光照渲染参数表征的光照环境中所述相机视角下目标场景的光照效果。
另一方面,本申请实施例提供了一种光照效果的预览装置,所述装置包括:
贴图生成模块,用于基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,所述辐照度贴图用于表征相机视角下各个像素点对应的辐照度,所述光照渲染参数由图形引擎提供,所述图形引擎无法调用所述硬件光线追踪功能;
视图获取模块,用于通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,所述着色器资源视图为所述插件基于所述辐照度贴图创建,所述着色器资源视图用于实现所述插件与所述图形引擎之间的贴图数据共享;
图像生成模块,用于基于所述着色器资源视图,通过所述图形引擎进行全局光照,生成光照渲染图像;
图像展示模块,用于在图形预览窗口中展示所述光照渲染图像,所述图形预览窗口用于实时预览所述光照渲染参数表征的光照环境中所述相机视角下目标场景的光照效果。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条计算机指令,所述至少一条计算机指令用于被所述处理器执行以实现如上述方面所述的光照效果的预览方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条计算机指令由处理器加载并执行以实现如上述方面所述的光照效果的预览方法。
另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如上述方面所述的光照效果的预览方法。
本申请实施例中,对于无法调用硬件光线追踪功能的图形引擎,通过可以调用硬件光线追踪功能的插件,根据图形引擎提供的光照渲染参数生成辐照度贴图,进而再由图形引擎获取该辐照度贴图对应的着色器资源视图,并根据该着色器资源视图进行全局光照,生成光照渲染图像,从而在图形预览窗口中展示该光照渲染图像,可以实现在低性能版本的图形引擎中对光照渲染参数表征的光照环境中相机视角下目标场景的光照效果进行预览,降低了预览光照效果的门槛。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的实施环境的示意图;
图2示出了本申请一个示例性实施例提供的光照效果的预览方法的流程图;
图3示出了本申请另一个示例性实施例提供的光照效果的预览方法的流程图;
图4示出了本申请一个示例性实施例提供的插件和图形引擎之间的数据交互示意图;
图5示出了本申请一个示例性实施例提供的利用进程栅栏标记渲染进程的数据交互示意图;
图6示出了本申请一个示例性实施例提供的存在多个图形预览窗口时插件和图形引擎之间的数据交互示意图;
图7示出了本申请又一个示例性实施例提供的光照效果的预览方法的流程图;
图8示出了本申请一个示例性实施例提供的光照渲染效果预览示意图;
图9示出了本申请一个示例性实施例提供的光照效果的预览装置的结构框图;
图10示出了本申请一个示例性实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境中包括终端120。其中,终端120是安装有支持硬件光线追踪(Hardware Raytracing)的显卡的计算机设备,并且计算机设备中安装有具有光照渲染功能的插件和图形引擎,且插件能够调用硬件光线追踪功能,图形引擎无法调用硬件光线追踪功能。
可选的,插件和图形引擎可以为终端120中的原生应用,也可以是第三方应用。该终端120可以是智能手机、平板电脑、笔记本电脑、台式电脑、智能电视、可穿戴式设备或车载终端等等,图1中,以终端120为台式电脑为例进行说明,但并不对此构成限定。
在一种可能的实施方式下,如图1所示,终端120中插件121和图形引擎122之间存在数据交互。响应于图形引擎122内的参数设置操作,终端120获取光照渲染参数,并通过插件121获取该光照渲染参数,从而通过插件121调用硬件光线追踪功能,生成辐照度贴图,并根据该辐照度贴图生成着色器资源视图,进而终端120通过图形引擎122获取该着色器资源视图,并根据该着色器资源视图进行全局光照,从而生成光照渲染图像,最终在图形引擎122中的图形预览窗口中展示该光照渲染图像。
请参考图2,其示出了本申请一个示例性实施例提供的光照效果的预览方法的流程图,本实施例以该方法用于计算机设备为例进行说明,该计算机设备可以是图1所示的终端120,该方法包括如下步骤。
步骤201,基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,辐照度贴图用于表征相机视角下各个像素点对应的辐照度,光照渲染参数由图形引擎提供,图形引擎无法调用硬件光线追踪功能。
可选的,光照渲染参数指在对目标场景进行光照渲染的过程中所需的参数,包括场景参数、光照参数、相机参数等。其中,场景参数包括目标场景内各个虚拟物体的物体信息以及位置坐标等,光照参数包括虚拟光源的位置、方向、光源类型以及光照强度等,相机参数包括相机位置、朝向、视野、投影矩阵等。
可选的,硬件光线追踪功能是指通过追踪光线在目标场景中的相互反射、折射和散射过程,计算光线与虚拟物体之间的相互作用的功能。
相关技术中,在虚拟场景创建过程中,开发人员通常是使用高性能版本的图形引擎直接调用硬件光线追踪功能,进行光线追踪和光照渲染,而为了能够在低性能版本的图形引擎(比如Unity5.6版本)中查看光照渲染效果,则只能通过预计算生成烘焙贴图的方式,从而导致光照效果预览门槛较高。而本申请实施例中,通过设置能够调用硬件光线追踪功能的插件,直接利用该插件调用硬件光线追踪功能,以解决低性能版本图形引擎无法调用硬件光线追踪功能的问题。
在一些实施例中,计算机设备可以通过插件调用硬件光线追踪功能,从而根据由图形引擎提供的光照渲染参数,生成辐照度贴图,其中,辐照度贴图用于表征目标场景中相机视角下各个像素点对应的辐照度,辐照度是指每单位面积入射到像素点的辐射通量。
步骤202,通过图形引擎获取辐照度贴图对应的着色器资源视图,着色器资源视图为插件基于辐照度贴图创建,着色器资源视图用于实现插件与图形引擎之间的贴图数据共享。
在一些实施例中,在利用能够调用硬件光线追踪功能的插件生成辐照度贴图之后,为了能够在图形引擎中展示光照渲染效果,计算机设备还需要通过图形引擎获取各个像素点的辐照度。
在一些实施例中,为了能够实现插件与图形引擎之间的贴图数据共享,计算机设备可以通过插件根据辐照度贴图创建对应的着色器资源视图(Shader Resource View,SRV),从而通过该着色器资源视图实现插件与图形引擎之间的贴图数据共享。
在一种可能的实施方式中,在生成辐照度贴图之后,计算机设备即通过插件创建辐照度贴图对应的着色器资源视图,并通过图形引擎获取该着色器资源视图,从而使得图形引擎可以获取到各个像素点对应的辐照度。
步骤203,基于着色器资源视图,通过图形引擎进行全局光照,生成光照渲染图像。
在一些实施例中,在获取到辐照度贴图对应的着色器资源视图之后,计算机设备即可以通过图形引擎确定相机视角下各个像素点对应的辐照度,从而通过图形引擎根据各个像素点对应的辐照度进行全局光照,生成光照渲染图像。
在一种可能的实施方式中,为了预览相机视角下局部区域的光照效果,计算机设备还可以通过图形引擎根据各个像素点对应的辐照度进行局部光照,从而生成光照渲染图像。
步骤204,在图形预览窗口中展示光照渲染图像,图形预览窗口用于实时预览光照渲染参数表征的光照环境中相机视角下目标场景的光照效果。
在一些实施例中,为了便于对光照渲染效果进行预览,图形引擎中通常设置有图形预览窗口,通过该图形预览窗口即可以实时预览光照渲染参数表征的光照环境中相机视角下目标场景的光照效果,从而在生成光照渲染图像之后,计算机设备即可以在图形引擎内的图形预览窗口中展示该光照渲染图像。
在一种可能的实施方式中,计算机设备还可以根据目标场景对应的不同相机视角,在图形引擎中设置多个图形预览窗口,从而使得不同图形预览窗口对应不同相机视角,在不同图形预览窗口实现对不同相机视角下目标场景的光照效果进行预览。
综上所述,本申请实施例中,对于无法调用硬件光线追踪功能的图形引擎,通过可以调用硬件光线追踪功能的插件,根据图形引擎提供的光照渲染参数生成辐照度贴图,进而再由图形引擎获取该辐照度贴图对应的着色器资源视图,并根据该着色器资源视图进行全局光照,生成光照渲染图像,从而在图形预览窗口中展示该光照渲染图像,可以实现在低性能版本的图形引擎中对光照渲染参数表征的光照环境中相机视角下目标场景的光照效果进行预览,降低了预览光照效果的门槛。
在一些实施例中,为了能够实现基于插件和图形引擎的光照渲染效果预览,计算机设备还需要进一步优化插件和图形引擎之间的贴图数据共享过程。
请参考图3,其示出了本申请另一个示例性实施例提供的光照效果的预览方法的流程图,本实施例以该方法用于计算机设备为例进行说明,该计算机设备可以是图1所示的终端120,该方法包括如下步骤。
步骤301,基于相机参数以及场景参数,创建图形上下文,图形上下文用于存储插件中生成的渲染数据。
在一些实施例中,为了能够在插件中生成辐照度贴图,计算机设备首先需要通过插件获取图形引擎中开发人员设置的光照渲染参数,进而根据相机参数以及场景参数,在插件中创建对应的图形上下文(Graphics Context),该图形上下文用于存储插件中生成的渲染数据。
在一种可能的实施方式中,计算机设备在接收到开发人员在图形引擎内设置的光照渲染参数之后,将光照渲染参数存储至显存中,进而通过插件从显存中读取光照渲染参数。在获取光照渲染参数之后,计算机设备即可以通过创建指令队列、交换链以及渲染目标视图,在插件中构建图形上下文,并设置着色器、渲染管道状态以及纹理等资源,进而将相机参数以及场景参数提交至图形上下文。
步骤302,基于光源参数以及各个像素点对应的空间坐标,生成各个像素点对应的虚拟光线。
在一些实施例中,在创建图形上下文之后,计算机设备即可以根据光源参数以及各个像素点在屏幕空间内对应的空间坐标,从每个像素点发射一条沿着视线方向的射线,即生成各个像素点对应的虚拟光线。
步骤303,通过计算虚拟光线和目标场景中各个虚拟对象的相互作用,确定各个像素点对应的辐照度。
在一些实施例中,在生成各个像素点对应的虚拟光线之后,计算机设备即可以通过在插件中调用硬件光线追踪功能,追踪各条虚拟光线在目标场景中的相互反射、折射和散射过程,从而通过计算虚拟光线和目标场景中各个虚拟对象之间的相互作用,确定各个像素点对应的辐照度。
步骤304,基于图形上下文以及各个像素点对应的辐照度,生成辐照度贴图。
在一些实施例中,在确定各个像素点对应的辐照度之后,计算机设备即可以根据相机参数,将目标场景中相机视角下的各个像素点对应的辐照度添加至图形上下文中,从而生成辐照度贴图。
步骤305,通过插件获取图形引擎对应的图形接口以及逻辑设备,不同应用程序对应不同的图形接口和逻辑设备。
在一些实施例中,由于辐照度贴图是通过插件调用硬件光线追踪功能生成的,而光照预览效果是通过图形引擎向开发人员展示的,因此为了实现插件和图形引擎之间的贴图数据共享,在生成辐照度贴图之后,计算机设备还需要通过插件获取图形引擎对应的图形接口(Graphics API)和逻辑设备(Device)。
可选的,不同应用程序对应有不同的图形接口和逻辑设备,其中,逻辑设备是指应用程序中用于请求I/O服务的设备,不同于系统在实际执行过程中使用的物理设备。
步骤306,通过插件将辐照度贴图对应的共享句柄转移至逻辑设备。
在一些实施例中,为了能够使得图形引擎获取到插件中的贴图数据,计算机设备还需要通过插件将辐照度贴图对应的共享句柄(Shared Handle)转移至图形引擎对应的逻辑设备下。
在一种可能的实施方式中,考虑到可能存在多个低性能版本的图形引擎需要从插件中获取辐照度贴图数据,因此为了允许不同线程或应用程序在渲染过程中直接访问辐照度贴图数据,便于实时更新且不产生冲突,在通过插件生成辐照度贴图之后,在将共享句柄转移至逻辑设备之前,计算机设备还可以将辐照度贴图设置为图形库资源,并为辐照度贴图设置第一共享标识以及第二共享标识。
可选的,第一共享标识用于指示允许其他应用程序对辐照度贴图进行访问,第二共享标识用于指示允许多个应用程序同时访问辐照度贴图。
示意性的,在图形API为Direct3D 12的情况下,计算机设备即可以将辐照度贴图创建为Direct3D 12的图形库资源,并为辐照度贴图设置D3D12_HEAP_FLAG_SHARED(指示允许其他应用程序对辐照度贴图进行访问)和 D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS(指示允许多个应用程序同时访问辐照度贴图)标识。
步骤307,基于辐照度贴图,通过插件创建图形接口下的着色器资源视图。
进一步的,为了实现通过图形引擎对贴图数据进行读取,在将辐照度贴图对应的共享句柄转移至图形引擎对应的逻辑设备之后,计算机设备还需要通过插件在图形引擎对应的图形接口下创建辐照度贴图对应的着色器资源视图,从而使得贴图数据可以在着色器程序中被图形引擎高效地读取和采样。
步骤308,基于共享句柄,通过图形引擎获取辐照度贴图对应的着色器资源视图。
在一些实施例中,在通过插件创建辐照度贴图对应的着色器资源视图之后,计算机设备即可以根据转移至图形引擎对应逻辑设备下的共享句柄,通过图形引擎获取着色器资源视图。
步骤309,基于着色器资源视图,通过图形引擎创建外部纹理,外部纹理中包括辐照度贴图内各个像素点对应的辐照度。
在一些实施例中,在图形引擎获取到着色器资源视图之后,为了能够在图形预览窗口中向开发人员展示光照预览效果,计算机设备还需要先获取到着色器资源视图中的贴图数据。
在一种可能的实施方式中,计算机设备可以根据着色器资源视图,通过图形引擎创建外部纹理(External Texture),从而在外部纹理中存储辐照度贴图内各个像素点对应的辐照度。
可选的,创建外部纹理的过程可以包括分配纹理对象、设置合适的尺寸、格式和细节等级等,本申请实施例对此不作限定。
步骤310,将外部纹理设置为目标场景的材质球对应的光照贴图。
进一步的,为了能够将外部纹理应用于具体的虚拟对象上,计算机设备还需要将创建的外部纹理赋予给图形材质(Material),并将外部纹理设置为目标场景的材质球对应的光照贴图。
步骤311,基于屏幕坐标对外部纹理进行采样,确定屏幕空间内各个像素点对应的辐照度。
在一些实施例中,为了能够在图形预览窗口中预览光照渲染效果,计算机设备还需要根据屏幕坐标对外部纹理进行采样,从而获取屏幕空间内各个像素点对应的辐照度。
在一种可能的实施方式中,为了提高纹理质量,在进行纹理采样的过程中,计算机设备还可以通过双线性、三线性或各向异性过滤等滤波技术先对外部纹理进行滤波处理,再通过纹理采样确定各个像素点对应的辐照度。
步骤312,基于屏幕空间内各个像素点对应的辐照度,通过全局光照生成光照渲染图像。
在一些实施例中,在得到屏幕空间内各个像素点对应的辐照度之后,计算机设备即可以根据各个像素点对应的辐照度,进行全局光照计算,确定各个像素点对应的光照信息,从而生成光照渲染图像。
步骤313,在图形预览窗口中展示光照渲染图像,图形预览窗口用于实时预览光照渲染参数表征的光照环境中相机视角下目标场景的光照效果。
在一些实施例中,为了便于对光照渲染效果进行预览,图形引擎中通常设置有图形预览窗口,通过该图形预览窗口即可以实时预览光照渲染参数表征的光照环境中相机视角下目标场景的光照效果,从而在生成光照渲染图像之后,计算机设备即可以在图形引擎内的图形预览窗口中展示该光照渲染图像。
示意性的,如图4所示,图形引擎402内设置有图形预览窗口403,响应于开发人员在图形预览窗口403内的参数设置操作,计算机设备获取光照渲染参数,并通过插件401从图形引擎402中读取该光照渲染参数,从而通过插件401调用硬件光线追踪功能,生成辐照度贴图,并创建辐照度贴图对应的着色器资源视图,进而计算机设备通过图形引擎402获取该着色器资源视图,并基于着色器资源视图创建外部纹理,从而通过将外部纹理赋予材质,并进行纹理采样,得到屏幕空间内各个像素点对应的辐照度,进而通过全局光照渲染,生成光照渲染图像,并在图形预览窗口403内展示该光照渲染图像。
在一种可能的实施方式中,计算机设备还可以根据目标场景对应的不同相机视角,在图形引擎中设置多个图形预览窗口,从而使得不同图形预览窗口对应不同相机视角,在不同图形预览窗口实现对不同相机视角下目标场景的光照效果进行预览。
上述实施例中,通过在插件中根据由图形引擎提供的光照渲染参数,调用硬件光线追踪功能,生成辐照度贴图,进而将贴图数据通过着色器资源视图共享给图形引擎,由图形引擎根据着色器资源视图创建外部纹理,通过纹理采样得到屏幕空间内各个像素点对应的辐照度,并通过全局光照生成光照渲染图像,实现了在低性能版本的图形引擎中根据插件提供的贴图数据进行光照效果预览,降低了光照效果预览门槛。
此外,通过将辐照度贴图设置为图形库资源,并为辐照度贴图设置共享标识,并通过插件在图形引擎对应的图形接口下创建着色器资源视图,实现了允许不同线程在渲染过程中直接访问贴图数据且不产生冲突,提高了图形引擎对贴图数据的读取效率,优化了插件和图形引擎之间的数据共享流程。
在一些实施例中,考虑到开发人员通过图形引擎对光照效果进行预览的目的通常是为了确定适用于当前目标场景的光照渲染参数,即在通过图形预览窗口展示光照渲染图像之后,开发人员通常需要对相机参数进行调整,以预览目标场景在不同相机视角下的光照效果;或对光照参数进行调整,以预览目标场景在不同光照环境中同一相机视角下的光照效果。因此为了提高光照效果预览效率,在通过图形预览窗口展示光照渲染图像之后,计算机设备还可以响应开发人员对光照渲染参数的调整操作,并根据调整后的光照渲染参数更新光照渲染图像。
在一种可能的实施方式中,响应于图形引擎内的参数调整操作,计算机设备确定调整后的光照渲染参数,其中,调整后的光照渲染参数至少包括调整后的光源参数以及调整后的相机参数中的一种。
可选的,调整后的相机参数可以包括相机位置、朝向、视野、投影矩阵等,调整后的光源参数可以包括光源类型、位置、方向、颜色和强度等,本申请实施例对此不作限定。
进一步的,计算机设备通过插件从显存中获取调整后的光照渲染参数,从而根据调整后的光照渲染参数,更新目标场景中各个虚拟对象和虚拟光源的变换矩阵,并重新计算光线追踪所需的加速结构和遮挡关系。进而计算机设备即可以根据更新后的参数重新生成各个像素点对应的虚拟光线,并通过插件调用硬件光线追踪功能,计算目标场景中各条虚拟光线和虚拟对象之间的相互作用,从而确定各个像素点对应的辐照度,生成调整后的辐照度贴图。
在一种可能的实施方式中,在得到调整后的辐照度贴图之后,计算机设备即可以重新通过插件将调整后的辐照度贴图设置为图形库资源,并通过获取图形引擎对应的图形接口以及逻辑设备,重新利用插件创建辐照度贴图对应的着色器资源视图。进而根据该着色器资源视图,通过图形引擎创建外部纹理,并通过纹理采样得到屏幕空间内各个像素点对应的辐照度,从而根据辐照度进行全局光照计算,即可以得到调整后的光照渲染图像。
在一些实施例中,在经过对光照渲染参数的不断调整,确定出目标光照渲染参数之后,即可以将目标光照渲染参数应用于目标场景的实际运行显示过程中,因此为了实现对目标光照渲染参数的应用,本申请实施例中设置的插件还可以根据目标光照渲染参数,通过预计算的方式直接生成目标场景对应的烘焙贴图。
需要说明的是,不同于通过图形预览窗口仅对某一相机视角下的目标场景的光照效果进行预览展示,烘焙过程是指根据光照渲染参数通过光线追踪对目标场景内的全部像素点进行辐照度预计算的过程,即根据目标光照渲染参数生成的目标烘焙贴图表征的是目标场景中各个像素点对应的目标辐照度。
在一种可能的实施方式中,响应于图形引擎内的烘焙确认操作,计算机设备即可以确定出目标光照渲染参数,该目标光照渲染参数中包括目标场景参数以及目标光源参数。进而计算机设备通过插件从显存中获取该目标光照渲染参数,并根据目标光照渲染参数,调用硬件光线追踪功能,计算目标场景内目标虚拟光线和虚拟对象之间的相互作用,从而确定目标场景内各个像素点对应的目标辐照度,生成目标烘焙贴图。
在一种可能的实施方式中,在得到目标场景对应的目标烘焙贴图之后,计算机设备即可以将该目标烘焙贴图放入对应的目标应用程序的程序包中。进而在用户通过终端下载该目标应用程序之后,终端即可以根据目标烘焙贴图以及目标场景的当前相机视角,确定出当前相机视角下各个像素点对应的辐照度,从而通过全局光照计算,得到各个像素点对应的光照信息,并根据光照信息在屏幕中显示当前相机视角下的目标场景。
上述实施例中,通过响应图形引擎内的参数调整操作,并通过插件获取调整后的光照渲染参数,从而根据调整后的光照渲染参数重新进行光线追踪和计算辐照度,并将更新后的贴图数据重新共享给图形引擎,在图形预览窗口中重新展示光照渲染图像,有助于开发人员根据预览效果对光照渲染参数进行随时调整,从而确定出目标光照渲染参数,提高了光照渲染效果的预览效率。
并且,通过响应图形引擎内的烘焙确认操作,并通过插件获取目标光照渲染参数,从而根据目标光照渲染参数进行光线追踪,确定目标场景内各个像素点的辐照度,并生成目标烘焙贴图,可以实现直接利用根据预览效果确定的目标光照渲染参数进行烘焙,保证了烘焙效果和预览效果的一致性,优化了对目标场景的光照渲染效果。
在一些实施例中,考虑到本申请实施例中在插件和图形引擎之间共享辐照度贴图是一种在不同图形接口与逻辑设备之间的GPU资源共享,而插件和图形引擎是根据各自的命令队列进行渲染的,导致可能出现插件尚未完整地生成辐照度贴图,而图形引擎已经进行贴图数据读取的问题,从而导致光照效果预览延迟和抖动。因此为了减少预览延迟,提高实时预览效果的平滑性,计算机设备还可以在共享贴图数据的过程中,增设一个进程栅栏(Fence),通过该进程栅栏标记插件中渲染进程的执行状态。
在一种可能的实施方式中,计算机设备在插件中创建进程栅栏,并在基于光照渲染参数生成辐照度贴图之前,将进程栅栏的当前值设置为第一进度值,该第一进度值表征插件未执行渲染进程。进而在通过插件生成辐照度贴图之后,计算机设备则需要将进程栅栏的当前值设置为第二进度值,该第二进度值表征插件完成渲染进程。
进一步的,在进程栅栏的当前值为第二进度值的情况下,计算机设备即可以通过图形引擎获取辐照度贴图对应的着色器资源视图,并通过全局光照生成光照渲染图像。
在一种可能的实施方式中,计算机设备可以在插件完成辐照度贴图的渲染之后,将进程栅栏插入插件对应的命令队列中,并将进程栅栏和辐照度贴图一起存储至显存中,从而在计算机设备通过图形引擎获取辐照度贴图时,首先判断进程栅栏的当前值是否为第二进度值,并在当前值为第二进度值的情况下,再获取辐照度贴图。
示意性的,如图5所示,在插件501从图形引擎502中获取光照渲染参数之后,计算机设备首先将进程栅栏504的当前值设置为第一进度值,再基于辐照度贴图,调用硬件光线追踪功能,生成辐照度贴图,并创建对应的着色器资源视图,同时在生成辐照度贴图之后,将进程栅栏504的当前值设置为第二进度值,从而在图形引擎502获取着色器资源视图的过程中,需要首先判断进程栅栏504的当前值是否为第二进度值,在当前值为第二进度值的情况下,图形引擎502才会读取着色器资源视图,进而创建外部纹理,进行全局光照渲染,生成光照渲染图像,并在图形预览窗口503内展示。
上述实施例中,通过在贴图数据共享的过程中,创建进程栅栏,以该进程栅栏对插件中渲染进程的执行状态进行标记,从而可以实现在插件完成渲染进程之后图形引擎再对贴图数据进行读取,避免了光照渲染效果展示延迟的问题,实现了插件和图形引擎之间的数据共享同步。
在一些实施例中,为了提高在图形引擎中进行光照渲染效果预览的效率,计算机设备还可以在图形引擎中设置多个图形预览窗口,且不同图形预览窗口对应不同相机视角,从而通过插件支持多个图形预览窗口同时进行实时预览。
在一些实施例中,考虑到在多个图形预览窗口从插件中获取各自对应的辐照度贴图时,容易出现错乱的问题,即出现第一图形预览窗口读取第二相机视角对应的第二辐照度贴图的问题,因此为了避免贴图数据读取错乱,提高预览效率,计算机设备还可以创建一个关联映射表,通过该关联映射表管理不同图形预览窗口对应的辐照度贴图,其中,关联映射表中可以包括各个图形预览窗口对应的窗口标识。
在一种可能的实施方式中,计算机设备通过插件从显存中读取第一图形预览窗口对应的第一光照渲染参数,从而调用硬件光线追踪功能,根据第一光照渲染参数生成第一辐照度贴图。并且为了避免贴图数据读取错乱,计算机设备需要从关联映射表中获取第一图形预览窗口对应的第一窗口标识,并将第一辐照度贴图与第一窗口标识关联。进而在图形引擎中处于前台运行的图形预览窗口为第一图形预览窗口的情况下,计算机设备即可以根据第一窗口标识,通过图形引擎获取第一辐照度贴图对应的第一着色器资源视图,并根据第一着色器资源视图,通过图形引擎进行全局光照,生成第一光照渲染图像,从而在第一图形预览窗口中显示该第一光照渲染图像。
在一种可能的实施方式中,在通过插件同时为各个图形预览窗口生成辐照度贴图的情况下,计算机设备可以通过插件实时监测各个图形预览窗口中的相机参数和光源参数的变化情况,并分别计算各个图形预览窗口对应的辐照度贴图。在图形引擎中,计算机设备则需要根据各个图形预览窗口对应的着色器资源视图,创建独立的外部纹理,从而在各个图形预览窗口中分别根据各自的外部纹理进行全局光照,生成光照渲染图像。
可选的,在为每个图形预览窗口从插件中读取对应的辐照度贴图时,除了需要避免贴图数据读取错乱,同样也需要考虑插件和图形引擎之间的时序问题。在一种可能的实施方式中,在通过插件分别为各个图形预览窗口生成辐照度贴图的情况下,计算机设备可以在各个渲染进程中分别创建对应的进程栅栏,并通过该进程栅栏对插件中的各个渲染进程的执行状态进行标记,从而在进程栅栏的当前值指示插件已完成渲染进程的情况下,再将生成的辐照度贴图与对应的窗口标识进行关联,从而等待图形引擎根据窗口标识进行贴图数据的读取。
示意性的,如图6所示,在存在多个图形预览窗口的情况下,计算机设备通过插件601分别获取图形引擎602中第一图形预览窗口603内的第一光照渲染参数以及第二图形预览窗口605内的第二光照渲染参数,并分别调用硬件光线追踪功能,生成对应的第一辐照度贴图和第二辐照度贴图。并且为了保持时序同步,计算机设备分别用第一进程栅栏604对第一辐照度贴图的渲染进程进行标记,用第二进程栅栏606对第二辐照度贴图的渲染进程进行标记。同时为了避免贴图数据读取错乱,计算机设备还维护有一个关联映射表607,在生成第一辐照度贴图之后,将第一辐照度贴图与第一窗口标识关联;在生成第二辐照度贴图之后,将第二辐照度贴图与第二窗口标识关联。
上述实施例中,在插件同时为多个图形预览窗口生成辐照度贴图的情况下,通过创建关联映射表,将各个图形预览窗口对应的辐照度贴图和对应的窗口标识进行关联,避免了图形引擎在贴图数据读取过程中出现读取错乱的问题,提高了贴图数据的共享和读取效率。
请参考图7,其示出了本申请又一个示例性实施例提供的光照效果的预览方法的流程图,本实施例以该方法用于计算机设备为例进行说明,该计算机设备可以是图1所示的终端120。
首先,计算机设备在图形引擎内获取开发人员设置的光照渲染参数,并将光照渲染参数导入到插件中,从而在插件中通过创建指令队列、渲染目标视图以构建图形上下文,并设置着色器、输入布局、渲染管道状态以及纹理等资源。进而在配置完成后,将光照渲染参数提交至图形上下文中,并调用硬件光线追踪功能对目标场景进行光线路径追踪,从而通过追踪虚拟光线在目标场景中的相互反射、折射和散射过程,计算虚拟光线和虚拟对象之间的相互作用,确定各个像素点对应的辐照度,生成辐照度贴图。
其次,为了实现插件和图形引擎之间的贴图数据共享,计算机设备将辐照度贴图设置为图形库资源,并为辐照度贴图设置第一共享标识和第二共享标识。进而计算机设备通过插件获取图形引擎对应的图形API(Application Programming Interface,应用程序编程接口)和逻辑设备(Device),并将辐照度贴图对应的共享句柄转移至逻辑设备下,利用共享句柄创建图形API下的着色器资源视图,从而将辐照度贴图对应的着色器资源视图返回给图形引擎。
进一步的,计算机设备在图形引擎中根据着色器资源视图创建外部纹理,并将该外部纹理赋予给材质,设置为目标场景的材质球对应的光照贴图,从而对外部纹理进行采样,得到屏幕空间内各个像素点对应的辐照度,并根据各个像素点对应的辐照度进行全局光照渲染,生成光照渲染图像,在图形预览窗口中展示该光照渲染图像。示意性的,如图8所示,其示出了本申请一个示例性实施例提供的光照渲染效果预览示意图。
此外,在对光照渲染效果进行预览的过程中,通过响应开发人员在图形引擎内的参数调整操作,计算机设备获取调整后的相机参数或光源参数,并将调整后的参数从图形引擎同步至插件中,从而重新通过插件调用硬件光线追踪功能,生成新的辐照度贴图,并在图形引擎中重新展示光照渲染图像。进而在开发人员不断进行参数调整,确定出目标光照渲染参数之后,计算机设备即可以通过插件根据目标光照渲染参数,调用硬件光线追踪功能,计算目标场景中各个像素点对应的目标辐照度,从而通过预计算的方式生成目标烘焙贴图。
请参考图9,其示出了本申请一个示例性实施例提供的光照效果的预览装置的结构框图,该装置包括。
贴图生成模块901,用于基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,所述辐照度贴图用于表征相机视角下各个像素点对应的辐照度,所述光照渲染参数由图形引擎提供,所述图形引擎无法调用所述硬件光线追踪功能;
视图获取模块902,用于通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,所述着色器资源视图为所述插件基于所述辐照度贴图创建,所述着色器资源视图用于实现所述插件与所述图形引擎之间的贴图数据共享;
图像生成模块903,用于基于所述着色器资源视图,通过所述图形引擎进行全局光照,生成光照渲染图像;
图像展示模块904,用于在图形预览窗口中展示所述光照渲染图像,所述图形预览窗口用于实时预览所述光照渲染参数表征的光照环境中所述相机视角下目标场景的光照效果。
可选的,所述通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图之前,所述装置还包括:
信息获取模块,用于通过所述插件获取所述图形引擎对应的图形接口以及逻辑设备,不同应用程序对应不同的图形接口和逻辑设备;
句柄转移模块,用于通过所述插件将所述辐照度贴图对应的共享句柄转移至所述逻辑设备;
视图创建模块,用于基于所述辐照度贴图,通过所述插件创建所述图形接口下的所述着色器资源视图;
所述视图获取模块902,用于:
基于所述共享句柄,通过所述图形引擎获取所述辐照度贴图对应的所述着色器资源视图。
可选的,所述通过所述插件将所述辐照度贴图对应的共享句柄转移至所述逻辑设备之前,所述装置还包括:
贴图设置模块,用于将所述辐照度贴图设置为图形库资源,并为所述辐照度贴图设置第一共享标识以及第二共享标识,所述第一共享标识用于指示允许其他应用程序对所述辐照度贴图进行访问,所述第二共享标识用于指示允许多个应用程序同时访问所述辐照度贴图。
可选的,所述装置还包括:
栅栏创建模块,用于创建进程栅栏,所述进程栅栏用于标记所述插件中渲染进程的执行状态;
所述基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图之前,所述装置还包括:
第一进度值设置模块,用于将所述进程栅栏的当前值设置为第一进度值,所述第一进度值表征所述插件未执行所述渲染进程;
所述基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图之后,所述装置还包括:
第二进度值设置模块,用于将所述进程栅栏的当前值设置为第二进度值,所述第二进度值表征所述插件完成所述渲染进程;
所述视图获取模块902,用于:
在所述进程栅栏的当前值为所述第二进度值的情况下,通过所述图形引擎获取所述辐照度贴图对应的所述着色器资源视图。
可选的,所述图形引擎中包括多个图形预览窗口,且不同图形预览窗口对应不同相机视角;
所述装置还包括:
映射表创建模块,用于创建关联映射表,所述关联映射表用于管理不同图形预览窗口对应的辐照度贴图,所述关联映射表中包括各个图形预览窗口对应的窗口标识。
可选的,所述贴图生成模块901,用于:
基于第一图形预览窗口对应的第一光照渲染参数,通过所述插件调用所述硬件光线追踪功能,生成第一辐照度贴图;
从所述关联映射表中获取所述第一图形预览窗口对应的第一窗口标识;
将所述第一辐照度贴图与所述第一窗口标识关联;
所述视图获取模块902,用于:
在所述图形引擎中处于前台运行的图形预览窗口为所述第一图形预览窗口的情况下,基于所述第一窗口标识,通过所述图形引擎获取所述第一辐照度贴图对应的第一着色器资源视图;
所述图像生成模块903,用于:
基于所述第一着色器资源视图,通过所述图形引擎进行全局光照,生成第一光照渲染图像;
所述图像展示模块904,用于:
在所述第一图形预览窗口中显示所述第一光照渲染图像。
可选的,所述图像生成模块903,还用于:
基于所述着色器资源视图,通过所述图形引擎创建外部纹理,所述外部纹理中包括所述辐照度贴图内各个像素点对应的辐照度;
将所述外部纹理设置为所述目标场景的材质球对应的光照贴图;
基于屏幕坐标对所述外部纹理进行采样,确定屏幕空间内各个像素点对应的辐照度;
基于屏幕空间内各个像素点对应的辐照度,通过全局光照生成所述光照渲染图像。
可选的,所述贴图生成模块901,还用于:
基于相机参数以及场景参数,创建图形上下文,所述图形上下文用于存储所述插件中生成的渲染数据;
基于光源参数以及各个像素点对应的空间坐标,生成各个像素点对应的虚拟光线;
通过计算所述虚拟光线和所述目标场景中各个虚拟对象的相互作用,确定各个像素点对应的辐照度;
基于所述图形上下文以及各个像素点对应的辐照度,生成所述辐照度贴图。
可选的,所述装置还包括:
第一参数确定模块,用于响应于所述图形引擎内的参数调整操作,确定调整后的所述光照渲染参数,调整后的所述光照渲染参数至少包括调整后的光源参数以及调整后的相机参数中的一种;
第一参数获取模块,用于通过所述插件获取调整后的所述光照渲染参数;
所述贴图生成模块901,还用于基于调整后的所述光照渲染参数,通过所述插件调用所述硬件光线追踪功能,生成调整后的辐照度贴图。
可选的,所述装置还包括:
第二参数确定模块,用于响应于所述图形引擎内的烘焙确认操作,确定目标光照渲染参数,所述目标光照渲染参数包括目标场景参数以及目标光源参数;
第二参数获取模块,用于通过所述插件获取所述目标光照渲染参数;
所述贴图生成模块901,还用于基于所述目标光照渲染参数,通过所述插件调用所述硬件光线追踪功能,生成目标烘焙贴图,所述目标烘焙贴图表征所述目标场景中各个像素点对应的目标辐照度。
综上所述,本申请实施例中,对于无法调用硬件光线追踪功能的图形引擎,通过可以调用硬件光线追踪功能的插件,根据图形引擎提供的光照渲染参数生成辐照度贴图,进而再由图形引擎获取该辐照度贴图对应的着色器资源视图,并根据该着色器资源视图进行全局光照,生成光照渲染图像,从而在图形预览窗口中展示该光照渲染图像,可以实现在低性能版本的图形引擎中对光照渲染参数表征的光照环境中相机视角下目标场景的光照效果进行预览,降低了预览光照效果的门槛。
请参考图10,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1000包括中央处理单元(Central Processing Unit,CPU)1001、包括随机存取存储器1002和只读存储器1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括随机存取记忆体(RAM,Random Access Memory)、只读存储器(ROM,Read Only Memory)、闪存或其他固态存储其技术,只读光盘(Compact Disc Read-Only Memory,CD-ROM)、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1001执行,一个或多个程序包含用于实现上述方法的指令,中央处理单元1001执行该一个或多个程序实现上述各个方法实施例提供的光照效果的预览方法。
根据本申请的各种实施例,所述计算机设备1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1012连接到网络1011,或者说,也可以使用网络接口单元1012来连接到其他类型的网络或远程计算机系统(未示出)。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条计算机指令,至少一条计算机指令由处理器加载并执行以实现上述实施例所述的光照效果的预览方法。
可选地,该计算机可读存储介质可以包括:ROM、RAM、固态硬盘(SSD,Solid StateDrives)或光盘等。其中,RAM可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例所述的光照效果的预览方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种光照效果的预览方法,其特征在于,所述方法包括:
基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,所述辐照度贴图用于表征相机视角下各个像素点对应的辐照度,所述光照渲染参数由图形引擎提供,所述图形引擎无法调用所述硬件光线追踪功能;
通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,所述着色器资源视图为所述插件基于所述辐照度贴图创建,所述着色器资源视图用于实现所述插件与所述图形引擎之间的贴图数据共享;
基于所述着色器资源视图,通过所述图形引擎进行全局光照,生成光照渲染图像;
在图形预览窗口中展示所述光照渲染图像,所述图形预览窗口用于实时预览所述光照渲染参数表征的光照环境中所述相机视角下目标场景的光照效果。
2.根据权利要求1所述的方法,其特征在于,所述通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图之前,所述方法还包括:
通过所述插件获取所述图形引擎对应的图形接口以及逻辑设备,不同应用程序对应不同的图形接口和逻辑设备;
通过所述插件将所述辐照度贴图对应的共享句柄转移至所述逻辑设备;
基于所述辐照度贴图,通过所述插件创建所述图形接口下的所述着色器资源视图;
所述通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,包括:
基于所述共享句柄,通过所述图形引擎获取所述辐照度贴图对应的所述着色器资源视图。
3.根据权利要求2所述的方法,其特征在于,所述通过所述插件将所述辐照度贴图对应的共享句柄转移至所述逻辑设备之前,所述方法还包括:
将所述辐照度贴图设置为图形库资源,并为所述辐照度贴图设置第一共享标识以及第二共享标识,所述第一共享标识用于指示允许其他应用程序对所述辐照度贴图进行访问,所述第二共享标识用于指示允许多个应用程序同时访问所述辐照度贴图。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建进程栅栏,所述进程栅栏用于标记所述插件中渲染进程的执行状态;
所述基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图之前,所述方法还包括:
将所述进程栅栏的当前值设置为第一进度值,所述第一进度值表征所述插件未执行所述渲染进程;
所述基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图之后,所述方法还包括:
将所述进程栅栏的当前值设置为第二进度值,所述第二进度值表征所述插件完成所述渲染进程;
所述通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,包括:
在所述进程栅栏的当前值为所述第二进度值的情况下,通过所述图形引擎获取所述辐照度贴图对应的所述着色器资源视图。
5.根据权利要求1所述的方法,其特征在于,所述图形引擎中包括多个图形预览窗口,且不同图形预览窗口对应不同相机视角;
所述方法还包括:
创建关联映射表,所述关联映射表用于管理不同图形预览窗口对应的辐照度贴图,所述关联映射表中包括各个图形预览窗口对应的窗口标识。
6.根据权利要求5所述的方法,其特征在于,所述基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,包括:
基于第一图形预览窗口对应的第一光照渲染参数,通过所述插件调用所述硬件光线追踪功能,生成第一辐照度贴图;
从所述关联映射表中获取所述第一图形预览窗口对应的第一窗口标识;
将所述第一辐照度贴图与所述第一窗口标识关联;
所述通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,包括:
在所述图形引擎中处于前台运行的图形预览窗口为所述第一图形预览窗口的情况下,基于所述第一窗口标识,通过所述图形引擎获取所述第一辐照度贴图对应的第一着色器资源视图;
所述基于所述着色器资源视图,通过所述图形引擎进行全局光照,生成光照渲染图像,包括:
基于所述第一着色器资源视图,通过所述图形引擎进行全局光照,生成第一光照渲染图像;
所述在图形预览窗口中展示所述光照渲染图像,包括:
在所述第一图形预览窗口中显示所述第一光照渲染图像。
7.根据权利要求1所述的方法,其特征在于,所述基于所述着色器资源视图,通过所述图形引擎进行全局光照,生成光照渲染图像,包括:
基于所述着色器资源视图,通过所述图形引擎创建外部纹理,所述外部纹理中包括所述辐照度贴图内各个像素点对应的辐照度;
将所述外部纹理设置为所述目标场景的材质球对应的光照贴图;
基于屏幕坐标对所述外部纹理进行采样,确定屏幕空间内各个像素点对应的辐照度;
基于屏幕空间内各个像素点对应的辐照度,通过全局光照生成所述光照渲染图像。
8.根据权利要求1所述的方法,其特征在于,所述基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,包括:
基于相机参数以及场景参数,创建图形上下文,所述图形上下文用于存储所述插件中生成的渲染数据;
基于光源参数以及各个像素点对应的空间坐标,生成各个像素点对应的虚拟光线;
通过计算所述虚拟光线和所述目标场景中各个虚拟对象的相互作用,确定各个像素点对应的辐照度;
基于所述图形上下文以及各个像素点对应的辐照度,生成所述辐照度贴图。
9.根据权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
响应于所述图形引擎内的参数调整操作,确定调整后的所述光照渲染参数,调整后的所述光照渲染参数至少包括调整后的光源参数以及调整后的相机参数中的一种;
通过所述插件获取调整后的所述光照渲染参数;
基于调整后的所述光照渲染参数,通过所述插件调用所述硬件光线追踪功能,生成调整后的辐照度贴图。
10.根据权利要求1至8任一所述的方法,其特征在于,所述方法还包括:
响应于所述图形引擎内的烘焙确认操作,确定目标光照渲染参数,所述目标光照渲染参数包括目标场景参数以及目标光源参数;
通过所述插件获取所述目标光照渲染参数;
基于所述目标光照渲染参数,通过所述插件调用所述硬件光线追踪功能,生成目标烘焙贴图,所述目标烘焙贴图表征所述目标场景中各个像素点对应的目标辐照度。
11.一种光照效果的预览装置,其特征在于,所述装置包括:
贴图生成模块,用于基于光照渲染参数,通过插件调用硬件光线追踪功能,生成辐照度贴图,所述辐照度贴图用于表征相机视角下各个像素点对应的辐照度,所述光照渲染参数由图形引擎提供,所述图形引擎无法调用所述硬件光线追踪功能;
视图获取模块,用于通过所述图形引擎获取所述辐照度贴图对应的着色器资源视图,所述着色器资源视图为所述插件基于所述辐照度贴图创建,所述着色器资源视图用于实现所述插件与所述图形引擎之间的贴图数据共享;
图像生成模块,用于基于所述着色器资源视图,通过所述图形引擎进行全局光照,生成光照渲染图像;
图像展示模块,用于在图形预览窗口中展示所述光照渲染图像,所述图形预览窗口用于实时预览所述光照渲染参数表征的光照环境中所述相机视角下目标场景的光照效果。
12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条计算机指令,所述至少一条计算机指令用于被所述处理器执行以实现如权利要求1至10任一所述的光照效果的预览方法。
13.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条计算机指令,所述至少一条计算机指令由处理器加载并执行以实现如权利要求1至10任一所述的光照效果的预览方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410017515.6A CN117523062B (zh) | 2024-01-05 | 2024-01-05 | 光照效果的预览方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410017515.6A CN117523062B (zh) | 2024-01-05 | 2024-01-05 | 光照效果的预览方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117523062A CN117523062A (zh) | 2024-02-06 |
CN117523062B true CN117523062B (zh) | 2024-03-08 |
Family
ID=89749804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410017515.6A Active CN117523062B (zh) | 2024-01-05 | 2024-01-05 | 光照效果的预览方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117523062B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116071216A (zh) * | 2021-11-03 | 2023-05-05 | 英特尔公司 | 读取采样器反馈技术 |
CN116310061A (zh) * | 2023-05-18 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
CN116310018A (zh) * | 2022-12-07 | 2023-06-23 | 西北大学 | 一种基于虚拟光照环境和光线查询的模型混合渲染方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6956570B2 (en) * | 2001-06-27 | 2005-10-18 | Believe, Inc. | Object visibility control for ray tracing |
CN112927341A (zh) * | 2021-04-02 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
-
2024
- 2024-01-05 CN CN202410017515.6A patent/CN117523062B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116071216A (zh) * | 2021-11-03 | 2023-05-05 | 英特尔公司 | 读取采样器反馈技术 |
CN116310018A (zh) * | 2022-12-07 | 2023-06-23 | 西北大学 | 一种基于虚拟光照环境和光线查询的模型混合渲染方法 |
CN116310061A (zh) * | 2023-05-18 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
Non-Patent Citations (1)
Title |
---|
Real-Time Ray Traced Voxel Global Illumination;Magalhães T J S;《Universidade do Porto (Portugal)》;20201231;第1-24页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117523062A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
US9792718B2 (en) | Mapping graphics instructions to associated graphics data during performance analysis | |
KR101286318B1 (ko) | 렌더링된 그래픽 엘리먼트들을 위한 성능 메트릭들의 시각적 표현의 디스플레이 | |
US9928637B1 (en) | Managing rendering targets for graphics processing units | |
US20100020069A1 (en) | Partitioning-based performance analysis for graphics imaging | |
US11727632B2 (en) | Shader binding management in ray tracing | |
US11094036B2 (en) | Task execution on a graphics processor using indirect argument buffers | |
CN116185743B (zh) | OpenGL接口的双显卡对比调试方法、装置及介质 | |
KR101431311B1 (ko) | 그래픽 이미지들의 시각적 창작 동안의 성능 분석 | |
WO2024067159A1 (zh) | 视频生成方法、装置、电子设备及存储介质 | |
CN117523062B (zh) | 光照效果的预览方法、装置、设备及存储介质 | |
CN109672931B (zh) | 用于处理视频帧的方法和装置 | |
JP5242788B2 (ja) | グラフィックス・イメージングのためのパーティション・ベースのパフォーマンス解析 | |
CN114913277A (zh) | 一种物体立体交互展示方法、装置、设备及介质 | |
CN112367295A (zh) | 插件展示方法及装置、存储介质及电子设备 | |
WO2023245494A1 (zh) | 从渲染引擎中获取纹理数据的方法及装置、电子设备 | |
CN116883575B (zh) | 建筑群渲染方法、装置、计算机设备和存储介质 | |
RU2810701C2 (ru) | Гибридный рендеринг | |
JP6379673B2 (ja) | 描画システム、描画装置、計算装置、描画プログラム、及び描画プロセッサ基盤 | |
CN117292034A (zh) | 虚拟场景的渲染方法、装置、设备及存储介质 | |
CN116915976A (zh) | 用于测试平台的方法、装置、设备及计算机可读介质 | |
CN116912379A (zh) | 场景画面的渲染方法及装置、存储介质、电子设备 |
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 |