CN114998504B - 二维图像光照渲染方法、装置、系统和电子装置 - Google Patents
二维图像光照渲染方法、装置、系统和电子装置 Download PDFInfo
- Publication number
- CN114998504B CN114998504B CN202210907543.6A CN202210907543A CN114998504B CN 114998504 B CN114998504 B CN 114998504B CN 202210907543 A CN202210907543 A CN 202210907543A CN 114998504 B CN114998504 B CN 114998504B
- Authority
- CN
- China
- Prior art keywords
- rendering
- illumination
- light source
- dimensional image
- original
- 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
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/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
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种二维图像光照渲染方法、装置、系统和电子装置,其中,该二维图像光照渲染方法包括:获取原始二维图像、光照映射图像和光源信息;其中,该光照映射图像包含与该原始二维图像的各像素点对应的光照映射参数;根据该原始二维图像和该光源信息得到光照方向参数;根据该光照方向参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染值,并根据该渲染值和该光源信息计算生成目标渲染结果。通过本申请,只需要一张与原始二维图像对应的光照映射图像,根据位于三维世界坐标系中任意位置的光源信息计算原始二维图像任意角度的光照渲染结果,解决了二维图像光照渲染成本高、效率低的问题,实现了二维图像的低成本高效渲染。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及二维图像光照渲染方法、装置、系统和电子装置。
背景技术
目前,随着图像处理芯片性能的飞速提升,在图像处理技术领域对现实世界光照模拟的需求越来越高。对于传统的三维世界来说模拟光照一般是通过在三维模型的顶点数据中记录该顶点的法线方向,然后在渲染的时候通过计算光源信息和接受光照位置的法线信息呈现出光照效果。而对于二维世界来说,通常是使用二维的平面图片来展示世界中的物体,无法使用三维世界在模型顶点数据中记录法线信息的方式模拟光照效果。
相关技术中,一般通过直接在二维平面图形上绘制包含特定光照位置、颜色以及强度信息的最终效果的方法呈现光照效果。然而直接在二维图像上绘制包含光照信息的方法,绘制难度大,绘制人员需要具备良好的空间结构以及想象能力,并且对于每一个不同的光照位置,光照方向、光照强度和光照颜色都需要单独绘制,工作量也成指数级增长,成本高、效率低。
针对相关技术中存在二维图像光照渲染成本高、效率低的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种二维图像光照渲染方法、装置、系统和电子装置,以解决相关技术中二维图像光照渲染成本高、效率低的问题。
第一个方面,在本实施例中提供了一种二维图像光照渲染方法,包括:
获取原始二维图像、光照映射图像和光源信息;其中,所述光照映射图像包含与所述原始二维图像的各像素点对应的光照映射参数;
根据所述原始二维图像和所述光源信息得到光照方向参数;根据所述光照方向参数和所述光照映射参数进行计算生成所述原始二维图像中各像素点对应的渲染值,并根据所述渲染值和所述光源信息计算生成目标渲染结果。
在其中的一些实施例中,所述根据所述光照方向参数和所述光照映射参数进行计算生成所述原始二维图像中各像素点对应的渲染值,并根据所述渲染值和所述光源信息计算生成目标渲染结果,包括:
将所述光照方向参数和所述光照映射参数进行向量点乘生成所述渲染值;
获取所述光源信息的光源颜色向量和光源强度,根据所述光源颜色向量、所述光源强度和所述渲染值计算生成所述目标渲染结果。
在其中的一些实施例中,所述光源颜色向量包括三维颜色分量和透明度分量;所述根据所述光源颜色向量、所述光源强度和所述渲染值计算生成所述目标渲染结果包括:
获取所述三维颜色分量和所述透明度分量的分量相乘结果,并根据所述分量相乘结果、所述光源强度和所述渲染值计算生成所述目标渲染结果。
在其中的一些实施例中,所述根据所述原始二维图像和所述光源信息得到光照方向参数,包括:
对所述原始二维图像进行纹理采样得到原始纹理图像,并根据所述原始纹理图像和所述光源信息得到光照方向参数。
在其中的一些实施例中,所述根据所述原始纹理图像和所述光源信息得到光照方向参数,包括:
根据所述原始纹理图像的图像平面坐标,以及所述光源信息的光源平面坐标得到平面光照方向,并根据所述光源信息的光源高度坐标计算得到高度光照方向;
根据所述平面光照方向和所述高度光照方向获取三维光照方向,并将所述三维光照方向归一化得到所述光照方向参数。
在其中的一些实施例中,所述根据所述光照方向参数和所述光照映射参数进行计算生成所述原始二维图像中各像素点对应的渲染值,包括:
对所述光照映射图像中的光照映射参数进行纹理采样得到光照纹理图像,并对所述光照纹理图像进行数据解码得到纹理影响参数;
根据所述光照方向参数和所述纹理影响参数计算生成所述渲染值。
在其中的一些实施例中,所述根据所述渲染值和所述光源信息计算生成目标渲染结果,包括:
获取当前光源信息,并根据所述当前光源信息得到当前渲染结果;
获取下一个光源信息,根据所述原始二维图像和所述下一个光源信息得到下一个光照方向参数,并根据所述下一个光照方向参数和所述光照映射参数计算下一个渲染值,根据所述下一个渲染值和所述下一个光源信息计算生成下一个渲染结果;
根据所述当前渲染结果和所述下一个渲染结果得到所述目标渲染结果。
在其中的一些实施例中,在所述得到目标渲染结果之后,还包括:
获取光源更新信息,根据所述光源更新信息得到光照方向更新参数,并根据所述光照方向更新参数和所述光照映射参数进行计算生成所述原始二维图像中各像素点对应的渲染更新值,根据所述渲染更新值和所述光源信息计算生成渲染更新结果;
其中,所述光源更新信息包括光源位置更新信息、光源高度更新信息、光源颜色更新信息和/或光源强度更新信息。
在其中的一些实施例中,所述根据所述渲染值和所述光源信息计算生成目标渲染结果包括:
将所述渲染值与预设阈值进行比对;
在检测到所述渲染值大于或等于所述预设阈值的情况下,根据所述渲染值和所述光源信息计算生成所述目标渲染结果;
在检测到所述渲染值小于所述预设阈值的情况下,生成指示光源渲染颜色为所述预设阈值的修正渲染结果。
第二个方面,在本实施例中提供了一种二维图像光照渲染装置,包括:获取模块和渲染模块;
所述获取模块,用于获取原始二维图像、光照映射图像和光源信息;其中,所述光照映射图像包含与所述原始二维图像的各像素点对应的光照映射参数;
所述渲染模块,用于根据所述原始二维图像和所述光源信息得到光照方向参数;根据所述光照方向参数和所述光照映射参数进行计算生成所述原始二维图像中各像素点对应的渲染值,并根据所述渲染值和所述光源信息计算生成目标渲染结果。
第三个方面,在本实施例中提供了一种二维图像光照渲染系统,包括:控制装置和图像显示设备;
所述控制装置用于实现上述第一个方面所述的二维图像光照渲染方法;
所述图像显示设备用于获取目标渲染结果进行显示。
第四个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的二维图像光照渲染方法。
第五个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的二维图像光照渲染方法。
与相关技术相比,在本实施例中提供的二维图像光照渲染方法、装置、系统和电子装置,通过获取原始二维图像、光照映射图像和光源信息;其中,所述光照映射图像包含与所述原始二维图像的各像素点对应的光照映射参数;根据所述原始二维图像和所述光源信息得到光照方向参数;根据所述光照方向参数和所述光照映射参数进行计算生成所述原始二维图像中各像素点对应的渲染值,并根据所述渲染值和所述光源信息计算生成目标渲染结果,解决了二维图像光照渲染成本高、效率低的问题,实现了二维图像的低成本高效渲染。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一个实施例中二维图像光照渲染方法的应用场景图;
图2为一个实施例中二维图像光照渲染方法的流程示意图;
图3为另一个实施例中二维图像光照渲染方法的流程示意图;
图4为一个实施例中原始二维图像的示意图;
图5为一个实施例中目标渲染结果的示意图;
图6为一个实施例中二维图像光照渲染装置的结构框图;
图7为一个实施例中控制装置的内部结构图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
本申请提供的二维图像光照渲染方法,可以应用于如图1所示的应用环境中。其中,图像显示设备102通过网络或本地连接与控制装置104进行通信。控制装置104获取原始二维图像、光照映射图像和光源信息;其中,该光照映射图像包含与该原始二维图像的各像素点对应的光照映射参数;控制装置104根据该原始二维图像和该光源信息得到光照方向参数;控制装置104根据该光照方向参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染值,并根据该渲染值和该光源信息计算生成目标渲染结果。图像显示设备102对所述目标渲染结果进行显示。其中,图像显示设备102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等具有显示面板的设备,控制装置104可以但不限于是各种服务器设备、个人计算机或笔记本电脑等终端设备、处理芯片或其他用于控制的装置;该服务器设备可以用独立的服务器或者是多个服务器组成的服务器集群来实现。可以理解的是,在该控制装置104采用终端设备实现的情况下,该图像显示设备102可以集成在该控制装置104上。
在本实施例中提供了一种二维图像光照渲染方法,图2是本实施例的二维图像光照渲染方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取原始二维图像、光照映射图像和光源信息;其中,该光照映射图像包含与该原始二维图像的各像素点对应的光照映射参数。
其中,该光照映射图像与该原始二维图像一对一对应,该光照映射图像是指与该原始二维图像对应的一张包含该原始二维图像的各像素点期望的高度值信息的贴图;该高度值信息与该光照映射参数相对应,是指各像素点受光照影响强弱的一种系数,用于使该原始二维图像呈现出三维的视觉效果,而其本身并不包含三维数据,在实际应用中,高度值信息贴图可以在3D软件中作为置换贴图来使用,贴图的每个点会沿法线进行位移,从而造成真实的三维凹凸效果;该光照映射图像可以通过获取设计人员对照该原始二维图像进行绘制的高度值信息贴图得到的,也可以是通过对法线贴图利用算法提取出高度值信息得到的,此处不再赘述;该光源信息包括光源数量、光源高度、光源位置、光源颜色和光源强度等属性,该光源信息的光源位置可以是在三维世界坐标系中的任意位置;该光源信息可以从该控制装置的业务逻辑层获取得到的,并输入至该控制装置的片元着色器以执行二维光照渲染方法中的步骤;该业务逻辑层位于该控制装置中,用于实时接收请求数据、处理请求并返回数据;该控制装置的片元着色器是指openGL(Open Graphics Library,开放式图形库)中的Fragment Shader,该片元是指将绘制到该图像显示设备的屏幕上的与该原始二维图像中的像素点对应的单个像素点。
需要说明的是,每张原始二维图像只对应一张光照映射图像,在本申请中针对一张原始二维图像的二维图像光照渲染只需要一张对应的光照映射图像。
步骤S204,根据该原始二维图像和该光源信息得到光照方向参数;根据该光照方向参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染值,并根据该渲染值和该光源信息计算生成目标渲染结果。
其中,该光照方向参数用于指示该原始二维图像中的模拟光照方向;该光源信息至少有一个,与光源数量相对应,进而可以根据所有光源的计算结果求和得到该原始二维图像中的每个待渲染对象各自对应的对象渲染结果,并根据所有待渲染对象的对象渲染结果得到该原始二维图像的目标渲染结果;该待渲染对象可以是一个像素点,也可以是该原始二维图像中的像素块。
上述渲染值用于指示根据该光照映射图像对该原始二维图像进行渲染的像素结果。具体地,上述控制装置可以在通过片元着色器获取到该原始二维图像、该光照映射图像和该光源信息后,解析出所有数量的光源信息。控制装置的片元着色器根据该原始二维图像和解析后的每个光源信息得到对应的单光源光照方向参数,根据所有光源信息得到针对上述原始二维图像中的单个像素点的光照方向参数,从而可以结合该光照方向参数和上述光照映射参数这两个方面的因素综合考虑并计算渲染值,即根据光照方向参数和该光照映射参数间的关联信息生成针对单个像素点的渲染值;例如,该关联信息可以用于表征该光照映射参数向量在该光照方向参数向量方向上的投影长度或两者之间的夹角等信息。最终可以根据渲染值和光源信息计算生成该原始二维图像中单个像素点的像素渲染结果,在对该原始二维图像的所有像素遍历完成后即得到该目标渲染结果。
通过上述步骤,只需要一张与该原始二维图像对应的该光照映射图像生成目标渲染结果,并且利用光源信息进行渲染,可以根据位于三维世界坐标系中任意位置的光源信息计算该原始二维图像任意角度的光照渲染结果,相比于相关技术中针对一个场景任意角度展示中,根据光源数量、光源颜色向量等光源属性需要至少360张高度值信息贴图,或者通过获取3D模型进行二维图形展示的技术方案,本申请的技术方案成本更低、计算过程更为简单、效率更高且渲染结果更为真实,解决了二维图像光照渲染成本高、效率低的问题,实现了二维图像的低成本高效渲染。
在其中的一些实施例中,上述根据该光照方向参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染值,并根据该渲染值和该光源信息计算生成目标渲染结果还包括如下步骤:
将该光照方向参数和该光照映射参数进行向量点乘生成该渲染值;
其中,上述向量点乘用于生成该原始二维图像中各像素点对应的初始渲染结果。例如,该向量点乘运算可以由上述控制装置的片元着色器根据openGL中的函数dot()进行计算,如公式1所示:
Value1=dot(n, L) 公式1
上述公式1中,Value1用于表示上述渲染值,n用于表示光照映射参数,L用于表示该光照方向参数。
获取该光源信息的光源颜色向量和光源强度,根据该光源颜色向量、该光源强度和该渲染值计算生成该目标渲染结果。
其中,上述根据该光源颜色向量、该光源强度和各像素点的渲染值计算生成单光源渲染结果的计算公式如公式2所示:
vector3 color = light_color×Value1×light_strength 公式2
上述公式2中,vector3表示三维向量;color表示针对一个像素点上的一个光源的单光源渲染结果;light_color表示光源颜色向量,该向量至少有三个颜色分量;light_strength表示光源强度。
需要说明的是,在计算得到单光源渲染结果color后计算下一个单光源渲染结果,直至所有光源信息代入计算完成,则当前像素点上的像素渲染结果即为上述所有单光源渲染结果之和,直至所有像素的像素渲染结果计算完成后得到该目标渲染结果。
通过上述步骤,通过渲染值和光源信息得到目标渲染结果,可以通过简单的参数对二维图像的光照渲染结果进行描述,进一步解决了二维图像光照渲染成本高、效率低的问题,实现了二维图像的低成本高效渲染。
在其中的一些实施例中,上述光源颜色向量包括三维颜色分量和透明度分量;该根据该光源颜色向量、该光源强度和该渲染值计算生成该目标渲染结果还包括如下步骤:
获取该三维颜色分量和该透明度分量的分量相乘结果,并根据该分量相乘结果、该光源强度和该渲染值计算生成该目标渲染结果。其中,上述根据该分量相乘结果、该光源强度和该渲染值计算生成该目标渲染结果的计算公式如公式3所示:
vector3 color = (light_color.rgb×light_color.a)×Value1×light_strength 公式3
上述公式3中,light_color.rgb表示三维颜色分量,包括R、G、B三个分量,light_color.a表示透明度分量,该透明度分量是指在进行光源渲染时对应光源的叠加效果,例如,有a,b两个光源,a在b光源之上,但是如果a拥有透明度分分量并且非完全不透明(a值不为255),则可以透过a光源看到位于其下方的b光源,以此来达到光源叠加渲染的效果;(light_color.rgb × light_color.a)表示该分量相乘结果,是指该三维颜色分量的每个分量分别与该透明度分量相乘,得到的针对单光源进行计算得到的三维向量;上述color表示单光源渲染结果,在计算得到单光源渲染结果color后计算下一个单光源渲染结果,直至所有光源信息代入计算完成,则当前像素点上的像素渲染结果即为上述所有单光源渲染结果之和,直至所有像素的像素渲染结果计算完成后得到该目标渲染结果。
通过上述步骤,通过透明度实现多光源叠加渲染的效果,可以使得二维图像光照渲染的效果更加逼真,解决了二维图像光照渲染失真的问题,提高了二维图像光照渲染的真实性。
在其中的一些实施例中,上述根据该原始二维图像和该光源信息得到光照方向参数还包括如下步骤:
对该原始二维图像进行纹理采样得到原始纹理图像,并根据该原始纹理图像和该光源信息得到光照方向参数。
其中,在该控制装置进行纹理采样之前,该控制装置可以根据该图像显示设备的屏幕尺寸,将该原始二维图像和该光照映射图像进行适配,以使得该控制装置的片元着色器处理的是该图像显示设备、该原始二维图像和该光照映射图像在视觉上相对应的像素点,使得控制装置的片元着色器根据该像素点进行二维图像渲染;例如,有一张100×100dpi的原始二维图像需要全屏显示到一个200×200dpi的图像显示设备上,那么对于原始二维图像上(50, 50)的像素点在纹理采样后就对应该图像显示设备(100, 100)的像素点坐标;更具体来说,不管是原始二维图像还是光照映射图像,在控制装置的片元着色器进行处理之前都会先被加载到GPU中,从而将该原始二维图像和该光照映射图像的纹理采样后的纹理坐标规范到[0, 1]的区间范围内,纹理坐标又叫uv坐标,同样的屏幕的坐标也可以规范到[0,1],使得不同尺寸的纹理图像可以和屏幕坐标完全对应;该纹理采样得到的该原始纹理图像可以是只有一个像素点的纹理图像,也可以是该原始二维图像中的至少一个待渲染对象的像素图像。
通过上述步骤,通过对该原始二维图像进行纹理采样,可以得到适配于该图像显示设备的原始纹理图像,解决了对原始二维图像的二维图像光照渲染与图像显示设备不适配的问题,实现了二维图像的有效渲染,提升用户体验。
在其中的一些实施例中,根据该原始纹理图像和该光源信息得到光照方向参数还包括如下步骤:
根据该原始纹理图像的图像平面坐标,以及该光源信息的光源平面坐标得到平面光照方向,并根据该光源信息的光源高度坐标计算得到高度光照方向;
根据该平面光照方向和该高度光照方向获取三维光照方向,并将该三维光照方向归一化得到该光照方向参数。
可以理解的是,由于该原始纹理图像由该原始二维图像纹理采样得到,从而该原始纹理图像仅有二维平面上的图像平面坐标。
具体地,该平面光照方向由公式light_pos.xy - frag_pos.xy得到,该高度光照方向由light_pos.z得到;其中,light_pos表示光源位置,有x,y,z三个轴位置坐标;light_pos.xy即代表光源平面坐标,light_pos.z即代表光源高度坐标;frag_pos的类型为二维向量,表示控制装置的当前片元着色器处理的原始纹理图像坐标;frag_poss.xy即代表上述图像平面坐标。
则该三维光照方向light_dir的计算公式如下述公式4所示:
vector3 light_dir = vector3(light_pos.xy - frag_pos.xy, light_pos.z)公式4
上述公式4中,在计算得到上述三维光照方向后,可以对该三维光照方向进行归一化处理以得到该光照方向参数,该归一化处理的计算公式如下述公式5所示:
vector3 L = normalize(light_dir)公式5
其中,L表示该光照方向参数;nomalize为openGL内置的函数,用于将向量归一化。
通过上述步骤,对纹理采样后的该原始纹理图像计算光照方向参数,用于模拟光照的角度从而对该原始二维图像进行光照渲染,提高对二维图像光照渲染的真实性,解决了对原始二维图像的二维图像光照渲染不能模拟真实光照而失真的问题。
在其中的一些实施例中,上述根据该光照方向参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染值还包括如下步骤:
对该光照映射图像中的光照映射参数进行纹理采样得到光照纹理图像,并对该光照纹理图像进行数据解码得到纹理影响参数;
根据该光照方向参数和该纹理影响参数计算生成该渲染值。
其中,对光照映射图像进行纹理采样同对原始二维图像的纹理采样,该光照纹理图像可以是一个像素点的图像,也可以是与该待渲染对象相对应的块像素;该数据解码是指对约定了数据格式的该光照映射图像对应的光照纹理图像进行高度值信息解码还原的步骤,与编码格式相对应。
具体地,该数据解码公式可以是height_texture.rgb × 2.0 - 1.0,或者可以是对height_texture.rgb进行四则组合运算的解码方法,从而得到该纹理影响参数;进一步地,可以对该数据解码结果进行归一化后得到该纹理影响参数,则该纹理影响参数N的计算公式如公式6所示:
vector3 N = normalize(height_texture × 2.0 - 1.0) 公式6
其中,height_texture 为该光照纹理图像,可以为三维向量或四维向量;在该height_texture为三维向量的情况下,该height_texture仅包含该光照纹理图像的RGB信息,即height_texture.rgb,且仅对该RGB信息分别进行数据解码和归一化得到一个三维的纹理影响参数;在该height_texture为四维向量的情况下,该height_texture还包含高度值透明度信息,该高度值透明度信息可以在绘制该光照映射图像时预设为包含或不包含该高度值透明度信息;在该光照映射图像包含该高度值透明度信息的情况下,该纹理影响参数N的计算公式可以如公式7所示:
vector3 N = normalize((height_texture.rgb × height_texture.a) × 2.0- 1.0)
公式7
通过上述步骤,可以对该光照映射图像进行纹理采样和数据解码,从而使得该光照纹理图像能够适配于该图像显示设备,且可以从该光照映射图像中还原出该纹理影响参数,使得解码得到的纹理影响参数可以代入该渲染值的计算,得到根据该光照方向参数和该纹理影响参数进行渲染的像素结果,解决了二维图像光照渲染与图像显示设备不适配的问题,实现了二维图像的有效渲染,提升用户体验。
在其中的一些实施例中,上述根据该渲染值和该光源信息计算生成目标渲染结果还包括如下步骤:
获取当前光源信息,并根据该当前光源信息得到当前渲染结果;
获取下一个光源信息,根据该原始二维图像和该下一个光源信息得到下一个光照方向参数,并根据该下一个光照方向参数和该光照映射参数计算下一个渲染值,根据该下一个渲染值和该下一个光源信息计算生成下一个渲染结果;
根据该当前渲染结果和该下一个渲染结果得到该目标渲染结果。
具体地,首先根据当前光源信息,根据上述实施例中的步骤得到针对该原始二维图像中的一个当前像素点的单光源渲染结果,即为当前渲染结果;其次,获取与当前像素点对应的下一个光源信息,从而得到下一个光照方向参数,并根据该下一个光照方向参数和光照映射参数计算得到针对当前像素点的下一个渲染值,从而得到针对当前像素点的下一个渲染结果;再次,在针对当前像素点所有光源信息都遍历完成后,根据当前像素点的所有单光源渲染结果得到像素渲染结果;最后,遍历所有像素点,从而根据所有像素点的所有像素渲染结果得到原始二维图像的目标渲染结果。
通过上述步骤,根据位于三维世界坐标系中任意位置的多个光源信息批量计算该目标渲染结果,相比于相关技术中针对一个场景任意角度展示中,根据光源数量、光源颜色向量等光源属性需要至少360张高度值信息贴图,或者通过获取3D模型进行二维图形展示的技术方案,本申请的技术方案成本更低、计算过程更为简单、效率更高,解决了二维图像光照渲染成本高、效率低的问题,实现了二维图像的低成本高效渲染。
在其中的一些实施例中,在该得到目标渲染结果之后,还包括如下步骤:
获取光源更新信息,根据该光源更新信息得到光照方向更新参数,并根据该光照方向更新参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染更新值,根据该渲染更新值和该光源信息计算生成渲染更新结果;
其中,该光源更新信息包括光源位置更新信息、光源高度更新信息、光源颜色更新信息和/或光源强度更新信息。
具体地,该控制装置的片元着色器从业务逻辑层获取到该光源更新信息后,解析出所有数量的光源更新信息;控制装置的片元着色器根据该原始二维图像和解析后的每个光源更新信息得到对应的单光源光照方向更新参数,从而分别根据每个单光源光照方向更新参数和该光照映射参数生成该原始二维图像的渲染更新结果;例如,在获取到用户针对该场景进行转动后生成的场景角度变换指令之后,该控制装置的片元着色器获取到该光源更新信息;或者,在获取到开灯指令后,该控制装置的片元着色器获取到该光源更新信息。
通过上述步骤,可以在得到该目标渲染结果,获取到业务逻辑层传递到控制装置的光源更新信息之后,根据光源更新信息得到渲染更新结果,在根据初始的静态的多个光源信息进行目标渲染结果计算之后,还可以动态获取更新的光源更新信息,从而达到静态和动态相结合的效果,相比于相关技术中根据更新的光源更新信息针对同一物体不同场景任意角度展示中,根据光源数量、光源颜色向量等光源属性需要至少360张的倍数的高度值信息贴图,或者通过获取3D模型进行二维图形展示的技术方案,本申请的技术方案成本更低、计算过程更为简单、效率更高,解决了二维图像光照渲染成本高、效率低的问题,实现了二维图像的低成本高效渲染。
在其中的一些实施例中,上述根据该渲染值和该光源信息计算生成目标渲染结果还包括如下步骤:
将该渲染值与预设阈值进行比对;
在检测到该渲染值大于或等于该预设阈值的情况下,根据该渲染值和该光源信息计算生成该目标渲染结果;
在检测到该渲染值小于该预设阈值的情况下,生成指示光源渲染颜色为该预设阈值的修正渲染结果。
其中,该预设阈值可以根据实际应用场景确定,以规定当前实际应用场景中的最高照度;例如该预设阈值在一般应用场景中可以设置为0,该预设阈值在光线昏暗的地下室环境中可以设置为50。
在本实施例中,以预设阈值0为例,将该渲染值与预设阈值进行比对可以如公式8所示:
Value2=max(dot(N, L), 0) 公式8
其中,Value2用于表示渲染值与预设阈值间的比对值;max()用于表示取最大值函数。即上式描述了在渲染值与0之间,取两者中的较大值;进一步地,在该渲染值dot(N, L)的计算结果大于或等于0的情况下,该式的值为渲染值;在该渲染值dot(N, L)的计算结果小于0的情况下,该式的值为0;则将上述公式8代入公式2的Value1中,可以得到计算单光源渲染结果的公式9:
vector3 color = light_color×max(dot(N, L), 0)×light_strength公式9
或者,将上述公式8代入公式3的Value1中,得到计算单光源渲染结果的公式10:
vector3 color = (light_color.rgb×light_color.a)×max(dot(N, L), 0)×light_strength
公式10
其中,L表示该光照方向参数,N表示该纹理影响参数。
此处在计算得到单光源渲染结果之后,需要通过遍历得到该目标渲染结果,此处不再赘述。
通过上述步骤,通过设置预设阈值,防止从该光照映射图像得到的该纹理影响参数,以及该光源信息得到的该光照方向参数,并根据该纹理影响参数和该光照方向参数得到的该渲染值对该原始二维图像的渲染效果变差而导致失真,从而提高了二维图像光照渲染的容错率和真实性。
在本实施例中还提供了一种二维图像光照渲染方法。图3是本实施例的另一种二维图像光照渲染方法的流程图,图4是本实施例的原始二维图像的示意图,图5是本实施例的目标渲染结果的示意图,从图4到图5的二维图像渲染过程采用图3所示的二维图像光照渲染方法中的步骤,如图3所示,该流程包括如下步骤:
步骤S302,渲染环境初始化。该步骤可以是根据设计人员的渲染指令实时生成对二维图像进行渲染的环境,例如生成渲染参数的初始化值;该步骤主要从该业务逻辑层获取该渲染参数的初始化值;该业务逻辑层位于该控制装置中,用于实时接收请求数据、处理请求并返回数据。
步骤S304,获取原始二维图像和光照映射图像。其中,该光照映射图像包含与该原始二维图像的各像素点对应的光照映射参数;该光照映射图像与该原始二维图像一对一对应,该光照映射图像是指与该原始二维图像对应的一张包含该原始二维图像的各像素点期望的高度值信息的贴图;该高度值信息与该光照映射参数相对应,是指各像素点受光照影响强弱的一种系数,用于使该原始二维图像呈现出三维的视觉效果,而其本身并不包含三维数据,在实际应用中,高度值信息贴图可以在3D软件中作为置换贴图来使用,贴图的每个点会沿法线进行位移,从而造成真实的三维凹凸效果;该光照映射图像可以通过获取设计人员对照该原始二维图像进行绘制的高度值信息贴图得到的,也可以是通过对法线贴图利用算法提取出高度值信息得到的,此处不再赘述;每张原始二维图像只对应一张光照映射图像,在本申请中针对一张原始二维图像的二维图像光照渲染只需要一张对应的光照映射图像。
步骤S306,获取光源信息。其中,该光源信息包括光源数量、光源高度、光源位置、光源颜色和光源强度等属性,该光源信息的光源位置可以是在三维世界坐标系中的任意位置;该光源信息可以从该控制装置的业务逻辑层获取得到的,并输入至控制装置的片元着色器以执行二维光照渲染方法中的步骤。
步骤S308,控制装置的片元着色器定位到屏幕像素点位置坐标。其中,该控制装置的片元着色器是指openGL(Open Graphics Library,开放式图形库)中的FragmentShader,该片元是指将绘制到该图像显示设备的屏幕上的与该原始二维图像中的像素点对应的单个像素点。
步骤S310,对该原始二维图像进行纹理采样。其中,在该控制装置进行纹理采样之前,该控制装置根据该图像显示设备的屏幕尺寸,将该原始二维图像和该光照映射图像进行适配,以使得该控制装置的片元着色器处理的是该图像显示设备、该原始二维图像和该光照映射图像在视觉上相对应的像素点,使得控制装置的片元着色器根据该像素点进行二维图像渲染;例如,有一张100x100dpi的原始二维图像需要全屏显示到一个200x200dpi的图像显示设备上,那么对于原始二维图像上(50,50)的像素点在纹理采样后就对应该图像显示设备(100, 100)的像素点坐标;该纹理采样得到的该原始纹理图像可以是只有一个像素点的纹理图像,也可以是该原始二维图像中的至少一个待渲染对象的像素图像。
步骤S312,纹理采样后得到该原始纹理图像。
步骤S314,根据该原始纹理图像结合光源信息得到光照方向参数N。根据该原始纹理图像的图像平面坐标,以及该光源信息的光源平面坐标得到平面光照方向,并根据该光源信息的光源高度坐标计算得到高度光照方向;根据该平面光照方向和该高度光照方向获取三维光照方向,并将该三维光照方向归一化得到该光照方向参数。其中,该光照方向参数用于指示该原始二维图像中的模拟光照方向;该光源信息至少有一个,与光源数量相对应,针对该原始二维图像中的每个该待渲染对象,该待渲染对象的对象渲染结果为所有光源的计算结果求和得到,并根据所有待渲染对象的对象渲染结果得到该原始二维图像的目标渲染结果;该待渲染对象可以是一个像素点,也可以是该原始二维图像中的像素块。具体地,该三维光照方向light_dir的计算公式可以为:vector3 light_dir = vector3(light_pos.xy - frag_pos.xy, light_pos.z);从而对该三维光照方向归一化后得到该光照方向参数的计算公式为:vector3 L = normalize(light_dir);需要说明的是,light_pos.xy -frag_pos.xy表示该平面光照方向;light_pos.z表示该高度光照方向;light_pos表示光源位置,有x,y,z三个轴位置坐标;light_pos.z即代表光源高度;frag_pos的类型为二维向量,表示控制装置的当前片元着色器处理的原始纹理图像坐标;L表示该光照方向参数;nomalize为openGL内置的函数,用于将向量归一化。
步骤S316,对该光照映射图像进行纹理采样。其中,对光照映射图像进行纹理采样同对原始二维图像的纹理采样,该光照纹理图像可以是一个像素点的图像,也可以是与该待渲染对象相对应的块像素。
步骤S318,纹理采样后得到光照纹理图像。
步骤S320,对该光照纹理图像进行数据解码。其中,该数据解码是指对约定了数据格式的该光照映射图像对应的光照纹理图像进行高度值信息解码还原的步骤,与编码格式相对应。
步骤S322,数据解码后得到该纹理影响参数L。具体地,该纹理影响参数N的计算公式可以为vector3 N = normalize(height_texture.rgb × 2.0 - 1.0);需要说明的是,nomalize为openGL内置的函数,用于将向量归一化;height_texture.rgb × 2.0 - 1.0表示对该光照纹理图像进行数据解码;height_texture 为该光照纹理图像,可以为三维向量或四维向量;在该height_texture为三维向量的情况下,该height_texture仅包含该光照纹理图像的RGB信息,即height_texture.rgb;在该height_texture为四维向量的情况下,该height_texture还包含高度值信息透明度信息,该高度值信息透明度信息可以在绘制该光照映射图像时预设为包含或不包含该高度值信息透明度信息。
步骤S324,计算生成目标渲染结果。首先,根据该光照方向参数和该纹理影响参数计算生成该渲染值;该渲染值用于指示根据该光照映射图像对该原始二维图像进行渲染的像素结果。其次,将该渲染值与预设阈值进行比对;在检测到该渲染值大于或等于该预设阈值的情况下,根据该渲染值和该光源信息计算生成该目标渲染结果;在检测到该渲染值小于该预设阈值的情况下,生成指示光源渲染颜色为该预设阈值的修正渲染结果。其中,以预设阈值0为例,根据该渲染值和该光源信息计算生成目标渲染结果的公式可以是:vector3color = (light_color.rgb × light_color.a) × max(dot(N, L), 0) × light_strength;需要说明的是,dot(N, L)表示对该光照方向参数和该纹理影响参数进行向量点乘,max(dot(N, L), 0)表示对向量点乘的结果与预设阈值0进行比较,取两者中的较大值,从而得到针对单个像素的渲染结果color。具体地,该控制装置的片元着色器获取到该原始二维图像、该光照映射图像和该光源信息后,解析出所有数量的光源信息;控制装置的片元着色器根据该原始二维图像和解析后的每个光源信息得到对应的单光源光照方向参数,从而分别根据每个单光源光照方向参数和该光照映射参数生成该原始二维图像的目标渲染结果;例如,针对该原始二维图像中的一个像素点,首先计算一个光源的单光源渲染结果,然后计算所有单光源渲染结果的和得到像素点的光源渲染结果,在对该原始二维图像遍历完成后即得到该目标渲染结果。
通过上述步骤,只需要一张与该原始二维图像对应的该光照映射图像生成目标渲染结果,可以根据位于三维世界坐标系中任意位置的光源信息计算该原始二维图像任意角度的光照渲染结果,相比于相关技术中针对一个场景任意角度展示中,根据光源数量、光源颜色向量等光源属性需要至少360张高度值信息贴图,或者通过获取3D模型进行二维图形展示的技术方案,本申请的技术方案成本更低、计算过程更为简单、效率更高,解决了二维图像光照渲染成本高、效率低的问题,实现了二维图像的低成本高效渲染。
应该理解的是,虽然图2至图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在本实施例中还提供了一种二维图像光照渲染装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本实施例的二维图像光照渲染装置的结构框图,如图6所示,该装置包括:获取模块10和渲染模块20;
该获取模块10,用于获取原始二维图像、光照映射图像和光源信息;其中,该光照映射图像包含与该原始二维图像的各像素点对应的光照映射参数;
该渲染模块20,用于根据该原始二维图像和该光源信息得到光照方向参数;根据该光照方向参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染值,并根据该渲染值和该光源信息计算生成目标渲染结果。
关于二维图像光照渲染装置的具体限定可以参见上文中对于二维图像光照渲染方法的限定,在此不再赘述。上述二维图像光照渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在本实施例中还提供了一种二维图像光照渲染系统,包括:控制装置104和图像显示设备102;
该控制装置104用于执行上述任一项二维图像光照渲染方法实施例中的步骤;
该图像显示设备102用于获取目标渲染结果进行显示。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取原始二维图像、光照映射图像和光源信息;其中,该光照映射图像包含与该原始二维图像的各像素点对应的光照映射参数。
S2,根据该原始二维图像和该光源信息得到光照方向参数;根据该光照方向参数和该光照映射参数进行计算生成该原始二维图像中各像素点对应的渲染值,并根据该渲染值和该光源信息计算生成目标渲染结果。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的二维图像光照渲染方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种二维图像光照渲染方法。
在一个实施例中,提供了一种控制装置,该控制装置可以是服务器,其内部结构图可以如图7所示。该控制装置包括通过系统总线连接的处理器、存储器和通信接口。其中,该控制装置的处理器用于提供计算和控制能力。该控制装置的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该控制装置的通信接口用于与外部的图像显示设备连接通信。该计算机程序被处理器执行时以实现一种二维图像光照渲染方法。可以理解的是,该控制装置还可以与该图像显示设备集成在同一个计算机设备上,该计算机设备的内部结构图可以如图8所示,该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7至图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种二维图像光照渲染方法,其特征在于,包括:
获取原始二维图像、光照映射图像和光源信息;其中,所述光照映射图像包含与所述原始二维图像的各像素点对应的光照映射参数;所述光照映射图像是指与所述原始二维图像对应的一张包含所述原始二维图像的各像素点期望的高度值信息的贴图;所述高度值信息与该光照映射参数相对应,是指各像素点受光照影响强弱的一种系数;
根据所述原始二维图像和所述光源信息得到光照方向参数,包括:
对所述原始二维图像进行纹理采样得到原始纹理图像,并根据所述原始纹理图像和所述光源信息得到光照方向参数;所述光照方向参数用于指示所述原始二维图像中的模拟光照方向;
其中,所述根据所述原始纹理图像和所述光源信息得到光照方向参数包括:根据所述原始纹理图像的图像平面坐标,以及所述光源信息的光源平面坐标得到平面光照方向,并根据所述光源信息的光源高度坐标计算得到高度光照方向;根据所述平面光照方向和所述高度光照方向获取三维光照方向,并将所述三维光照方向归一化得到所述光照方向参数;
根据所述光照方向参数和所述光照映射参数间的关联信息生成所述原始二维图像中各像素点对应的渲染值;其中,所述关联信息用于表征光照映射参数向量在光照方向参数向量方向上的投影长度;
将所述渲染值与预设阈值进行比对;
在检测到所述渲染值大于或等于所述预设阈值的情况下,根据所述渲染值和所述光源信息计算生成目标渲染结果;
在检测到所述渲染值小于所述预设阈值的情况下,生成指示光源渲染颜色为所述预设阈值的修正渲染结果。
2.根据权利要求1所述的二维图像光照渲染方法,其特征在于,所述根据所述光照方向参数和所述光照映射参数间的关联信息生成所述原始二维图像中各像素点对应的渲染值,包括:
将所述光照方向参数和所述光照映射参数进行向量点乘生成所述渲染值;
所述根据所述渲染值和所述光源信息计算生成目标渲染结果,包括:获取所述光源信息的光源颜色向量和光源强度,根据所述光源颜色向量、所述光源强度和所述渲染值计算生成所述目标渲染结果。
3.根据权利要求2所述的二维图像光照渲染方法,其特征在于,所述光源颜色向量包括三维颜色分量和透明度分量;所述根据所述光源颜色向量、所述光源强度和所述渲染值计算生成所述目标渲染结果包括:
获取所述三维颜色分量和所述透明度分量的分量相乘结果,并根据所述分量相乘结果、所述光源强度和所述渲染值计算生成所述目标渲染结果。
4.根据权利要求1所述的二维图像光照渲染方法,其特征在于,所述生成所述原始二维图像中各像素点对应的渲染值,包括:
对所述光照映射图像中的光照映射参数进行纹理采样得到光照纹理图像,并对所述光照纹理图像进行数据解码得到纹理影响参数;
根据所述光照方向参数和所述纹理影响参数计算生成所述渲染值。
5.根据权利要求4所述的二维图像光照渲染方法,其特征在于,所述根据所述光照方向参数和所述纹理影响参数计算生成所述渲染值的计算公式如下所示:
vector3 color = (light_color.rgb×light_color.a)×max(dot(N, L), 0)×light_strength
其中,vector3表示三维向量;color表示针对一个像素点上的一个光源的单光源渲染结果;light_color.rgb表示三维颜色分量,包括R、G、B三个分量,light_color.a表示透明度分量,所述透明度分量是指在进行光源渲染时对应光源的叠加效果;light_strength表示光源强度;L表示所述光照方向参数,N表示所述纹理影响参数;dot()用于表示向量点乘运算;max()用于表示取最大值函数。
6.根据权利要求1所述的二维图像光照渲染方法,其特征在于,所述根据所述渲染值和所述光源信息计算生成目标渲染结果,包括:
获取当前光源信息,并根据所述当前光源信息得到当前渲染结果;
获取下一个光源信息,根据所述原始二维图像和所述下一个光源信息得到下一个光照方向参数,并根据所述下一个光照方向参数和所述光照映射参数计算下一个渲染值,根据所述下一个渲染值和所述下一个光源信息计算生成下一个渲染结果;
根据所述当前渲染结果和所述下一个渲染结果得到所述目标渲染结果。
7.根据权利要求1至权利要求6中任一项所述的二维图像光照渲染方法,其特征在于,在所述生成目标渲染结果之后,还包括:
获取光源更新信息,根据所述光源更新信息得到光照方向更新参数,并根据所述光照方向更新参数和所述光照映射参数进行计算生成所述原始二维图像中各像素点对应的渲染更新值,根据所述渲染更新值和所述光源信息计算生成渲染更新结果;
其中,所述光源更新信息包括光源位置更新信息、光源高度更新信息、光源颜色更新信息和/或光源强度更新信息。
8.一种二维图像光照渲染装置,其特征在于,包括:获取模块和渲染模块;
所述获取模块,用于获取原始二维图像、光照映射图像和光源信息;其中,所述光照映射图像包含与所述原始二维图像的各像素点对应的光照映射参数;所述光照映射图像是指与所述原始二维图像对应的一张包含所述原始二维图像的各像素点期望的高度值信息的贴图;所述高度值信息与该光照映射参数相对应,是指各像素点受光照影响强弱的一种系数;
所述渲染模块,用于根据所述原始二维图像和所述光源信息得到光照方向参数;其中,所述光照方向参数用于指示所述原始二维图像中的模拟光照方向;所述渲染模块还用于对所述原始二维图像进行纹理采样得到原始纹理图像,根据所述原始纹理图像的图像平面坐标,以及所述光源信息的光源平面坐标得到平面光照方向,并根据所述光源信息的光源高度坐标计算得到高度光照方向;所述渲染模块根据所述平面光照方向和所述高度光照方向获取三维光照方向,并将所述三维光照方向归一化得到所述光照方向参数;
所述渲染模块还用于根据所述光照方向参数和所述光照映射参数间的关联信息生成所述原始二维图像中各像素点对应的渲染值,并根据所述渲染值和所述光源信息计算生成目标渲染结果;其中,所述关联信息用于表征光照映射参数向量在光照方向参数向量方向上的投影长度;
所述渲染模块还用于将所述渲染值与预设阈值进行比对;
所述渲染模块还用于在检测到所述渲染值大于或等于所述预设阈值的情况下,根据所述渲染值和所述光源信息计算生成目标渲染结果;
所述渲染模块还用于在检测到所述渲染值小于所述预设阈值的情况下,生成指示光源渲染颜色为所述预设阈值的修正渲染结果。
9.一种二维图像光照渲染系统,其特征在于,包括:控制装置和图像显示设备;
所述控制装置用于执行权利要求1至7中任一项所述的二维图像光照渲染方法;
所述图像显示设备用于获取目标渲染结果进行显示。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的二维图像光照渲染方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的二维图像光照渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210907543.6A CN114998504B (zh) | 2022-07-29 | 2022-07-29 | 二维图像光照渲染方法、装置、系统和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210907543.6A CN114998504B (zh) | 2022-07-29 | 2022-07-29 | 二维图像光照渲染方法、装置、系统和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114998504A CN114998504A (zh) | 2022-09-02 |
CN114998504B true CN114998504B (zh) | 2022-11-15 |
Family
ID=83021264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210907543.6A Active CN114998504B (zh) | 2022-07-29 | 2022-07-29 | 二维图像光照渲染方法、装置、系统和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114998504B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117173314B (zh) * | 2023-11-02 | 2024-02-23 | 腾讯科技(深圳)有限公司 | 一种图像处理方法、装置、设备、介质及程序产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111968215A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3910618B2 (ja) * | 2005-07-19 | 2007-04-25 | 株式会社ルネサステクノロジ | 画像生成装置 |
US20150348316A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Equivalent Lighting For Mixed 2D and 3D Scenes |
CN106056661B (zh) * | 2016-05-31 | 2018-08-28 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN107705361A (zh) * | 2017-09-27 | 2018-02-16 | 中国舰船研究设计中心 | 一种基于数据驱动的舰船三维态势图展示方法 |
CN111402348B (zh) * | 2019-01-03 | 2023-06-09 | 百度在线网络技术(北京)有限公司 | 光照效果的形成方法、装置和渲染引擎 |
CN110288692B (zh) * | 2019-05-17 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 光照渲染方法和装置、存储介质及电子装置 |
CN112242004B (zh) * | 2019-07-16 | 2023-09-01 | 华中科技大学 | 一种基于光照渲染的ar场景的虚拟雕刻方法及系统 |
US11276227B2 (en) * | 2019-12-24 | 2022-03-15 | Tencent Technology (Shenzhen) Company Limited | Object rendering method and apparatus, storage medium, and electronic device using a simulated pre-integration map |
CN112819940B (zh) * | 2021-01-29 | 2024-02-23 | 网易(杭州)网络有限公司 | 渲染方法、装置和电子设备 |
CN112755535B (zh) * | 2021-02-05 | 2022-07-26 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、存储介质及计算机设备 |
CN113205586A (zh) * | 2021-04-19 | 2021-08-03 | Oppo广东移动通信有限公司 | 图像处理方法及装置、电子设备、计算机可读存储介质 |
CN113793402B (zh) * | 2021-08-10 | 2023-12-26 | 北京达佳互联信息技术有限公司 | 图像渲染方法、装置、电子设备及存储介质 |
CN114529656A (zh) * | 2022-02-21 | 2022-05-24 | 北京大甜绵白糖科技有限公司 | 阴影贴图的生成方法、装置、计算机设备及存储介质 |
-
2022
- 2022-07-29 CN CN202210907543.6A patent/CN114998504B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111968215A (zh) * | 2020-07-29 | 2020-11-20 | 完美世界(北京)软件科技发展有限公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114998504A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11232534B2 (en) | Scheme for compressing vertex shader output parameters | |
KR102275712B1 (ko) | 렌더링 방법, 렌더링 장치 및 전자 장치 | |
CN110211218B (zh) | 画面渲染方法和装置、存储介质及电子装置 | |
US9626733B2 (en) | Data-processing apparatus and operation method thereof | |
CN106575158B (zh) | 环境映射虚拟化机构 | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
US9508120B2 (en) | System and method for computer vision item recognition and target tracking | |
CN111476851B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111047509A (zh) | 一种图像特效处理方法、装置及终端 | |
CN114998504B (zh) | 二维图像光照渲染方法、装置、系统和电子装置 | |
CN107609946A (zh) | 一种显示控制方法及计算设备 | |
JP2022541569A (ja) | 単色画像及び深度情報を使用した顔テクスチャマップ生成 | |
US8004515B1 (en) | Stereoscopic vertex shader override | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
CN109448123A (zh) | 模型的控制方法及装置、存储介质、电子设备 | |
CN117292039A (zh) | 顶点坐标生成方法、装置、电子设备及计算机存储介质 | |
JP2023525725A (ja) | データ圧縮の方法及び装置 | |
CN112580213A (zh) | 电场线的显示图像的生成方法和装置、存储介质 | |
US10754498B2 (en) | Hybrid image rendering system | |
CN112528707A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 | |
CN115880127A (zh) | 一种渲染格式选择方法及其相关设备 | |
CN113256764A (zh) | 一种光栅化装置、方法及计算机存储介质 | |
JP2023527438A (ja) | リアルタイム深度マップを用いたジオメトリ認識拡張現実効果 | |
CN107038737B (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 |