CN116188668B - 一种基于ios平台的阴影渲染的方法、介质及电子设备 - Google Patents
一种基于ios平台的阴影渲染的方法、介质及电子设备 Download PDFInfo
- Publication number
- CN116188668B CN116188668B CN202310458116.9A CN202310458116A CN116188668B CN 116188668 B CN116188668 B CN 116188668B CN 202310458116 A CN202310458116 A CN 202310458116A CN 116188668 B CN116188668 B CN 116188668B
- Authority
- CN
- China
- Prior art keywords
- light source
- vector
- target
- shadow
- matrix
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000009877 rendering Methods 0.000 title claims abstract description 68
- 239000011159 matrix material Substances 0.000 claims abstract description 104
- 238000013507 mapping Methods 0.000 claims abstract description 33
- 238000005286 illumination Methods 0.000 claims abstract description 23
- 239000013598 vector Substances 0.000 claims description 130
- 230000000007 visual effect Effects 0.000 claims description 53
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000010606 normalization Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 101100533306 Mus musculus Setx gene Proteins 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
-
- 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/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供一种基于IOS平台的阴影渲染的方法、介质及电子设备,所述方法包括:根据目标原则获取光源透视投影矩阵和光源视觉矩阵,其中,所述目标原则为使场景中距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大;根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染。本申请的一些实施例基于IOS平台上提出了的基于光栅化比率映射和光照方向重指定的三维阴影渲染方法,可以在得到相同阴影映射精度的前提下,有效减少使用的内存和计算开销。
Description
技术领域
本申请涉及电阴影渲染领域,具体而言本申请实施例涉及一种基于IOS平台的阴影渲染的方法、介质及电子设备。
背景技术
三维图形渲染是指在电子计算机上将三维模型转换为二维图像的制图过程,类似于在现实世界中使用照相机对三维的现实世界进行拍照得到照片的过程。在三维图形渲染中,阴影效果至关重要,因为它可以有效增强空间渲染的立体效果。因此,阴影渲染技术广泛应用于三维图形渲染场景中,涉及到的应用类型包括但不限于游戏、影视、模拟、虚拟现实。IOS是苹果公司为其移动设备所开发的专有移动操作系统,为其公司的许多移动设备提供操作界面,支持设备包括iPhone、iPad和iPod Touch。光栅化比率映射(RasterizationRate Map,简称RRM)是苹果公司为其A13及之后的处理器设计的降低采样率的方法,可通过指定光栅化比率在减少实际使用的像素个数,进而达到渲染降采样的目的。
现在主流的阴影渲染技术基于阴影映射(ShadowMap)方案。此方案使用二维的纹理贴图来记录三维场景的阴影映射信息,需要在纹理贴图大小和阴影映射信息精度之间做出取舍。若用较小的纹理贴图去记录三维场景的信息,会导致阴影映射精度的丢失。为了提升阴影映射精度,则要使用更大的纹理贴图,但这会造成更大的内存和计算开销。
因此如何平衡两个参量以通过更少的阴影映射信息实现更高精度的阴影渲染效果成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种基于IOS平台的阴影渲染的方法、介质及电子设备,本申请的一些实施例基于苹果手机操作系统IOS(即iPhone Operating System)平台上提出了的基于光栅化比率映射和光照方向重指定的三维阴影渲染方法,可以在得到相同阴影映射精度的前提下,有效减少使用的内存和计算开销。
第一方面,本申请实施例提供一种基于IOS平台的阴影渲染的方法,所述方法包括:根据目标原则获取光源透视投影矩阵和光源视觉矩阵,其中,所述目标原则为使场景中距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大;根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染。
本申请的一些实施例根据目标原则使得在三维空间中逐渐远离视点的物体投影到阴影纹理图上所在位置的光栅化比率值也越小,或者若内存资源足够精度要求高的场合也可以针对每个层级的阴影纹理贴图分别利用本申请的透视投影矩阵来获取。
在一些实施例中,所述根据目标原则获取光源透视投影矩阵和光源视觉矩阵包括:依据目标原则重定向光源的方向,得到用于表征目标方向的目标向量,其中,所述目标原则为场景中距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大;根据所述目标向量计算所述光源透视投影矩阵和所述光源视觉矩阵。
本申请的一些实施例提供一种通过重定向光源得到满足要求的透视投影矩阵的方法。
在一些实施例中,所述依据目标原则重定向光源的方向,得到用于表征目标方向的目标向量,包括:根据摄像机的朝向和摄像机向右的方向得出所述摄像机向上的方向;根据所述摄像机的朝向和所述摄像机向上的方向确定一个平面,得到目标平面;调整所述光源的方向使所述目标方向平行于所述目标平面。
在一些实施例中,所述依据目标原则重定向光源的方向,得到用于表征目标方向的目标向量,包括:重指定所述光源的三维世界坐标的照射方向,得到与光源照射方向对应的光源照射方向目标向量;重指定所述光源的三维世界坐标的向上的方向,得到光源向上方向目标向量;其中,所述根据所述目标向量计算所述光源透视投影矩阵和所述光源视觉矩阵,包括:根据所述光源照射方向目标向量和所述光源向上方向目标向量计算所述透视投影矩阵。
本申请的一些实施例通过重定向光源的照射方向以及光源向上的方向,可以让视点投影到阴影纹理图中的固定的区域。
在一些实施例中,所述重指定所述光源的三维世界坐标的照射方向得到与光源照射方向对应的光源照射方向目标向量,包括:根据第一向量和第二向量计算所述光源照射方向目标向量,其中,所述第一向量是所述光源的三维世界坐标照射方向的单位向量,所述第二向量是视点的世界坐标三维向右方向的单位向量。
本申请的一些实施例根据摄像机的朝向(即第一向量)和摄像机向右的方向(第二向量)可以算出一个摄像机向上的方向,摄像机的朝向和向上的方向可以组成一个平面,调整这个光源的方向使其平行于这个平面,进而实现目标原则。
在一些实施例中,通过如下公式计算所述光源照射方向目标向量:
LightDirFinal = normalize(LightDir – CameraRight * dot(LightDir,CameraRight))
其中, LightDir为所述第一向量,CameraRight为所述第二向量,dot表示表示向量的内积,normalize表示对向量进行归一化操作,LightDirFinal为所述光源照射方向目标向量。
本申请的一些实施例提供一种量化光源照射方向目标向量的计算公式,提升确定该值的准确性和客观性。
在一些实施例中,所述重指定所述光源的三维世界坐标的向上的方向,得到光源向上方向目标向量,包括:根据所述光源照射方向目标向量和第二向量计算所述光源向上方向目标向量,其中,所述第二向量是视点的世界坐标三维向右方向的单位向量。
本申请的一些实施例还提供一种调整光源向上方向的策略,以得到满足目标原则的投影矩阵。
在一些实施例中,所述光源向上方向目标向量是通过如下公式计算得到的:
LightUpFinal = cross(CameraRight, LightDirFinal)
其中,CameraRight为所述第二向量, LightDirFinal为所述光源照射方向目标向量。
本申请的一些实施例提供一种量化光源向上方向目标向量的方法,提升计算该值的准确性和客观性。
在一些实施例中,所述光源位置采用光源位置向量LightPos表征,所述光源方向采用光源照射方向目标向量LightDirFinal和光源向上方向目标向量LightUpFinal进行表征,其中,所述根据目标向量计算透视投影矩阵,包括:以LightPos为视点位置,以LightDirFinal为朝向并以LightUpFinal为向上的方向,计算光源视觉矩阵LightViewMatrix;利用所述光源视觉矩阵LightViewMatrix,对视点视锥的八个顶点进行空间变化,得到8个光源空间下的光源视觉三维坐标数组LightViewFrustem[8];遍历所述光源视觉三维坐标数组LightViewFrustem,计算所述光源视觉三维坐标数组中所有元素的z分量的绝对值的最大值记为LightFar,计算所述光源视觉三维坐标数组中所有元素的z分量的绝对值的最小值记为LightNear;遍历所述光源视觉三维坐标数组LightViewFrustem,令所述光源视觉三维坐标数组中每个元素除以对应元素的z分量的绝对值,更新8个元素的数组得到目标光源视觉向量数组LightViewFrustemDir [8];遍历所述目标光源视觉向量数组LightViewFrustemDir,计算所述光源视觉向量数组中所有元素的x分量的最大值记为TanRight, 计算所述光源视觉向量数组中所有元素的x分量的最小值记为TanLeft, 计算所述光源视觉向量数组中所有元素的y分量的最大值记为TanUp, 计算所述光源视觉向量数组中所有元素的y分量的最小值记为TanDown;以arctan(TanLeft)为左视场角,arctan(TanRight)为右视场角,arctan(TanUp)为上视场角,arctan(TanDown)为下视场角,LightNearFinal为第一平面距离并以LightFar为第二平面距离,计算非对称的所述透视投影矩阵LightProjectMatrix,其中,LightNearFinal为光源视锥的近平面,0<LightNearFina<LightNear。
在一些实施例中,所述根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染,包括:根据所述光源视觉矩阵和所述透视投影矩阵对场景进行深度渲染,得到阴影纹理贴图;根据所述阴影纹理贴图判断出各像素点与光源之间是否存在遮挡物体,进而确定该像素点是否处于阴影中完成阴影渲染。
第二方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意实施例所述的方法。
第三方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任意实施例所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的阴影渲染系统的组成架构图;
图2为本申请实施例提供的阴影渲染的流程图之一;
图3为本申请实施例提供的基于IOS平台的阴影渲染的方法的流程图之一;
图4为本申请实施例提供的基于IOS平台的阴影渲染的方法的流程图之二;
图5为本申请实施例提供的基于IOS平台的阴影渲染的装置的组成框图;
图6为本申请实施例提供的电子设备组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
相关技术的阴影渲染技术基于阴影映射(ShadowMap)方案。此方案使用二维的纹理贴图来记录三维场景中连续区域的阴影信息。为了在保证阴影精度的前提下减少使用的纹理贴图大小,一些技术方案被提出,包括级联阴影映射(Cascade Shadow Map)和平行分割阴影映射(Parallel Split Shadow Mapping)。在三维图形渲染中有一个类似于现实世界摄相机的视点。这些技术的出发点是三维场景中距离视点较远的区域,在渲染后得到的二位图像中的表现精度就越低,所以较远的区域使用较低的阴影精度也不会影响渲染效果。为此,这些方法首先要根据到视口距离的远近将场景划分成多个层级区域,并为每个区域都单独配置一个相同大小的纹理贴图用来记录阴影信息,因此区域越多对应的纹理贴图(即阴影纹理贴图)的数量也越多。根据距离划分区域时,可人为划分、可均匀划分、可采用指数方法非均匀划分、也可采用均匀和指数混合的方法。在划分好区域后,会为每个区域分配一个记录阴影纹理贴图。
不难理解的是,采用这种方式需要的阴影纹理数量多对应的内存空间消耗更大计算量也更大,至少为了解决该技术问题本申请实施例提供一种新的透视投影矩阵确定方式,通过该透视投影矩阵可以在一张阴影纹理贴图上实现距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大,即对应的分辨率也越大。
请参看图1,图1为本申请一些实施例提供的阴影渲染系统,该系统示例性包括终端102以及服务器101,其中,终端102可以将相关待渲染数据提供至服务器,由服务器得到阴影渲染结果数据再反馈终端102,在终端102上显示阴影渲染结果。
需要说明的是,图1仅用于示例性说明本申请的应用场景,可以理解的是图1的系统也可以由移动终端等单一设备来实现阴影渲染,此时并不需要图1的服务器101。
相关技术在实现阴影渲染时,包括如图2所示的以下步骤:
S101,获取透视投影矩阵。
S102,根据透视投影矩阵获取阴影纹理贴图。
S111103,根据阴影纹理贴图完成阴影渲染。
需要说明的是,上述S101在获取透视投影矩阵时包括如下步骤:获取阴影区域;根据阴影区域的位置反推光源位置;根据反推出的光源位置得到透视投影矩阵。与此不同的是,本申请还需要根据配置的光栅化比率参数值对反推出的光源位置(即初始光源位置)进行重定向,以使场景中距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大。
如图3所示,下面示例性阐述本申请一些实施例提供的基于IOS平台的阴影渲染的方法。
本申请实施例提供一种基于IOS平台的阴影渲染的方法,该方法包括:S201,根据目标原则获取光源透视投影矩阵和光源视觉矩阵,其中,所述目标原则为使场景中距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大;S202,根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染。
需要说明的是,在本申请的一些实施例可以通过重定向光源方式得到透视投影矩阵。例如,在本申请的一些实施例中S201示例性包括:依据目标原则重定向光源的方向,得到用于表征目标方向的目标向量;根据所述目标向量计算所述光源透视投影矩阵和所述光源视觉矩阵。
可以理解的是,本申请的一些实施例根据目标原则调整光源方向后,使得场景中距离摄像机(即视点)越近的位置,通过光源透视投影矩阵和光源视觉矩阵进行变换,得到的阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大,进而可以在一张阴影纹理图上实现多张阴影纹理图才能实现的阴影多层级技术效果,有效减少使用的内存和计算开销;或者若内存资源足够精度要求高的场合也可以针对每个层级的阴影纹理贴图分别利用本申请的透视投影矩阵来获取。
下面示例性阐述S201的实现过程。
在本申请的一些实施例中,S201所述的依据目标原则重定向光源的方向得到用于表征目标方向的目标向量的过程示例性包括:根据摄像机的朝向和摄像机向右的方向得出所述摄像机向上的方向;根据所述摄像机的朝向和所述摄像机向上的方向确定一个平面,得到目标平面;调整所述光源的方向使所述目标方向平行于所述目标平面。
在本申请的一些实施例中,S201所述依据目标原则重定向光源的方向,得到用于表征目标方向的目标向量的过程示例性包括:
第一步,重指定所述光源的三维世界坐标的照射方向,得到与光源照射方向对应的光源照射方向目标向量。
例如,在本申请的一些实施例中,该第一步示例性包括:根据第一向量和第二向量计算所述光源照射方向目标向量,其中,所述第一向量是所述光源的三维世界坐标照射方向的单位向量,所述第二向量是视点的世界坐标三维向右方向的单位向量。也就是说,本申请的一些实施例根据摄像机的朝向(即第一向量)和摄像机向右的方向(第二向量)可以算出一个摄像机向上的方向,摄像机的朝向和向上的方向可以组成一个平面,调整这个光源的方向使其平行于这个平面,进而实现目标原则。
例如,在本申请的一些实施例中,通过如下公式计算所述光源照射方向目标向量:
LightDirFinal = normalize(LightDir – CameraRight * dot(LightDir,CameraRight))
其中, LightDir为所述第一向量,CameraRight为所述第二向量,dot表示表示向量的内积,normalize表示对向量进行归一化操作,LightDirFinal为所述光源照射方向目标向量。
本申请的一些实施例个一种量化光源照射方向目标向量的计算公式,提升确定该值的准确性和客观性。
第二步,重指定所述光源的三维世界坐标的向上的方向,得到光源向上方向目标向量。
例如,在本申请的一些实施例中,该第二步示例性包括:根据所述光源照射方向目标向量和第二向量计算所述光源向上方向目标向量,其中,所述第二向量是视点的世界坐标三维向右方向的单位向量。也就是说,本申请的一些实施例还提供一种调整光源向上方向的策略,以得到满足目标原则的投影矩阵。
例如,在本申请的一些实施例中,所述光源向上方向目标向量是通过如下公式计算得到的:
LightUpFinal = cross(CameraRight, LightDirFinal)
其中,CameraRight为所述第二向量, LightDirFinal为所述光源照射方向目标向量。
本申请的一些实施例提供一种量化光源向上方向目标向量的方法,提升计算该值的准确性和客观性。
相应的,上述第一步和第二步,S202所述根据所述目标向量计算所述光源透视投影矩阵和所述光源视觉矩阵的过程示例性包括:根据所述光源照射方向目标向量和所述光源向上方向目标向量计算所述透视投影矩阵。
在本申请的一些实施例中,所述光源位置采用光源位置向量LightPos表征,所述光源方向采用光源照射方向目标向量LightDirFinal和光源向上方向目标向量LightUpFinal进行表征,其中,S201所述根据目标向量计算透视投影矩阵的过程示例性包括:以LightPos为视点位置,以LightDirFinal为朝向并以LightUpFinal为向上的方向,计算光源视觉矩阵LightViewMatrix;利用所述光源视觉矩阵LightViewMatrix,对视点视锥的八个顶点进行空间变化,得到8个光源空间下的光源视觉三维坐标数组LightViewFrustem[8];遍历所述光源视觉三维坐标数组LightViewFrustem,计算所述光源视觉三维坐标数组中所有元素的z分量的绝对值的最大值记为LightFar,计算所述光源视觉三维坐标数组中所有元素的z分量的绝对值的最小值记为LightNear;遍历所述光源视觉三维坐标数组LightViewFrustem ,令所述光源视觉三维坐标数组中每个元素除以对应元素的z分量的绝对值,更新8个元素的数组得到目标光源视觉向量数组LightViewFrustemDir[8];遍历所述光源视觉向量数组LightViewFrustemDir,计算所述光源视觉向量数组中所有元素的x分量的最大值记为TanRight, 计算所述光源视觉向量数组中所有元素的x分量的最小值记为TanLeft, 计算所述光源视觉向量数组中所有元素的y分量的最大值记为TanUp, 计算所述光源视觉向量数组中所有元素的y分量的最小值记为TanDown;以arctan(TanLeft)为左视场角,arctan(TanRight)为右视场角,arctan(TanUp)为上视场角,arctan(TanDown)为下视场角,LightNearFinal为第一平面距离并以LightFar为第二平面距离,计算非对称的所述透视投影矩阵LightProjectMatrix,其中,LightNearFinal为光源视锥的近平面,0<LightNearFina<LightNear。
需要说明的是,在本申请的一些实施例中,S202所述根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染的过程示例性包括:根据所述光源视觉矩阵和所述透视投影矩阵对场景进行深度渲染,得到阴影纹理贴图;根据所述阴影纹理贴图判断出各像素点与光源之间是否存在遮挡物体,进而确定该像素点是否处于阴影中完成阴影渲染。
下面结合图4示例性阐述本申请一些实施例的基于IOS平台的阴影渲染的方法。
S301,创建内存资源
记一张阴影纹理贴图的逻辑尺寸大小(一般为正方形,边长可选256,512,1024,2048,4096,8192)的宽和高分别为LogicW和LogicH(将渲染窗口的宽和高分别设置为LogicW和LogicH)。例如,逻辑尺寸大小可以由用户自定义。
根据逻辑尺寸大小,通过光栅化比率映射(Rasterization Rate Map,简称RRM)技术(例如,该技术包括给定逻辑大小和光栅化比率控制点,IOS硬件通过光栅化比率映射会计算出物理图像尺寸),确定纹理贴图实际使用的物理图像尺寸, 宽和高分别记为PhysicalW和PhysicalH(内存中以PhysicalW为宽、以PhysicalH为高,创建阴影纹理贴图ShadowMapInfo)。其中,光栅化比率映射技术是降低采样率的一种方法,可通过指定光栅化比率参数来减少实际使用的像素个数,进而达到渲染降采样的目的。光栅化比率参数为两组控制点,在一种可能的实现方式中,该水平方向上有5个光栅化比率控制点,例如可以是{a, b, 1.0,b,a},其中 0<a<b<1。可以通过一个数组来表示该水平方向上的4个光栅化比率控制点的数值,可以将该数组记为ControlSetX。竖直方向上的也可用一个数组ControlSetY进行控制,例如可以是{a, b, c,1.0},其中 0<a<b<c<1。可以理解的是通过RRM参数设置可指定那个区域的分辨率大,那个区域分辨率小。
根据物理图像尺寸,在内存中以PhysicalW为宽、以PhysicalH为高,创建阴影纹理贴图ShadowMapInfo。ShadowMapInfo用于存储场景中对应区域的阴影映射信息。
记场景渲染窗口的宽和高分别设置为SceneW和SceneH。在内存中以SceneW为宽、以SceneH为高,创建一张颜色纹理SceneColor和一张深度纹理ScenDepth。
根据逻辑渲染图像尺寸以及ControlSetX、ControlSetY,创建MTLRasterizaitonRateMap变量,记为rateMap,然后将MTLRenderPassDescriptor中的rasterizationRateMap参数设为rateMap。创建一个类型为id<MTLBuffer>的变量,记为rateMapDataBuffer,将rateMap中的参数数据拷贝到rateMapDataBuffer中。
S302,重定位光照方向(即光源方向),获取透视投影矩阵。
S302示例性包括:确定阴影区域;根据所述阴影区域确定阴影区域位置,根据阴影区域位置反推光源位置;根据反推得到的光源位置信息进行光源重定向,并基于重定向后的光源反向得到光源视觉矩阵和透视投影矩阵。下面示例性阐述该过程。
首先,以视锥体为例示例性展示确定阴影区域的过程:
记视点的三维世界坐标为CameraPos,记视点的世界坐标三维朝向方向为单位向量CameraDir(即表征摄像机的朝向), 记视点的世界坐标三维向右方向为单位向量CameraRight(即表征摄像机向右的方向,作为第二向量的一个示例),记视点可视范围的近、远距离分别为CameraNear、CameraFar,记视点视锥的四个方向的单位向量Frustum_lt、Frustum_rt、Frustum_lb、Frustum_rb分别表示视锥的左上、右上、左下、右下四个轴的朝向,记光源的三维世界坐标照射方向为单位向量LightDir(作为第一向量一个示例),记光源的世界坐标三维向上方向为单位向量LightUp,记光源的距离为LightDistance。
计算视点视锥的八个顶点的三维世界空间坐标:(算视锥的八个顶点,根据上述视点参数值得到一个视锥)
Near_lt = CameraPos + Frustum_lt * CameraNear / dot(Frustum_lt,CameraDir);
Near_rt = CameraPos + Frustum_rt * CameraNear / dot(Frustum_rt,CameraDir);
Near_lb = CameraPos + Frustum_lb * CameraNear / dot(Frustum_lb,CameraDir);
Near_rb = CameraPos + Frustum_rb * CameraNear / dot(Frustum_rb,CameraDir);
Far_lt = CameraPos + Frustum_lt * CameraFar / dot(Frustum_lt,CameraDir);
Far_rt = CameraPos + Frustum_rt * CameraFar / dot(Frustum_rt,CameraDir);
Far_lb = CameraPos + Frustum_lb * CameraFar / dot(Frustum_lb,CameraDir);
Far_rb = CameraPos + Frustum_rb * CameraFar / dot(Frustum_rb,CameraDir);
其中,dot表示向量的内积。上述八个顶点的计算公式仅是一种实现方式。可以理解的阴影区域也可以是指定的。
其次,根据阴影区域确定阴影位置
计算这8个顶点的平均位置得到阴影区域位置,记为LightTarget:对应阴影区域的中心,也就是说,在本申请实施例中采用阴影中心位置表征阴影区域的位置。本领域技术人员也可以采用其它方式确定阴影区域位置。
再次,根据阴影位置反推光源位置,即计算光源的三维世界空间坐标LightPos =LightTarget – LightDir * LightDistance。
正如前文所描述的相关技术会根据反推得到的光源位置和光源的朝向计算投影矩阵,而本申请的发明人在研究中发现这种方法计算得到的光源投影矩阵,摄像机在光源投影矩阵上的位置的分辨率不一定是最大的地方。因此,在本申请的一些实施例中需要调整反推得到的光源的方向,使得可以达到如下技术目的:根据摄像机的朝向和摄像机向右的方向可以算出一个摄像机向上的方向,摄像机的朝向和向上的方向可以组成一个平面,调整这个光源的方向使其平行于这个平面,LightDirfianl是将光源方向进行一个偏移使得其平行于这个平面。下面示例性阐述本申请一些实施例对光源进行重定向的过程。
之后,根据反推得到的光源位置信息进行光源重定向:
重指定光源的三维世界坐标的照射方向,得到:(表示光源平行于由摄像机相关信息得到的平面)
LightDirFinal = normalize(LightDir – CameraRight * dot(LightDir,CameraRight))
其中,normalize表示对向量进行归一化操作,dot表示点积,LightDirFinal表征光源照射方向目标向量,LightDir表征第一向量,LightDirFinal为光源照射方向目标向量。
重指定光源的三维世界坐标的向上的方向:向右的方向和向前的方向指定向上的方向,即通过叉积,以这个为基础计算投影矩阵。
LightUpFinal = cross(CameraRight, LightDirFinal)
其中, cross表示向量的叉积,LightUpFinal表征光源向上方向目标向量。
随后,基于重定向后的光源反向得到光源视觉矩阵
以LightPos为视点位置,以LightDirFinal为朝向,以LightUpFinal为向上的方向,计算光源视觉矩阵LightViewMatrix。
再然后,根据光源视觉矩阵确定透视投影矩阵
利用LightViewMatrix,对视点视锥的八个顶点进行空间变化,得到8个光源空间下的三维坐标LightViewFrustem[8]。
遍历LightViewFrustem,计算其中所有元素的z分量的绝对值的最大值记为LightFar,计算其中所有元素的z分量的绝对值的最小值记为LightNear。
遍历LightViewFrustem ,令其每个元素除以其自身z分量的绝对值,得到新的8个元素的数组LightViewFrustemDir[8]。
遍历LightViewFrustemDir,计算其中所有元素的x分量的最大值记为TanRight,计算其中所有元素的x分量的最小值记为TanLeft, 计算其中所有元素的y分量的最大值记为TanUp, 计算其中所有元素的y分量的最小值记为TanDown。
记LightNearFinal为光源视锥的近平面,0<LightNearFina<LightNear。
以arctan(TanLeft)为左fov,arctan(TanRight)为右fov,arctan(TanUp)为上fov,arctan(TanDown)为下fov,LightNearFinal为近平面距离,LightFar为远平面距离,计算非对称的透视投影矩阵LightProjectMatrix。fov为field of view。
通过上述本申请一些实施例得到的透视投影矩阵可以使得:摄像机(即视点)对光源进行投影的时候它对应的位置一直处于阴影贴图边缘,这是由于第一步设置的ControlSetY参数在边缘处光栅化比率控制参数值最大。
S303,计算阴影纹理贴图,即计算阴影映射信息
以LightViewMatrix, LightProjectMatrix为基础对场景进行深度渲染。
将渲染窗口的宽和高分别设置为LogicW和LogicH。将ShadowMapInfo设置为渲染的深度目标。渲染完成后,阴影纹理贴图ShadowMapInfo将记录好视点可视范围的近、远距离之间的区域的阴影映射信息。
S304,根据阴影纹理贴图完成阴影渲染,即计算场景阴影
记视点在其局部空间的up方向在三维世界坐标中的表示为CameraUp。
以CameraPos, CameraDir,CameraUp为参数计算观察矩阵CameraViewMatrix和投影矩阵CameraProjectMatrix。并以此为基础对场景进行渲染。
记观察投影矩阵CameraViewProjectMatrix=CameraViewMatrix*LightProjectMatrix。
记InvCameraViewProjectMatrix为CameraViewProjectMatrix的逆矩阵。
将rateMapDataBuffer资源和ShadowMapInfo资源传入GPU中。
将场景渲染窗口的宽和高分别设置为SceneW和SceneH。将SceneColor设置为渲染的颜色目标,将ScenDepth设置为渲染的深度目标。
用GPU对SceneColor的所有像素进行着色。
在对其中某个像素进行着色时,记当前像素的屏幕坐标为(P_x,P_y)。以当前像素的深度值、SceneW和SceneH为依据,计算其对应的归一化设备坐标空间(NormalizedDevice Coordinates,简称NDC)的坐标NDC_coord。
将NDC_coord进行InvCameraViewProjectMatrix变换并归一化,得到像素对应的世界空间坐标Pixel_wpos。
记渲染结果result为1。
记shadow_ndc 等于Pixel_wpos。
进行用LightViewProjectMatrix对shadow_ndc进行变换并归一化。
若shadow_ndc位于NDC空间范围内,则:
记logical_shadow_screen为shadow_ndc从NDC转换成屏幕空间后的二维坐标。
使用rateMapDataBuffer的map_screen_to_physical_coordinates接口函数,以logical_shadow_screen为输入,得到输出的二维屏幕空间坐标shadow_screen。
记阴影映射采样的二维坐标为shadow_uv,
令shadow_uv的x分量等于shadow_screen的x分量除以LogicW,
令shadow_uv的y分量等于shadow_screen的y分量除以LogicH,
用shadow_uv去采样ShadowMapInfo,得到结果z_record.
若shadow_ndc的z分量大于z_record,则result赋值为0
结束当前像素的绘制。
至此,场景阴影的结果存在了SceneColor中,1表示不是阴影,0表示是阴影。
需要说明的是,图4的实施例是以视点位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值最大为依据进行的设计,这些实施例定义对应的光栅化比率控制参数值最大的世界坐标位置为基准点。若想让场景中的其他位置作为基准点,记此位置P的三维空间世界坐标为CenterPos。这种情况下,可设置ControlSetX的中间元素的值最大,然后两边逐渐递减。ControlSetY也进行相同的设置。然后让LightPos = CenterPos –LightDir * LightDistance。计算光源的三维世界空间坐标LightPos = LightTarget(阴影中心位置) – LightDir * LightDistance。以LightPos为视点位置,以LightDir为朝向,以LightUp为向上的方向,计算视觉矩阵LightViewMatrix_p。然后构建上下对称、左右对称的投影视锥,可以是正交投影、可以是透视投影。只要能保证投影视锥能包含待计算的阴影区域即可。计算此投影视锥的投影矩阵LightProjectMatrix_p。之后从图4的S303开始执行即可。
需要说明的是,本申请的示例中使用光栅化比例映射技术来生成阴影映射信息贴图,并在场景渲染时解析阴影映射信息贴图来进行阴影渲染。本申请实施例的运算符号“*”表征乘法运算。本申请的一些实施例可以适配视点方向与光照方向所有可能的组合。若视点方向与光照方向的组合是本申请一些实施例的子集,也在本申请一些实施例的保护之内,此时可以优化上述ControlSetX,使得视点投影到阴影映射纹理中的x轴范围内的区域的值更大,其他x轴范围的区域值调小。比如当视点永远投影到阴影映射纹理的左边界处时,可令ControlSetX = {1,x1,x2,…xn},其中1>x1>x2>…>xn>0。本申请的一些实施例通过重指定光照方向,使得场景中距离视点越近的位置,其在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大。本申请一些实施例涉及的创建纹理贴图,只要可以存储阴影映射数据、颜色信息和深度信息,无论哪种格式均可。本申请一些实施例计算阴影范围和对应的初始光源位置可有多种实现方案,只要在重指定光照方向时,让指定后的光照方向与所述目标平面的夹角不变,并针对场景的投影区域进行重指定光照方向上非对称的透视投影,就在本发明的保护之内。本申请一些实施例计算光照投影矩阵时,近远平面以及各个方向的fov可用其他方式计算,只要能保证投影视锥能包含待计算的阴影区域即可。本申请一些实施例的计算阴影映射信息和计算场景阴影时使用的投影矩阵参数或其他起到相同效果的空间运算参数,只要是基于光照方向重指定后计算出的参数,就在本申请的保护之内。本申请的实施例可与背景技术中提到的技术方案进行组合,只需要将这些技术方案中的每个阴影层级按照本发明进行处理即可,所以本方案与景技术中提到的技术方案的组合也在本发明的保护之内。
请参考图5,图5示出了本申请实施例提供基于IOS平台的阴影渲染的装置,应理解,该装置与上述图3方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该基于IOS平台的阴影渲染的装置,包括:透视投影矩阵获取模块401以及阴影渲染模块402。
透视投影矩阵获取模块,被配置为根据目标原则获取光源透视投影矩阵和光源视觉矩阵,其中,所述目标原则为使场景中距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大;
阴影渲染模块,被配置为根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述基于IOS平台的阴影渲染的方法中任意实施例所述的方法。
如图6所示,本申请的一些实施例提供一种电子设备500,包括存储器510、处理器520以及存储在所述存储器510上并可在所述处理器520上运行的计算机程序,其中,所述处理器520通过总线530从存储器510读取程序并执行所述程序时可实现如上述基于IOS平台的阴影渲染的方法中任意实施例所述的方法。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图3中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种基于IOS平台的阴影渲染的方法,其特征在于,所述方法包括:
根据目标原则获取光源透视投影矩阵和光源视觉矩阵,其中,所述目标原则为使场景中距离视点越近的位置在阴影映射纹理中的投影位置对应的光栅化比率控制参数值越大;
根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染;
其中,
所述光源视觉矩阵的获取方法包括:
确定阴影区域;根据所述阴影区域确定阴影区域位置,根据阴影区域位置反推光源位置;根据反推得到的光源位置信息进行光源重定向,并基于重定向后的光源反向得到所述光源视觉矩阵;
所述光源透视矩阵的获取方法包括:
光源位置采用光源位置向量LightPos表征,光源方向采用光源照射方向目标向量LightDirFinal和光源向上方向目标向量LightUpFinal进行表征;
利用所述光源视觉矩阵LightViewMatrix,对视点视锥的八个顶点进行空间变化,得到8个光源空间下的光源视觉三维坐标数组LightViewFrustem[8];
遍历所述光源视觉三维坐标数组LightViewFrustem,计算所述光源视觉三维坐标数组中所有元素的z分量的绝对值的最大值记为LightFar,计算所述光源视觉三维坐标数组中所有元素的z分量的绝对值的最小值记为LightNear;
遍历所述光源视觉三维坐标数组LightViewFrustem ,令所述光源视觉三维坐标数组中每个元素除以对应元素的z分量的绝对值,更新8个元素的数组得到目标光源视觉向量数组LightViewFrustemDir [8];
遍历所述目标光源视觉向量数组LightViewFrustemDir,计算所述光源视觉向量数组中所有元素的x分量的最大值记为TanRight, 计算所述光源视觉向量数组中所有元素的x分量的最小值记为TanLeft, 计算所述光源视觉向量数组中所有元素的y分量的最大值记为TanUp, 计算所述光源视觉向量数组中所有元素的y分量的最小值记为TanDown;
以arctan(TanLeft)为左视场角,arctan(TanRight)为右视场角,arctan(TanUp)为上视场角,arctan(TanDown)为下视场角,LightNearFinal为第一平面距离并以LightFar为第二平面距离,计算非对称的所述透视投影矩阵LightProjectMatrix,LightNearFinal为光源视锥的近平面,0 < LightNearFina < LightNear。
2.如权利要求1所述的方法,其特征在于,所述根据目标原则获取光源透视投影矩阵和光源视觉矩阵包括:
依据所述目标原则重定向光源的方向,得到用于表征目标方向的目标向量;
根据所述目标向量计算所述光源透视投影矩阵和所述光源视觉矩阵。
3.如权利要求2所述的方法,其特征在于,所述依据所述目标原则重定向光源的方向,得到用于表征目标方向的目标向量,包括:
根据摄像机的朝向和摄像机向右的方向得出所述摄像机向上的方向;
根据所述摄像机的朝向和所述摄像机向上的方向确定一个平面,得到目标平面;
调整所述光源的方向使所述目标方向平行于所述目标平面。
4.如权利要求2所述的方法,其特征在于,所述依据所述目标原则重定向光源的方向,得到用于表征目标方向的目标向量,包括:
重指定所述光源的三维世界坐标的照射方向,得到与光源照射方向对应的光源照射方向目标向量,其中,所述光源照射方向平行于目标平面;
重指定所述光源的三维世界坐标的向上的方向,得到光源向上方向目标向量;其中,
所述根据所述目标向量计算所述光源透视投影矩阵和所述光源视觉矩阵,包括:
根据所述光源照射方向目标向量和所述光源向上方向目标向量计算所述光源透视投影矩阵和所述光源视觉矩阵。
5.如权利要求4所述的方法,其特征在于,所述重指定所述光源的三维世界坐标的照射方向得到与光源照射方向对应的光源照射方向目标向量,包括:
根据第一向量和第二向量计算所述光源照射方向目标向量,其中,所述第一向量是所述光源的三维世界坐标照射方向的单位向量,所述第二向量是视点的世界坐标三维向右方向的单位向量。
6.如权利要求4所述的方法,其特征在于,所述重指定所述光源的三维世界坐标的向上的方向,得到光源向上方向目标向量,包括:
根据所述光源照射方向目标向量和第二向量计算所述光源向上方向目标向量,其中,所述第二向量是视点的世界坐标三维向右方向的单位向量。
7.如权利要求1所述的方法,其特征在于,所述根据所述光源透视投影矩阵和所述光源视觉矩阵完成阴影渲染,包括:
根据所述光源视觉矩阵和所述光源透视投影矩阵对场景进行深度渲染,得到阴影纹理贴图;
根据所述阴影纹理贴图判断出各像素点与光源之间是否存在遮挡物体,进而确定该像素点是否处于阴影中完成阴影渲染。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现如权利要求1-7任意一项权利要求所述的方法。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如权利要求1-7中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458116.9A CN116188668B (zh) | 2023-04-25 | 2023-04-25 | 一种基于ios平台的阴影渲染的方法、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310458116.9A CN116188668B (zh) | 2023-04-25 | 2023-04-25 | 一种基于ios平台的阴影渲染的方法、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116188668A CN116188668A (zh) | 2023-05-30 |
CN116188668B true CN116188668B (zh) | 2023-07-07 |
Family
ID=86444639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310458116.9A Active CN116188668B (zh) | 2023-04-25 | 2023-04-25 | 一种基于ios平台的阴影渲染的方法、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116188668B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106056661B (zh) * | 2016-05-31 | 2018-08-28 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN106910240B (zh) * | 2017-01-24 | 2020-04-28 | 成都通甲优博科技有限责任公司 | 一种实时阴影的生成方法及装置 |
US10748332B2 (en) * | 2017-03-15 | 2020-08-18 | Nvidia Corporation | Hybrid frustum traced shadows systems and methods |
CN116485987B (zh) * | 2019-01-07 | 2024-06-25 | 北京达美盛软件股份有限公司 | 一种基于阴影渲染的真实环境模拟方法及装置 |
-
2023
- 2023-04-25 CN CN202310458116.9A patent/CN116188668B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116188668A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11050994B2 (en) | Virtual reality parallax correction | |
JP4512584B2 (ja) | イメージマッチング速度とブレンディング方法を改善したパノラマ映像提供方法および装置 | |
KR101923562B1 (ko) | 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법 | |
EP3367334B1 (en) | Depth estimation method and depth estimation apparatus of multi-view images | |
US11189041B2 (en) | Image processing apparatus, control method of image processing apparatus, and non-transitory computer-readable storage medium | |
US11417065B2 (en) | Methods and systems for reprojection in augmented-reality displays | |
CN109710056A (zh) | 虚拟现实交互装置的显示方法及装置 | |
JP6768123B2 (ja) | 拡張現実方法及び装置 | |
US20220335684A1 (en) | Finite aperture omni-directional stereo light transport | |
US11770551B2 (en) | Object pose estimation and tracking using machine learning | |
KR20190078890A (ko) | 그리드 기반의 평면 추정 방법 및 장치 | |
CN111870953B (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
JP2013097782A (ja) | 画像ワープ方法及びそのコンピュータプログラム製品 | |
JP2016032298A (ja) | 映像レンダリング装置及び方法 | |
CN114299209A (zh) | 水面渲染方法、装置、存储介质及计算机设备 | |
CN107545222A (zh) | 在虚拟现实场景中显示目标图像的方法及其系统 | |
CN116188668B (zh) | 一种基于ios平台的阴影渲染的方法、介质及电子设备 | |
CN112363621B (zh) | 一种终端控制方法、装置、电子设备及存储介质 | |
CN118052689A (zh) | 一种热力图生成方法、装置及设备 | |
CN111028357B (zh) | 增强现实设备的软阴影处理方法和装置 | |
JP2005165283A (ja) | 地図表示装置 | |
JP2002260003A (ja) | 映像表示装置 | |
CN116109758B (zh) | 一种光源投影位置定位、场景渲染的方法及装置 | |
CN110889889A (zh) | 应用在沉浸式显示设备中倾斜摄影建模数据生成方法 | |
CN108062793A (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 |