CN111127620B - 一种生成半球域采样模式的方法、装置及计算机存储介质 - Google Patents
一种生成半球域采样模式的方法、装置及计算机存储介质 Download PDFInfo
- Publication number
- CN111127620B CN111127620B CN201911381045.7A CN201911381045A CN111127620B CN 111127620 B CN111127620 B CN 111127620B CN 201911381045 A CN201911381045 A CN 201911381045A CN 111127620 B CN111127620 B CN 111127620B
- Authority
- CN
- China
- Prior art keywords
- domain sampling
- hemispherical
- target
- hemispherical domain
- sampling pattern
- 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
- 238000005070 sampling Methods 0.000 title claims abstract description 241
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000009466 transformation Effects 0.000 claims abstract description 39
- 238000013507 mapping Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000009826 distribution Methods 0.000 claims description 8
- 238000009827 uniform distribution Methods 0.000 claims description 3
- 230000005855 radiation Effects 0.000 claims description 2
- 238000009877 rendering Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000005286 illumination Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 241001061225 Arcos Species 0.000 description 1
- 101100391182 Dictyostelium discoideum forI gene Proteins 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 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/06—Ray-tracing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明实施例公开了一种生成半球域采样模式的方法、装置及计算机存储介质。该方法可以包括:获取一现有半球域采样模式;确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系;基于所述变换关系,生成目标半球域采样模式。
Description
技术领域
本发明实施例涉及图形处理器(GPU,Graphics Processing Unit)技术领域,尤其涉及一种生成半球域采样模式的方法、装置及计算机存储介质。
背景技术
三维(3D)渲染可以指将3D对象的数据合成为在相机的给定视点观察到的图像的图像处理过程,而作为渲染方法的一个实例,光线追踪方法可以包括通过追踪沿着从相机的视点朝向图像的每个像素发射光线的入射光路径来生成图像。
每一次通过光线追踪方法进行渲染的过程均可被划分为直接光照计算过程和间接光照计算过程,最终汇总直接光照计算过程和间接光照计算过程的计算结果总和作为渲染结果,并将该渲染结果写入帧缓存器。
在间接光照计算过程中,GPU可以以物体表面渲染点为中心,通过生成半球状的发散的间接光线以追踪该间接光线对该渲染点的影响。而在光线追踪方法进行渲染的过程中,通过需要生成大量的不重复且采样点数目固定的半球域采样模式以在采样点处生成大量的发射光线。因此,在光线追踪方法,需要一种能够高效生成半球域采样模式的方案。
发明内容
有鉴于此,本发明实施例期望提供一种生成半球域采样模式的方法、装置及计算机存储介质;能够降低计算开销和存储数据量,从而提高半球域采样模式的生成效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种生成半球域采样模式的方法,所述方法包括:
获取一现有半球域采样模式;
确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系;
基于所述变换关系,生成目标半球域采样模式。
第二方面,本发明实施例提供了一种生成半球域采样模式的装置,所述装置应用于GPU中的射线生成单元,所述装置包括:获取部分、确定部分和生成部分;其中,
所述获取部分,被配置为获取一现有半球域采样模式;
所述确定部分,被配置为确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系;
所述生成部分,被配置为基于所述变换关系,生成目标半球域采样模式。
第三方面,本发明实施例提供了一种GPU,所述GPU至少包括射线生成单元;所述射线生成单元至少包括第二方面所述的生成半球域采样模式的装置。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有生成半球域采样模式的程序,所述生成半球域采样模式的程序被至少一个处理器执行时实现第一方面所述的生成半球域采样模式的方法的步骤。
本发明实施例提供了一种生成半球域采样模式的方法、装置及计算机存储介质;在生成目标半球域采样模式的过程中,无需由正方形域采样模式进行映射,而是从现有的半球域采样模式进行变换获得,避免了通过正方形域采样模式进行映射获得半球域采样模式所需的超越函数的计算,降低了计算量,节省了计算时间。
附图说明
图1为能够实施用于进行生成半球域采样模式技术的计算装置框图;
图2为说明图1中处理器、GPU和系统存储器的实例实施方案的框图;
图3为本发明实施例提供的一种生成半球域采样模式的方法流程示意图;
图4为本发明实施例提供的一种不动点的生成过程流程示意图;
图5为本发明实施例提供的一种现有的半球域采样模式f0、中间映射f*以及目标半球域采样模式f1的示意图;
图6A为本发明实施例提供的半球域采样密度均匀分布的采样模式示意图;
图6B为本发明实施例提供的一种具有采样点密度分布的半球域采样模式示意图
图7为本发明实施例提供的一种计算路线示意图
图8为本发明实施例提供的一种生成半球域采样模式的装置框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例提供的一种能够实施用于进行生成半球域采样模式技术的计算装置1,该计算装置1的实例包括但不限于:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器,等。在图1的实例中,该计算装置2可以包括:处理器6、系统存储器10和GPU 12。计算装置2还可包含显示处理器14、收发器模块3、用户接口4和显示器8。收发器模块3和显示处理器14两者可为与处理器6和/或GPU 12相同的集成电路(IC)的部分,两者可在包含处理器6和/或GPU 12的一或多个IC的外部,或可形成于在包含处理器6和/或GPU12的IC外部的IC中。
为清楚起见,计算装置2可包含图1中未图示的额外模块或单元。举例来说,计算装置2可在其中计算装置2为移动无线电话或的实例中包含扬声器和麦克风(两者均未在图1中示出)来实现电话通信,或在计算装置2为媒体播放器的情况下包含扬声器。计算装置2还可包含摄像机。此外,计算装置2中所示的各种模块和单元可能不是在计算装置2的每个实例中都是必需的。举例来说,在计算装置2为桌上型计算机或经装备以与外部用户接口或显示器介接的其它装置的实例中,用户接口4和显示器8可在计算装置2外部。
用户接口4的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口4还可为触摸屏,并且可作为显示器8的部分并入。收发器模块3可包含电路以允许计算装置2与另一装置或网络之间的无线或有线通信。收发器模块3可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路。
处理器6可为微处理器,例如中央处理单元(CPU),其经配置以处理供执行的计算机程序的指令。处理器6可包括控制计算装置2的运算的通用或专用处理器。用户可将输入提供到计算装置2,以致使处理器6执行一或多个软件应用程序。在处理器6上执行的软件应用程序可包含(例如)操作系统、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,处理器6可执行用于控制GPU 12的运算的GPU驱动程序22。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在处理器6上执行的软件应用程序可包含一或多个图形渲染指令,其指令处理器6来致使将图形数据渲染到显示器8。在一些实例中,所述软件指令可符合图形应用程序编程接口(API),例如开放式图形库API、开放式图形库嵌入系统(OpenGL ES)API、Direct3DAPI、X3D API、RenderMan API、WebGL API、开放式计算语言(OpenCLT M)、RenderScript或任何其它异构计算API,或任何其它公用或专有标准图形或计算API。所述软件指令还可为针对无渲染算法(例如计算摄影、卷积神经网络、视频处理、科学应用程序等)的指令。为了处理图形渲染指令,处理器6可向GPU 12发出一或多个图形渲染命令发(例如,通过GPU驱动程序22),以致使GPU 12执行图形数据的渲染中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形图元的列表。
GPU 12可经配置以执行图形运算,从而将一或多个图形图元渲染到显示器8。因此,当在处理器6上执行的软件应用中的一者需要图形处理时,处理器6可将图形命令和图形数据提供到GPU 12以用于渲染到显示器8。图形数据可包含(例如)绘制命令、状态信息、图元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行结构,其提供比处理器6高效的对复杂图形相关运算的处理。举例来说,GPU 12可包含经配置来以并行方式对多个顶点或像素进行运算的多个处理元件,例如着色器单元。在一些情况下,GPU 12的高度并行性质允许GPU 12比使用处理器6直接将场景绘制到显示器8更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器8上。
在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中,或可以其它方式并入在经配置以与计算装置2互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 12还可包含一或多个处理器核心,使得GPU 12可被称作多核处理器。
图形存储器40可为GPU 12的一部分。因此,GPU 12可在不使用总线的情况下从图形存储器40读取数据且将数据写入到图形存储器40。换句话说,GPU 12可使用本地存储装置而不是芯片外存储器在本地处理数据。此类图形存储器40可被称作芯片上存储器。这允许GPU 12通过消除GPU 12经由总线读取和写入数据的需要来以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 12可不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器40可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
在一些实例中,GPU 12可将完全形成的图像存储在系统存储器10中。显示处理器14可从系统存储器10检索图像,且输出致使显示器8的像素照亮以显示所述图像的值。显示器8可为计算装置2的显示器,其显示由GPU 12产生的图像内容。显示器8可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
图2为进一步详细说明图1中处理器6、GPU 12和系统存储器10的实例实施方案的框图。如图2所示,处理器6可执行至少一个软件应用程序18、图形API 20和GPU驱动程序22,其中的每一者可为一或多个软件应用程序或服务。在一些实例中,图形API 20和GPU驱动程序22可实施为CPU 6的硬件单元。
可供处理器6和GPU 12使用的存储器可包含系统存储器10和输出缓冲器16。输出缓冲器16可为系统存储器10的部分或可与系统存储器10分离。输出缓冲器16可存储经渲染图像数据,例如像素数据,以及任何其它数据。输出缓冲器16还可被称为帧缓冲器或显存。
图形存储器40可包含片上存储装置或存储器,其物理上集成到GPU12的集成电路芯片中。如果图形存储器40是在芯片上,那么与经由系统总线从系统存储器10读取值或将值写入到系统存储器10相比,GPU12能够更加快速地从图形存储器40读取值或将值写入到图形存储器40。
输出缓冲器16存储GPU 12的目的地像素。每个目的地像素可与唯一屏幕像素位置相关联。在一些实例中,输出缓冲器16可存储每个目的地像素的色彩分量和目的地α值。举例来说,输出缓冲器16可存储每个像素的红色、绿色、蓝色、α(RGBA)分量,其中“RGB”分量对应于色彩值,并且“A”分量对应于目的地α值(例如,用于图像合成的不透明度值)。尽管将输出缓冲器16和系统存储器10说明为单独的存储器单元,但在其它实例中,输出缓冲器16可以是系统存储器10的一部分。此外,输出缓冲器16还可能够存储除像素之外的任何合适的数据。
软件应用程序18可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用程序18可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的软件应用程序。
软件应用程序18可包含指令GPU 12渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘制指令可包含界定将由GPU 12渲染的一组一或多个图形图元的指令。在一些实例中,绘制指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘制指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序18可经由图形API 20调用GPU驱动程序22,以向GPU 12发出一或多个命令,以用于将一或多个图形图元渲染到可显示的图形图像中。举例来说,软件应用程序18可调用GPU驱动程序22,以向GPU 12提供图元定义。在一些情况下,图元定义可以例如三角形、矩形、三角形扇、三角形带等的绘制图元的列表的形式被提供到GPU 12。图元定义可包含指定与待呈现的图元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每个顶点的位置坐标,且在一些情况下包含与顶点相关联的其它属性,例如色彩属性、法向量和纹理坐标。图元定义还可包含图元类型信息(例如,三角形、矩形、三角形扇、三角形带等)、缩放信息、旋转信息及类似者。
基于由软件应用程序18向GPU驱动程序22发出的指令,GPU驱动程序22可调配指定供GPU 12执行的一或多个运算以便渲染图元的一或多个命令。以光线追踪渲染为例,当GPU12接收到来自CPU 6的命令时,GPU 12通过射线生成单元24完成间接光线生成后,将生成的间接光线传送至射线-物体相交计算单元26以查找所追踪的间接光线来自的具体物体位置,在得到该位置后,渲染计算单元28会在该位置进行间接光照的渲染计算并评估是否进一步发射间接光线,如需要进一步追踪间接光线,则渲染计算单元28会通知射线生成单元24以生成新的间接光线,如此循环,直至所有间接光线渲染完毕,渲染计算单元28会获得间接光照的渲染结果,并将该渲染结果与直接光照的渲染结果合并后,将合并的结果写入输出缓存器16的像素中。
对于上述光线追踪的渲染方案来说,生成的间接光线通常为半球状的发散光线。若要获得半球状发散的间接光线的方向向量,则需要首先获得半球面上的采样点的直角坐标位置,而针对每一种半球面上的采样点的直角坐标位置分布称之为一种半球域采样模式。对于上述光线追踪渲染方案,在一些示例中,可以通过射线生成单元24生成大量的不重复且采样点数目固定的半球域采样模式以在众多采样点处发射出大量二次光线来进行渲染计算,需要说明的是,“不重复”是为了克服光线追踪中典型的渲染走样现象的(例如莫尔条纹),“采样点数目固定”则是为了便于简化算法。另外,在另一些示例中,通过光线追踪的渲染方案在实现景深效果时,可能会需要固定采样点数目的圆域的采样模式,而该采样模式通常也可以通过固定采样点数目的半球域采样模式进行简单的投影获得。
常规方案为了生成采样点数目固定的半球域采样模式,在一些示例中,通常会选择以下两种方式之一:
第一种方式:先通过某种方式生成正方形域的采样模式,然后通过把正方形域的采样模式映射到半球域,当需要另一个不重复的半球域采样模式时,重新生成新的正方形域采样模式,然后映射到半球域之后再使用。
第二种方式:预先存储若干(通常是几十种)正方形域的采样模式,然后在需要的时候逐一取出并映射到半球域再使用。
对于上述两种方式,首先,可以发现,两种方式的共同缺陷是均需要从正方形域映射到半球域,此时通常需要两步变换过程:
第一步是从正方形域的平面直角坐标(r1,r2)变换到标准的球面角度坐标(θ,φ),即采用以下两个公式进行变换:
φ=2πr1
第二步是从球面角度坐标(θ,φ)变换到球面上的直角坐标(x,y,z),即采用以下三个公式进行变换:
x=sinθcosφ
y=sinθsinφ
z=cosθ
通过上述变换公式可以看出,从正方形域通过两步变换映射至半球域的过程中,使用了5次超越函数,例如sin()、cos()、arccos(),由此形成了较大的计算量。
接着,针对两种方式的第一种方式,每当生成一个不重复的半球域采样模式时,均需要生成一次新的正方形域采样模式,因此需要调用随机函数,从而消耗大量的计算时间。
然后,针对两种方式的第二种方式,预先存储的正方形域的采样模式增加了存储开销,并且预先存储的正方形域的采样模式数量有限,当需要生成较多的不重复的半球域采样模式时,无法杜绝重复使用的现象。
针对于上述常规方案,本发明实施例期望能够提供一种高效地生成半球域采样模式的方案,降低生成过程中的运算量和存储器开销,节省计算时间。基于此,参见图3,其示出了本发明实施例提供的一种生成半球域采样模式的方法,该方法可以应用于图2所示GPU12的射线生成单元24,该方法可以包括:
S301:获取一现有半球域采样模式;
S302:确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系;
S303:基于所述变换关系,生成目标半球域采样模式。
通过图3所示的技术方案,在生成目标半球域采样模式的过程中,无需由正方形域采样模式进行映射,而是从现有的半球域采样模式进行变换获得,避免了通过正方形域采样模式进行映射获得半球域采样模式所需的超越函数的计算,降低了计算量,节省了计算时间。
对于图3所示的技术方案,在一些示例中,所述获取一现有半球域采样模式,包括:
从存储器中读取预存的一种半球域采样模式;
或者,利用正方形域采样模式通过映射获得所述现有半球域采样模式。
对于该实现方式,需要说明的是,在一种可能的实施方案中,可以预先对已生成的半球域采样模式进行保存,例如存储于GPU 12上的高速缓存器。在另一种可能的实施方案中,由于生成间接光线需要生成大量的不重复且采样点数目固定的半球域采样模式,那么即使GPU 12中未预先存储现有的半球域采样模式,也可以利用正方形域采样模式通过映射获得;对于该实施方案,尽管在获得现有的半球域采样模式时仍然会使用超越函数,但是在生成后续大量的不重复的半球域采样模式的过程中,无需再利用正方形域采样模式通过映射获得,相比于常规方案,仍然降低了计算量,节省了计算时间。
对于图3所示的技术方案,在一些示例中,所述确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系,包括:
基于所述现有半球域采样模式与目标半球域采样模式,确定用于表征由所述现有半球域采样模式在球面旋转至所述目标半球域采样模式的中间映射。
对于上述示例,优选地,所述基于所述现有半球域采样模式与目标半球域采样模式,确定用于表征由所述现有半球域采样模式在球面旋转至所述目标半球域采样模式的中间映射,包括:
基于所述球面上的任何转动都能够至多分解成三个不同轴的转动的乘积以及所述目标半球域采样模式,确定三个不同轴的转动变换;
根据所述三个不同轴的转动变换以及所述现有半球域采样模式,获得所述中间映射。
对于上述示例,优选地,所述基于所述变换关系,生成目标半球域采样模式,包括:
根据所述球面S上两个关于球心对称的点之间的映射以及所述中间映射,生成目标半球域采样模式。
针对上述示例,在具体实施过程中,本发明实施例首先可以设定需要生成采样点数目固定为N的若干个不同的半球域采样模式,而现有的半球域采样模式设定为如下映射:
f0:Ω→S+
其中,Ω={1,2,…,N}可以看成是半球域上采样点的标号集合;S+表示半球面,S表示完整球面,箭头标识映射符号。
接着,对于以上现有的半球域采样模式f0,设定球面上任何转动都可以至多分解成三个不同轴的转动的乘积,则所述三个不同轴(例如轴a、轴b和轴c)的转动变换如下所示:
Ra:S→S
Rb:S→S
Rc:S→S
从而能够得到中间映射f*为:
举例来说,将轴a、轴b和轴c分别看成是绕x,y,z旋转的转轴,不妨把Ra,Rb,Rc分别记为Rx,Ry,Rz,对于球面上的旋转变换是R,R的转轴是d,转轴d和球面的一个交点为P,P点就是R的不动点。参见图4,考察该不动点的生成过程可知:首先对于即把P点映射成“点P和x转轴所确定的圆”上的某个点P′,然后对于/>即把P′映射为“点P和z轴所确定的圆”上一点P″,此时Rz:P″→P正好能够将点P″映射为P。除此之外,结合R的任意性,所以通过RzRyRx可以代表球面上的任意转动。
最后,设定球面S上两个关于球心对称的点之间的映射可以用函数C:S→S来表示。
那么,目标半球域采样模式f1可以通过如下方式获得:
需要说明的是,在需要接着生成新的目标半球域采样模式f2的情况下,可以以已获得的半球域采样模式f1作为现有的半球域采样模式按照上述方案重复执行,以此类推,能够生成任意多个采样模式fk,k=1,2,…。
对于上述示例的具体实施过程,参见图5,其示出了只使用一个转轴且转轴垂直于纸面时的半球域(此处为上半球域)采样模式变换过程的切面(球面的截面圆周)示意图,图5中示出了现有的半球域采样模式f0、中间映射f*以及目标半球域采样模式f1的示例。
基于上述示例以及上述示例的具体实施过程,新生成的任意一个半球域采样模式fk都具有相同的采样点个数N。而且在根据不同的k生成fk的过程中,可以使用同一组Ra,Rb,Rc,因此,Ra,Rb,Rc在实际的计算中就是三个3*3的转动矩阵,只要转角不和2π成简单有理数倍数关系,则可以通过不断地使用同一组Ra,Rb,Rc从而不断地生成完全不同的半球域采样模式,而且Ra,Rb,Rc对应的转动矩阵可以预先存储起来不需要每次都重新计算。可以看出,生成半球域采样模式的过程中,完全没有使用最耗费处理器计算时间的超越函数和除法,仅仅使用了浮点数的加减乘,因此大大降低了生成新采样模式的计算量。
对于图3所示的技术方案,在另一些示例中,设定现有的半球域采样模式为半球域采样密度均匀分布的采样模式,如图6A所示,举例来说,半球域采样密度均匀分布的采样模式可以通过前述示例生成,也可以预先存储。相应于现有的半球域采样模式为半球域采样密度均匀分布的采样模式,若需要获得的目标半球域采样模式为具有采样点密度分布的半球域采样模式,例如图6B所示的e=10时的半球域采样模式,基于此,所述确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系,包括:
根据所述现有半球域采样模式与目标半球域采样模式的坐标分量,通过式1、式2以及式3获得所述变换关系为:
其中,x,y,z为现有半球域采样模式的坐标分量,x′,y′,z′为目标半球域采样模式的坐标分量。
对于式1、式2以及式3来说,针对光线追踪中常用的e=1的情形,还可以进一步简化为式4、式5和式6:
在本示例中,进一步地,所述基于所述变换关系,生成目标半球域采样模式,包括:
根据现有半球域采样模式的坐标分量计算式1、式2以及式3,获得目标半球域采样模式。
需要说明的是,在通过半球域采样点密度均匀分布的采样模式g0生成具有coseθ采样点密度分布的目标半球域采样模式g1的过程中,采用上述示例的计算路线如图7所示,从中可以看出,整个计算过程只用到了加减乘除和开方运算,并且仅仅需要计算2次开方运算和1次除法运算,并没有用到最耗时的传统方法需要的超越函数运算(例如sin(),cos(),arcos()),而且计算步骤简洁。
图8为本发明实施例提供的一种生成半球域采样模式的装置80,所述装置80能够应用或设置于图1或图2中所示的GPU12中的射线生成单元24,所述装置80包括:获取部分801、确定部分802和生成部分803;其中,
所述获取部分801,被配置为获取一现有半球域采样模式;
所述确定部分802,被配置为确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系;
所述生成部分803,被配置为基于所述变换关系,生成目标半球域采样模式。
在一些示例中,所述获取部分801,被配置为从存储器中读取预存的一种半球域采样模式;
或者,利用正方形域采样模式通过映射获得所述现有半球域采样模式。
在一些示例中,所述确定部分802,被配置为:基于所述现有半球域采样模式与目标半球域采样模式,确定用于表征由所述现有半球域采样模式在球面旋转至所述目标半球域采样模式的中间映射。
在一些示例中,所述确定部分802,被配置为:
基于所述球面上的任何转动都能够至多分解成三个不同轴的转动的乘积以及所述目标半球域采样模式,确定三个不同轴的转动变换;以及,
根据所述三个不同轴的转动变换以及所述现有半球域采样模式,获得所述中间映射。
在一些示例中,所述生成部分803,被配置为:根据所述球面S上两个关于球心对称的点之间的映射以及所述中间映射,生成目标半球域采样模式。
在一些示例中,相应于现有的半球域采样模式为半球域采样密度均匀分布的采样模式,且目标半球域采样模式为具有采样点密度分布的半球域采样模式;所述确定部分802,被配置为:
根据所述现有半球域采样模式与目标半球域采样模式的坐标分量,通过式7、式8以及式9获得所述变换关系为:
其中,x,y,z为现有半球域采样模式的坐标分量,x′,y′,z′为目标半球域采样模式的坐标分量。
对于上述示例,针对光线追踪中常用的e=1的情形,式7、式8以及式9还可以分别进一步简化为式10、式11和式12:
在一些示例中,所述生成部分803,被配置为根据现有半球域采样模式的坐标分量计算式7、式8以及式9,获得所述目标半球域采样模式。
可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是模块也可以是非模块化的。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体可包含计算机数据存储媒体或通信媒体,通信媒体包含促进将计算机程序从一处传递到另一处的任何媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。举例来说且非限制,此类计算机可读媒体可包括U盘、移动硬盘、RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。。因此,如本文中所使用的术语“处理器”和“处理单元”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合式编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明实施例的技术可实施于各种各样的装置或设备中,所述装置或设备包含无线手持机、集成电路(IC)或一组IC(即,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了本发明的各种方面。这些和其它实施例在所附权利要求书的范围内。需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种生成半球域采样模式的方法,其特征在于,所述方法包括:
获取一现有半球域采样模式;
确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系;
基于所述变换关系,生成目标半球域采样模式;
所述确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系,包括:
基于所述现有半球域采样模式与目标半球域采样模式,确定用于表征由所述现有半球域采样模式在球面旋转至所述目标半球域采样模式的中间映射;
所述基于所述现有半球域采样模式与目标半球域采样模式,确定用于表征由所述现有半球域采样模式在球面旋转至所述目标半球域采样模式的中间映射,包括:
基于所述球面上的任何转动都能够至多分解成三个不同轴的转动的乘积以及所述目标半球域采样模式,确定三个不同轴的转动变换;
根据所述三个不同轴的转动变换以及所述现有半球域采样模式,获得所述中间映射;
所述基于所述变换关系,生成目标半球域采样模式,包括:
根据所述球面S上两个关于球心对称的点之间的映射以及所述中间映射,生成目标半球域采样模式。
2.根据权利要求1所述的方法,其特征在于,相应于现有的半球域采样模式为半球域采样密度均匀分布的采样模式,且目标半球域采样模式为具有coseθ,采样点密度分布的半球域采样模式;所述确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系,包括:
根据所述现有半球域采样模式与目标半球域采样模式的坐标分量,通过式1、式2以及式3获得所述变换关系为:
其中,x,y,z为现有半球域采样模式的坐标分量,x′,y′,z′为目标半球域采样模式的坐标分量。
3.根据权利要求2所述的方法,其特征在于,相应于e=1,所述式1、所述式2以及所述式3分别被简化为式4、式5及式6:
4.根据权利要求2所述的方法,其特征在于,基于所述变换关系,生成目标半球域采样模式,包括:
根据现有半球域采样模式的坐标分量计算式1、式2以及式3,获得所述目标半球域采样模式。
5.一种生成半球域采样模式的装置,其特征在于,所述装置应用于GPU中的射线生成单元,所述装置包括:获取部分、确定部分和生成部分;其中,
所述获取部分,被配置为获取一现有半球域采样模式;
所述确定部分,被配置为确定所述现有半球域采样模式与目标半球域采样模式之间的变换关系;
所述生成部分,被配置为基于所述变换关系,生成目标半球域采样模式;
所述确定部分,还被配置为:基于所述现有半球域采样模式与目标半球域采样模式,确定用于表征由所述现有半球域采样模式在球面旋转至所述目标半球域采样模式的中间映射;
所述确定部分,还被配置为:
基于所述球面上的任何转动都能够至多分解成三个不同轴的转动的乘积以及所述目标半球域采样模式,确定三个不同轴的转动变换;以及,
根据所述三个不同轴的转动变换以及所述现有半球域采样模式,获得所述中间映射;
所述生成部分,还被配置为:根据所述球面S上两个关于球心对称的点之间的映射以及所述中间映射,生成目标半球域采样模式。
6.根据权利要求5所述的装置,其特征在于,相应于现有的半球域采样模式为半球域采样密度均匀分布的采样模式,且目标半球域采样模式为具有coseθ,采样点密度分布的半球域采样模式;所述确定部分,被配置为:
根据所述现有半球域采样模式与目标半球域采样模式的坐标分量,通过式7、式8以及式9获得所述变换关系为:
其中,x,y,z为现有半球域采样模式的坐标分量,x′,y′,z′为目标半球域采样模式的坐标分量。
7.根据权利要求6所述的装置,其特征在于,所述生成部分,被配置为根据现有半球域采样模式的坐标分量计算式7、式8以及式9,获得所述目标半球域采样模式。
8.一种GPU,其特征在于,所述GPU至少包括射线生成单元;所述射线生成单元至少包括权利要求5至7任一项所述的生成半球域采样模式的装置。
9.一种计算机存储介质,所述计算机存储介质存储有生成半球域采样模式的程序,所述生成半球域采样模式的程序被至少一个处理器执行时实现权利要求1至4任一项所述的生成半球域采样模式的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911381045.7A CN111127620B (zh) | 2019-12-27 | 2019-12-27 | 一种生成半球域采样模式的方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911381045.7A CN111127620B (zh) | 2019-12-27 | 2019-12-27 | 一种生成半球域采样模式的方法、装置及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111127620A CN111127620A (zh) | 2020-05-08 |
CN111127620B true CN111127620B (zh) | 2024-02-09 |
Family
ID=70504736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911381045.7A Active CN111127620B (zh) | 2019-12-27 | 2019-12-27 | 一种生成半球域采样模式的方法、装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111127620B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112967369A (zh) * | 2021-04-20 | 2021-06-15 | 北京天空卫士网络安全技术有限公司 | 一种光线展示方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177474A (zh) * | 2013-03-14 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 三维模型的邻域点坐标确定方法及装置、构建方法及装置 |
WO2017014838A1 (en) * | 2015-07-21 | 2017-01-26 | Qualcomm Incorporated | Zero pixel culling for graphics processing |
-
2019
- 2019-12-27 CN CN201911381045.7A patent/CN111127620B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177474A (zh) * | 2013-03-14 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 三维模型的邻域点坐标确定方法及装置、构建方法及装置 |
WO2017014838A1 (en) * | 2015-07-21 | 2017-01-26 | Qualcomm Incorporated | Zero pixel culling for graphics processing |
Non-Patent Citations (2)
Title |
---|
周波 ; 赵吉宾 ; 刘伟军 ; .复杂曲面五轴数控加工刀轴矢量优化方法研究.机械工程学报.2013,(第07期),全文. * |
朱鉴 ; 吴恩华 ; .基于GPU的球面深度图实时绘制.计算机学报.2009,(第02期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111127620A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101820621B1 (ko) | 광선 추적 어플리케이션들에서 트리 순회를 위한 시작 노드 결정 | |
CN108701366B (zh) | 用于图形处理中的阴影光线的树遍历的开始节点确定的方法、设备及可读存储媒体 | |
CN110928695B (zh) | 一种关于显存的管理方法、装置及计算机存储介质 | |
US9659341B2 (en) | Texture pipe as an image processing engine | |
CN108701367B (zh) | 单遍次包围体阶层光栅化 | |
US20160292812A1 (en) | Hybrid 2d/3d graphics rendering | |
CN110930497B (zh) | 一种全局光照相交加速方法、装置及计算机存储介质 | |
CN111209116B (zh) | 一种分配显存空间的方法、装置及计算机存储介质 | |
US9720691B2 (en) | Speculative scalarization in vector processing | |
EP3427229B1 (en) | Visibility information modification | |
CN111127620B (zh) | 一种生成半球域采样模式的方法、装置及计算机存储介质 | |
CN111161391B (zh) | 一种生成追踪路径的方法、装置及计算机存储介质 | |
CN113256764A (zh) | 一种光栅化装置、方法及计算机存储介质 | |
EP3170069B1 (en) | Vector scaling instructions for use in an arithmetic logic unit | |
US10089708B2 (en) | Constant multiplication with texture unit of graphics processing unit | |
CN111243073B (zh) | 一种规则栅格的相交加速方法、装置及计算机存储介质 | |
CN112988364B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 301, Building D, Yeda Science and Technology Park, No. 300 Changjiang Road, Yantai Area, Yantai Free Trade Zone, Shandong Province, 265503 Applicant after: Xi'an Xintong Semiconductor Technology Co.,Ltd. Address before: Room 21101, 11 / F, unit 2, building 1, Wangdu, No. 3, zhangbayi Road, Zhangba Street office, hi tech Zone, Xi'an City, Shaanxi Province Applicant before: Xi'an Xintong Semiconductor Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |