CN113012274A - 一种阴影渲染的方法、装置以及电子设备 - Google Patents
一种阴影渲染的方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN113012274A CN113012274A CN202110310959.5A CN202110310959A CN113012274A CN 113012274 A CN113012274 A CN 113012274A CN 202110310959 A CN202110310959 A CN 202110310959A CN 113012274 A CN113012274 A CN 113012274A
- Authority
- CN
- China
- Prior art keywords
- shadow
- target
- rendering
- directions
- splitting
- 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
Images
Classifications
-
- 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/60—Shadow generation
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- 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/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/04—Texture mapping
-
- 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)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本申请实施例提供一种阴影渲染的方法、装置以及电子设备,所述方法包括:根据渲染目标的当前位置确定光方向;从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图,其中,所述目标阴影信息对应的切分方向是与所述光方向最接近的切分方向;根据所述目标阴影贴图完成本次阴影渲染;确认所述渲染目标的位置发生变化,重复执行上述过程,完成所述渲染目标的移动渲染。本申请的一些实施例由于基于预先存储的各切分方向的硬阴影信息来实现移动物体的渲染,节省了计算量,提升了嵌入式终端对移动物体的阴影渲染的效果。
Description
技术领域
本申请涉及游戏开发领域,具体而言本申请实施例涉及一种阴影渲染的方法、装置以及电子设备。
背景技术
阴影对于提升游戏中渲染对象的真实感非常重要。目前比较流行的技术主要有以下几种:第一种,投射阴影,在于先把阴影从光源的视角先渲染遮挡对象(occluder)得到阴影,再投射到阴影接收对象(receiver)上,这样就可以把阴影作用到不平坦的面上。这种方法的缺点就是需要明确地知道occluder和receiver,并且occluder自身的阴影是无法渲染的,只能适用于简单的场景。第二种,阴影深度贴图(ShadowMap)是一种常用的实时阴影的生成方法。它以光源位置作为视点,基于深度缓存(Z-buffering)算法,将每个像素点的深度值(z-depth)也就是距离光源最近的对象距离记录在Z-buffer中,输出生成阴影深度贴图。渲染物体光照时,将渲染对象的世界坐标转换到光源视角的坐标系中,与阴影深度贴图中对应位置的深度值比较,如果深度值大于阴影深度贴图中深度值,则该点在阴影中。ShadowMap技术需要每帧从光源位置渲染阴影深度贴图,点(omini light)光源还需要沿前后上下左右渲染6次阴影深度贴图,性能开销很大;第三种,阴影烘培技术是一种离线计算阴影的技术。它需要将每个网格对象的三角形通过二位坐标(UV)映射到一张贴图上。烘培计算时,反向获得阴影贴图上的每个像素的世界坐标,从该坐标向光源发射射线,如果被遮挡,则该像素在阴影中。渲染物体时直接采样烘培贴图即可获得阴影信息,开销很小,但是,该技术不支持物体移动或者光源移动,只能适用于静态场景。
因此,如何提升在移动终端上进行阴影渲染的技术效果成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种阴影渲染的方法、装置以及电子设备,本申请的实施例提供一种离线计算多方向入射光阴影,保存为阴影数据(即预先计算并保存的与多个切分方向中各切分方向分别对应的阴影信息),实时渲染还原阴影的技术,本申请的一些实施例适用于可产生阴影的光源固定,渲染目标可水平移动场景中的物体自身阴影渲染。
第一方面,本申请的一些实施例提供一种阴影渲染的方法,所述方法包括:根据渲染目标的当前位置确定光方向;从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图,其中,所述目标阴影信息对应的切分方向是与所述光方向最接近的切分方向;根据所述目标阴影贴图完成本次阴影渲染;确认所述渲染目标的位置发生变化,重复执行上述过程,完成所述渲染目标的移动渲染。
本申请的一些实施例由于基于预先存储的各切分方向的阴影信息来实现移动物体的渲染,节省了计算量,提升了嵌入式终端对移动物体的阴影渲染的效果。
在一些实施例中,在从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图之前,所述方法还包括:获取与所述多个切分方向中各切分方向分别对应的阴影信息。
本申请的实施例为了获取与当前光方向匹配的目标切分方向,需要预先获取已经存储的多个切分方向对应的阴影信息。
在一些实施例中,所述获取与所述多个切分方向中各切分方向分别对应的阴影信息,包括:将使所述物体产生阴影的光抽象为单个方向光;确定所述单个方向光的俯角,将水平角度划分为所述多个切分方向;从所述多个切分方向中选择一个切分方向,标记与所述一个切分方向对应的阴影贴图的每个像素是否在阴影中,得到与所述一个切分方向对应的阴影信息,重复执行该步骤直至获取所述多个切分方向中各切分方向的阴影信息。
本申请的一些实施例提供了一种预先确定各切分方向中阴影信息的方法。
在一些实施例中,在所述从所述多个切分方向中选择一个切分方向,标记与所述一个切分方向对应的阴影贴图的每个像素是否在阴影中,得到与所述一个切分方向对应的阴影信息,重复执行该步骤直至获取所述多个切分方向中各切分方向的阴影信息之前,包括:从烘焙贴图中选择一个像素点;确认所述像素点的重心坐标位于所述渲染目标对应的三角形内;根据所述重心坐标和三角形顶点的世界坐标计算所述像素点的世界坐标;从所述世界坐标出发,以光线反方向发射射线,检测所述射线被遮挡则确认所述像素点是位于阴影中;重复执行上述步骤,遍历所述渲染目标对应的所有的三角形检测光线的遮挡情况,以确认所述烘焙贴图上各像素点是否位于阴影中,得到所述各切分方向的阴影信息。
本申请的实施例采用检测光线的被遮挡情况来确定各像素点是否位于阴影区域,提升了阴影渲染的准确性。
在一些实施例中,所述所有的三角形是通过八叉树管理的。
本申请的实施例由于采用了八叉树对渲染目标包括的多有三角形进行管理,提升数据处理速度。
在一些实施例中,在所述从所述多个切分方向中选择一个切分方向,标记与所述一个切分方向对应的阴影贴图的每个像素是否在阴影中,得到与所述一个切分方向对应的阴影信息,重复执行该步骤直至获取所述多个切分方向中各切分方向的阴影信息之后,所述方法还包括:将得到的所述多个切分方向中各切分方向的阴影信息进行压缩,每个像素点使用一个比特位来表征。
本申请的一些实施例由于采用了压缩各切分方向对应的阴影信息的策略,节省了存储空间,使得移动物体的阴影渲染能更好的在移动终端上实现。
在一些实施例中,所述从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息更新阴影贴图得到目标阴影贴图,包括:从所述多个切分方向中选取与所述光方向最接近的目标切分方向;获取所述目标切分方向的比特位数据;对所述比特位数据进行位操作筛选出与所述目标切分方向对应的所述目标阴影信息;基于所述目标阴影信息动态创建所述目标阴影贴图。
本申请的一些实施例由于采用了比特位数据表征各切分方向,提升了数据处理的速度。
在一些实施例中,所述根据所述目标阴影贴图完成阴影渲染,包括:使用烘焙纹理坐标采样所述目标阴影贴图,完成阴影渲染。
本申请的一些是实施例采用烘焙纹理坐标完成阴影渲染。
第二方面,本申请的一些实施例提供一种阴影渲染的装置,所述装置包括:光方向确定模块,被配置为根据渲染目标的当前位置确定光方向;目标阴影贴图获取模块,被配置为从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图,其中,所述目标阴影信息对应的切分方向是与所述光方向最接近的切分方向;阴影渲染控制模块,被配置为根据所述目标阴影贴图完成本次阴影渲染。
第三方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可上述第一方面所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的渲染目标的俯角和仰角示意图;
图2为本申请实施例提供的16个切分方向的示意图;
图3为本申请实施例提供的阴影渲染的方法的流程图;
图4为本申请实施例提供的阴影渲染的装置的组成框图;
图5为本申请实施例提供的移动终端的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请的实施例的实施过程可以分为两个阶段,第一个阶段为数据准备阶段,即获取多个切分方向的阴影信息,第二阶段为获取渲染目标当前位置确定的光方向,根据光方向从预先获取的多个切分方向中选择目标切分方向对应的目标阴影信息,之后再根据目标阴影信息进行本次渲染,如果确定渲染目标的位置发生变化则重新选择目标阴影信息,完成阴影渲染。不难理解的是,本申请的一些实施例通过多次阴影渲染即可实现移动物体的阴影渲染,由于本申请实施例存储的是多个切分方向的阴影信息因此可以减少对计算资源和存储资源的需求,可以更好的在移动终端等终端设备上实施。
下面示例性阐述第一阶段对应的技术方案。
如图1所示,本申请的实施例将使渲染目标产生阴影的光抽象为单个方向光,首先确定光方向的俯角(即图1的角A),将水平角度(即水平面对应的360度)做等分处理得到多个切分方向(例如,将图1水平角度做16等分得到16个切分方向,角B为切分得到16个角度中的一个)。取渲染目标(即网格物体)的正方向(例如,默认为z轴正方向)作为初始方向,每次阴影计算结束后正方向顺时针转动一定角度(例如,将360度等分为16个切分方向,则每次转动22.5度,如图2示出了16个切分方向对应的16个烘焙光方向),光的水平方向永远与网格物体正方向相对,如图2所示。需要说明的是,阴影计算的目标是标记阴影贴图的每个像素是否在阴影中。
也就是说,在本申请的一些实施例中,为了预先获取与所述多个切分方向中各切分方向分别对应的阴影信息,本申请一些实施例的阴影渲染的方法对应的方案还需要预先获取各切分方向的阴影信息。例如,为了获得各切分方向的阴影信息,阴影渲染的方法可以包括:第一步,将使所述物体产生阴影的光抽象为单个方向光;第二步,确定所述单个方向光的俯角,将水平角度划分为所述多个切分方向;第三步,从所述多个切分方向中选择一个切分方向,标记与所述一个切分方向对应的阴影贴图的每个像素是否在阴影中,得到与所述一个切分方向对应的阴影信息,重复执行该步骤直至获取所述多个切分方向中各切分方向的阴影信息。
在本申请的一些实施例中,上述第三步包括:从烘焙贴图中选择一个像素;确认所述像素的重心坐标位于所述渲染目标对应的三角形内;根据所述重心坐标和三角形顶点的世界坐标计算所述像素的世界坐标;从所述世界坐标出发,以光线反方向发射射线,检测所述射线被遮挡则确认所述像素是位于阴影中;重复执行上述步骤,遍历所述渲染目标对应的所有的三角形检测光线的遮挡情况,以确认所述烘焙贴图上各像素是否位于阴影中,得到所述各切分方向的阴影信息。例如,为了提升数据处理速度,所述所有的三角形是通过八叉树管理的。
在本申请的一些实施例中,为了进一步压缩存储数据占据的存储空间,上述第三步之后,第一阶段的方案对应的方法还包括:将得到的所述多个切分方向中各切分方向的阴影信息进行压缩,每个像素使用一个比特位来表征。也就是说,每个切分方向的阴影信息使用一个比特位来表征,每个像素使用16bit保存16个切分方向。
下面以十六个切分方向作为一个示例,阐述本申请一些实施例的阴影计算的过程。
烘培贴图上的每个像素,遍历网格物体三角形,使用三角形的纹理坐标UV坐标构成平面三角形,计算当前像素点的重心坐标(Barycentric coordinate),重心坐标的x,y,z分量都大于0则该像素位于当前三角形内。
使用重心坐标及三角形顶点的世界坐标计算该像素的世界坐标。从该坐标出发,以光线反方向发射射线,检测是否被遮挡,若有,则该像素为在阴影中。
检测光线的遮挡需要遍历对象所有的三角形,为了加速这一进程,本申请的一些实施例将所有三角形纳入8叉树进行管理。可以理解的是,8叉树是一种空间查询加速手段,将所有的三角形插入到8叉树中,可以加速碰撞检测的速度。
遍历所有像素,缓存当前阴影贴图(即未压缩的阴影信息),切换光方向计算下一张阴影贴图,直到16个方向计算完毕。
将缓存的16张阴影贴图进行压缩,每个像素使用一个比特位来表示,保存为2字节(16bit)类型的数组。例如,0表示对应像素在阴影中,1表示对应像素不在阴影中。
也就是说,获取16个切分方向的阴影信息的步骤包括如下A-F步骤。A,新建一个2D数组(例如,一个整数类型保存0和1值即可);B,设置三角形面片(Mesh)的纹理坐标UV,对应到2D数组上,保障每个三角面片都能对应数组中一块不与其他三角面片重叠的区域;C,渲染目标的三角形面片(Mesh)放入8叉树数据结构,加速查询效率;D,遍历A中新建的数组的每个元素,通过元素在B过程中设置的UV坐标获得该元素在对应的三角形面片上的具体位置;E,从D过程中获得元素的位置发出射线,射线方向为光的反方向,通过查询C中的8叉树,寻找是否有其他三角形面片与射线相交,若有保存0(表征对应像素点在阴影中),无保存1(表征对应像素点不在阴影中);F,对预先设定的16个光方向重复A-E步骤,得到16个数组,将每个像素对应的X,Y坐标的16个0或1的值放入一个设定类型(例如,short类型)的16位(bit),保存为一个数组(即阴影信息数据)。像素点是几何意义上的像素点,而元素用于保存该像素点是否在阴影中的结果。
需要说明的是,上述对16个切分方向分别进行阴影计算的方法仅是示例性说明,本申请的实施例并不限定具体的阴影计算方法。
下面示例性阐述第二阶段,即根据多个切分方向的阴影信息进行具体阴影渲染的过程。
如图3所示,本申请的一些实施例提供一种阴影渲染的方法,所述方法包括:S101,根据渲染目标的当前位置确定光方向;S102,从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图,其中,所述目标阴影信息对应的切分方向是与所述光方向最接近的切分方向;S103,根据所述目标阴影贴图完成本次阴影渲染;S104,确认所述渲染目标的位置发生变化,重复执行上述过程,完成所述渲染目标的移动渲染。
下面示例性阐述图3的各步骤。
S101涉及的阴影信息可以是采用第一阶段的方案离线计算好的阴影信息,这些阴影信息是一个数据块,包含所有预计算的方向的阴影数据,当存在具体渲染目标时可以解析阴影数据得到其中一个或多个方向贴图。
S101包括根据渲染目标当前位置与光源位置类型计算当前的光方向。
在本申请的一些实施例中S102包括:从所述多个切分方向中选取与所述光方向最接近的目标切分方向;获取所述目标切分方向的比特位数据;对所述比特位数据进行位操作筛选出与所述目标切分方向对应的所述目标阴影信息;基于所述目标阴影信息动态创建所述目标阴影贴图。例如,确定与所述光方向最接近的目标切分方向的策略包括:计算当前光方向水平分量与所有切分方向之间的夹角,选取夹角最小的切分方向作为目标切分方向。目标切分方向的比特位数据保存了16个切分方向的阴影数据,而像素的比特位用于保存该像素在其中之一的切分方向上是否在阴影中的结果。
在本申请的一些实施例中,S103包括:使用烘焙纹理坐标采样所述目标阴影贴图,完成阴影渲染。
需要说明的是,为了执行S102需要首选执行第一阶段的方案以获取多个切分方向各自的阴影信息,为了避免重复对于获取各切分方向阴影信息的方法可参考上述第一阶段记载的技术手段,在此不做过多赘述。
以16个切分方向为例,示例性阐述本申请一些实施例的第二阶段包括的渲染目标的阴影的过程。
对渲染目标进行渲染时,根据渲染目标的当前位置与光源位置类型计算当前的光方向,从16个切分方向中选取最接近的一个,获得当前的光方向对应的目标切分方向的比特位。对数据进行位操作,筛选出当前光方向中的阴影信息,动态创建阴影贴图并做高斯模糊。光照渲染时使用烘培UV采样阴影贴图,阴影渲染完毕。当渲染目标对应的物体的位置发生改变时,重新计算光方向并更新阴影贴图,保持阴影的正确性。
例如,第一步,加载数据,获取16个切分方向的定义和阴影信息数据;第二步,根据渲染目标当前位置确定当前光方向;第三步,遍历16个光方向,计算当前光方向与它们的夹角,选择夹角最小的方向作为目标切分方向,设置位运算Mask.例如,最小夹角光方向为第2个方向,则Mask为0x0100 0000 0000 0000。第四步,新建一张贴图,贴图尺寸等同第一步中阴影信息数据中的2维数组的尺寸;第五步,遍历第一步获取的阴影信息数据,对每个元素与第三步中的Mask进行与计算,结果为0则在新建贴图的对应像素写入黑色,若结果为1则写入白色;第六步,将第五步中的贴图作为渲染目标的阴影贴图使用;第七步,当渲染目标位置发生变化,重复步骤第一步-第六步,但当第三步中的Mask不发生变换时,则执行第三步后可直接结束,不再执行后续步骤。
请参考图4,图4示出了本申请实施例提供的阴影渲染的装置,应理解,该装置与上述图3提供的阴影渲染的方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该阴影渲染的装置,包括:光方向确定模块101,被配置为根据渲染目标的当前位置确定光方向;目标阴影贴图获取模块102,被配置为从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图,其中,所述目标阴影信息对应的切分方向是与所述光方向最接近的切分方向;阴影渲染控制模块103,被配置为根据所述目标阴影贴图完成本次阴影渲染。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述图3所示方法中的对应过程,在此不再过多赘述。
如图5所示,本申请的一些实施例提供一种电子设备500,该电子设备500包括存储器510、处理器520以及存储在所述存储器510上并可在所述处理器520上运行的计算机程序,其中,所述处理器520通过总线530读取程序并执行所述程序时可上述图3所示的方法。
在本申请的一些实施例中的电子设备500还包括显示器540,且显示器540可以用于显示经过阴影渲染的图像。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图3中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种阴影渲染的方法,其特征在于,所述方法包括:
根据渲染目标的当前位置确定光方向;
从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图,其中,所述目标阴影信息对应的切分方向是与所述光方向最接近的切分方向;
根据所述目标阴影贴图完成本次阴影渲染;
确认所述渲染目标的位置发生变化,重复执行上述过程,完成所述渲染目标的移动渲染。
2.如权利要求1所述的方法,其特征在于,在从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图之前,所述方法还包括:
获取与所述多个切分方向中各切分方向分别对应的阴影信息。
3.如权利要求2所述的方法,其特征在于,所述获取与所述多个切分方向中各切分方向分别对应的阴影信息,包括:
将使所述渲染目标产生阴影的光抽象为单个方向光;
确定所述单个方向光的俯角,将水平角度划分为所述多个切分方向;
从所述多个切分方向中选择一个切分方向,标记与所述一个切分方向对应的阴影贴图的每个像素是否在阴影中,得到与所述一个切分方向对应的阴影信息,重复执行该步骤直至获取所述多个切分方向中各切分方向的阴影信息。
4.如权利要求3所述的方法,其特征在于,所述从所述多个切分方向中选择一个切分方向,标记与所述一个切分方向对应的阴影贴图的每个像素是否在阴影中,得到与所述一个切分方向对应的阴影信息,重复执行该步骤直至获取所述多个切分方向中各切分方向的阴影信息包括:
从烘焙贴图中选择一个像素;
确认所述像素的重心坐标位于所述渲染目标对应的三角形内;
根据所述重心坐标和三角形顶点的世界坐标计算所述像素的世界坐标;
从所述世界坐标出发,以光线反方向发射射线,检测所述射线被遮挡则确认所述像素是位于阴影中;
重复执行上述步骤,遍历所述渲染目标对应的所有的三角形检测光线的遮挡情况,以确认所述烘焙贴图上各像素是否位于阴影中,得到所述各切分方向的阴影信息。
5.如权利要求4所述的方法,其特征在于,所述所有的三角形是通过八叉树管理的。
6.如权利要求3所述的方法,其特征在于,在所述从所述多个切分方向中选择一个切分方向,标记与所述一个切分方向对应的阴影贴图的每个像素是否在阴影中,得到与所述一个切分方向对应的阴影信息,重复执行该步骤直至获取所述多个切分方向中各切分方向的阴影信息之后,所述方法还包括:
将得到的所述多个切分方向中各切分方向的阴影信息进行压缩,每个像素点使用一个比特位来表征。
7.如权利要求1所述的方法,其特征在于,所述从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息更新阴影贴图得到目标阴影贴图,包括:
从所述多个切分方向中选取与所述光方向最接近的目标切分方向;
获取所述目标切分方向的比特位数据;
对所述比特位数据进行位操作筛选出与所述目标切分方向对应的所述目标阴影信息;
基于所述目标阴影信息动态创建所述目标阴影贴图。
8.如权利要求1所述的方法,其特征在于,所述根据所述目标阴影贴图完成阴影渲染,包括:使用烘焙纹理坐标采样所述目标阴影贴图,完成阴影渲染。
9.一种阴影渲染的装置,其特征在于,所述装置包括:
光方向确定模块,被配置为根据渲染目标的当前位置确定光方向;
目标阴影贴图获取模块,被配置为从多个切分方向中选择与所述光方向对应的目标阴影信息,并根据所述目标阴影信息得到目标阴影贴图,其中,所述目标阴影信息对应的切分方向是与所述光方向最接近的切分方向;
阴影渲染控制模块,被配置为根据所述目标阴影贴图完成本次阴影渲染。
10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-8中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110310959.5A CN113012274B (zh) | 2021-03-24 | 2021-03-24 | 一种阴影渲染的方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110310959.5A CN113012274B (zh) | 2021-03-24 | 2021-03-24 | 一种阴影渲染的方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113012274A true CN113012274A (zh) | 2021-06-22 |
CN113012274B CN113012274B (zh) | 2023-07-28 |
Family
ID=76405752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110310959.5A Active CN113012274B (zh) | 2021-03-24 | 2021-03-24 | 一种阴影渲染的方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113012274B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112967366A (zh) * | 2021-03-12 | 2021-06-15 | 北京壳木软件有限责任公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
CN115239869A (zh) * | 2022-09-22 | 2022-10-25 | 广州简悦信息科技有限公司 | 阴影处理方法、阴影渲染方法及设备 |
CN116109758A (zh) * | 2023-04-07 | 2023-05-12 | 北京渲光科技有限公司 | 一种光源投影位置定位、场景渲染的方法及装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120087145A1 (en) * | 2010-10-06 | 2012-04-12 | Shoot The Moon Products Ii, Llc | Light Emitting Decorative Panels |
US20140176574A1 (en) * | 2010-12-24 | 2014-06-26 | Adshir Ltd | Method and Apparatus for Interprocessor Communication Employing Modular Space Division |
CN104143205A (zh) * | 2013-05-11 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 大规模真实感体积云的实时渲染方法 |
CN104732579A (zh) * | 2015-02-15 | 2015-06-24 | 浙江传媒学院 | 基于光分片的多光源场景渲染方法 |
CN105931286A (zh) * | 2016-03-29 | 2016-09-07 | 赵岳生 | 三维视景仿真gis地理信息系统中的地形阴影实时仿真方法 |
CN107341853A (zh) * | 2017-07-13 | 2017-11-10 | 河北中科恒运软件科技股份有限公司 | 超大虚拟场景和动态摄屏的虚实融合方法及系统 |
CN108280887A (zh) * | 2018-02-11 | 2018-07-13 | 鲸彩在线科技(大连)有限公司 | 一种阴影图确定方法及装置 |
CN108986195A (zh) * | 2018-06-26 | 2018-12-11 | 东南大学 | 一种结合环境映射和全局光照渲染的单镜头混合现实实现方法 |
CN109448084A (zh) * | 2017-08-23 | 2019-03-08 | 当家移动绿色互联网技术集团有限公司 | 一种基于体素化全局光照算法进行光贴图烘培的算法 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN110570505A (zh) * | 2019-09-11 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN110705727A (zh) * | 2019-09-30 | 2020-01-17 | 山东建筑大学 | 基于随机森林算法的光伏电站阴影遮挡诊断方法及系统 |
CN111968216A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
CN112215936A (zh) * | 2020-10-16 | 2021-01-12 | 广州虎牙科技有限公司 | 图像渲染方法、装置、电子设备及存储介质 |
-
2021
- 2021-03-24 CN CN202110310959.5A patent/CN113012274B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120087145A1 (en) * | 2010-10-06 | 2012-04-12 | Shoot The Moon Products Ii, Llc | Light Emitting Decorative Panels |
US20140176574A1 (en) * | 2010-12-24 | 2014-06-26 | Adshir Ltd | Method and Apparatus for Interprocessor Communication Employing Modular Space Division |
CN104143205A (zh) * | 2013-05-11 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 大规模真实感体积云的实时渲染方法 |
CN104732579A (zh) * | 2015-02-15 | 2015-06-24 | 浙江传媒学院 | 基于光分片的多光源场景渲染方法 |
CN105931286A (zh) * | 2016-03-29 | 2016-09-07 | 赵岳生 | 三维视景仿真gis地理信息系统中的地形阴影实时仿真方法 |
CN107341853A (zh) * | 2017-07-13 | 2017-11-10 | 河北中科恒运软件科技股份有限公司 | 超大虚拟场景和动态摄屏的虚实融合方法及系统 |
CN109448084A (zh) * | 2017-08-23 | 2019-03-08 | 当家移动绿色互联网技术集团有限公司 | 一种基于体素化全局光照算法进行光贴图烘培的算法 |
CN108280887A (zh) * | 2018-02-11 | 2018-07-13 | 鲸彩在线科技(大连)有限公司 | 一种阴影图确定方法及装置 |
CN108986195A (zh) * | 2018-06-26 | 2018-12-11 | 东南大学 | 一种结合环境映射和全局光照渲染的单镜头混合现实实现方法 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN110570505A (zh) * | 2019-09-11 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN110705727A (zh) * | 2019-09-30 | 2020-01-17 | 山东建筑大学 | 基于随机森林算法的光伏电站阴影遮挡诊断方法及系统 |
CN111968216A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
CN112215936A (zh) * | 2020-10-16 | 2021-01-12 | 广州虎牙科技有限公司 | 图像渲染方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
谢妍梅: "基于OpenGL的纺织品三维场景模拟系统", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
黄波;: "底图干扰下非均匀运动图像阴影滤除仿真", 计算机仿真 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112967366A (zh) * | 2021-03-12 | 2021-06-15 | 北京壳木软件有限责任公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
CN112967366B (zh) * | 2021-03-12 | 2023-07-28 | 北京壳木软件有限责任公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
CN115239869A (zh) * | 2022-09-22 | 2022-10-25 | 广州简悦信息科技有限公司 | 阴影处理方法、阴影渲染方法及设备 |
CN115239869B (zh) * | 2022-09-22 | 2023-03-24 | 广州简悦信息科技有限公司 | 阴影处理方法、阴影渲染方法及设备 |
CN116109758A (zh) * | 2023-04-07 | 2023-05-12 | 北京渲光科技有限公司 | 一种光源投影位置定位、场景渲染的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113012274B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113012274B (zh) | 一种阴影渲染的方法、装置以及电子设备 | |
KR101559637B1 (ko) | 테셀레이션 시간이 테셀레이션의 양에 따라 선형적으로 증가하는 테셀레이터 | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
US8531457B2 (en) | Apparatus and method for finding visible points in a cloud point | |
US7119806B1 (en) | System, method and article of manufacture for shadow mapping | |
US8743114B2 (en) | Methods and systems to determine conservative view cell occlusion | |
US6593923B1 (en) | System, method and article of manufacture for shadow mapping | |
US9508191B2 (en) | Optimal point density using camera proximity for point-based global illumination | |
US8698799B2 (en) | Method and apparatus for rendering graphics using soft occlusion | |
KR20170083891A (ko) | 가속 구조를 생성하는 방법 및 장치 | |
CN111968214A (zh) | 一种体积云渲染方法、装置、电子设备及存储介质 | |
KR102252375B1 (ko) | 광선-노드 교차검사를 수행하는 방법 및 장치 | |
CN116310060B (zh) | 一种渲染数据的方法、装置、设备及存储介质 | |
KR101118597B1 (ko) | 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템 | |
JP2022520525A (ja) | 光強度画像を生成するための装置及び方法 | |
CN111145085B (zh) | 拣选片元的方法和模型栅格化的方法、系统、设备和介质 | |
CN115131513A (zh) | 一种三维地形裁剪方法、装置、设备及可读存储介质 | |
GB2605360A (en) | Method, Apparatus and Storage Medium for Realizing Geometric Viewing Frustum of OCC Tree in Smart City | |
CN115803782A (zh) | 具有实时深度图的感受几何结构的增强现实效果 | |
CN111739074A (zh) | 一种场景多点光源渲染方法及装置 | |
JP6487578B1 (ja) | プログラム、記録媒体、及び影描画方法 | |
KR102304932B1 (ko) | 그래픽스 데이터를 처리하는 방법, 장치 및 기록매체 | |
CN117611781B (zh) | 一种实景三维模型的压平方法及装置 | |
CN116109758B (zh) | 一种光源投影位置定位、场景渲染的方法及装置 | |
CN117876209A (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 |