CN111739074A - 一种场景多点光源渲染方法及装置 - Google Patents
一种场景多点光源渲染方法及装置 Download PDFInfo
- Publication number
- CN111739074A CN111739074A CN202010492344.4A CN202010492344A CN111739074A CN 111739074 A CN111739074 A CN 111739074A CN 202010492344 A CN202010492344 A CN 202010492344A CN 111739074 A CN111739074 A CN 111739074A
- Authority
- CN
- China
- Prior art keywords
- rendering
- light source
- map
- point light
- color
- 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
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- 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
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B20/00—Energy efficient lighting technologies, e.g. halogen lamps or gas discharge lamps
- Y02B20/40—Control techniques providing energy savings, e.g. smart controller or presence detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本发明提供的一种场景多点光源渲染方法及装置,通过创建第一渲染贴图,生成颜色贴图;创建第二渲染贴图,生成方向贴图;根据所述方向贴图和颜色贴图进行像素的着色计算,在实际渲染时采用预结算渲染贴图的方式,不仅解决了前向渲染管线计算量大的问题,还解决了延迟渲染中传输带宽消耗大的问题。
Description
技术领域
本发明涉及计算机图形图像领域,特别涉及一种场景多点光源渲染方法及装置。
背景技术
传统的场景多点光源渲染方法如下:
1、前向渲染:传统前向渲染的方案在渲染每一个物件时,每一盏光源都需要一个单独的渲染通道进行计算,当场景中存在大量的物件和光源时,将产生大量的性能消耗,无论对于PC或是移动平台来说,都是难以承担的性能负担,假如存在n个物件,m盏灯光,那么最终渲染通道的次数为n*m个。
2、延迟渲染:延迟渲染的提出是为了解决上述方案中大量的光照计算,延迟渲染的方案是将固有色、法线、高光、AO等信息写入几何缓存中,避免了像传统前向渲染中逐物件逐光源的计算,假如场景中存在n个物件,m盏灯光那么最终渲染通道的次数为n+m,延迟渲染虽然解决了计算量的问题,但是却带来了大量的传输带宽消耗,在移动平台上效率低下。
因此,需要一种场景多点光源渲染方法及装置,不仅能够解决前向渲染管线计算量大的问题,还能解决延迟渲染中传输带宽消耗大的问题。
发明内容
(一)要解决的技术问题
为了解决现有技术的上述问题,本发明提供一种场景多点光源渲染方法及装置,不仅能够解决前向渲染管线计算量大的问题,还能解决延迟渲染中传输带宽消耗大的问题。
(二)技术方案
为了达到上述目的,本发明采用的一种技术方案为:
一种场景多点光源渲染方法,包括步骤:
S1、创建第一渲染贴图,生成颜色贴图;
S2、创建第二渲染贴图,生成方向贴图;
S3、根据所述方向贴图和颜色贴图进行像素的着色计算。
为了达到上述目的,本发明采用的另一种技术方案为:
一种场景多点光源渲染装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
S1、创建第一渲染贴图,生成颜色贴图;
S2、创建第二渲染贴图,生成方向贴图;
S3、根据所述方向贴图和颜色贴图进行像素的着色计算。
(三)有益效果
本发明的有益效果在于:通过创建第一渲染贴图,生成颜色贴图;创建第二渲染贴图,生成方向贴图;根据所述方向贴图和颜色贴图进行像素的着色计算,在实际渲染时采用预结算渲染贴图的方式,不仅解决了前向渲染管线计算量大的问题,还解决了延迟渲染中传输带宽消耗大的问题。
附图说明
图1为本发明实施例的场景多点光源渲染方法的流程图;
图2为本发明实施例的场景多点光源渲染装置的结构示意图。
【附图标记说明】
1:场景多点光源渲染装置;
2:存储器;
3:处理器。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
请参照图1,一种场景多点光源渲染方法,包括步骤:
S01、获取当前场景中所有点光源的数据信息,所述数据信息包括点光源的位置、照亮区域和点颜色;
具体地,还包括根据每个点光源的位置和照亮区域形成矩形区域,与视窗矩形进行是否相交的计算,剔除对当前视窗下无影响的点光源;
S02、根据所述数据信息计算每个点光源的顶点缓存和索引缓存,生成每个点光源的面片模型。
本发明通过在渲染流程中先对点光源的颜色、方向和强度信息进行预处理,预先渲染到少数个渲染目标上,之后在实际渲染时采用预结算渲染贴图的方式,不仅解决了前向渲染管线计算量大的问题,还解决了延迟渲染中传输带宽消耗大的问题。
S1、创建第一渲染贴图,生成颜色贴图;
步骤S1具体为:
创建一张第一渲染贴图,并将每个点光源的面片模型逐个渲染到所述第一渲染贴图中,得到包含所有点光源颜色叠加后的最终颜色值的颜色贴图。
S2、创建第二渲染贴图,生成方向贴图;
步骤S2具体为:
根据预设的规则创建相应数量的第二渲染贴图,并将每个点光源的面片模型逐个渲染到所述第二渲染贴图中,得到包含每个像素光源的方向的方向贴图。
具体地,所述的根据预设的规则创建相应数量的第二渲染贴图具体为:
若当前装置支持浮点纹理时,则创建两张第二渲染贴图;
若当前装置不支持浮点纹理时,则创建四张第二渲染贴图;
S3、根据所述方向贴图和颜色贴图进行像素的着色计算。
实施例二
本实施例和实施例一的区别在于,本实施例将结合具体的应用场景进一步说明本发明上述场景多点光源渲染方法是如何实现的:
1、获取当前场景中所有点光源的数据信息,所述数据信息包括点光源的位置、照亮区域和点颜色;
2、根据每个点光源的位置和照亮区域形成矩形区域,与视窗矩形进行是否相交的计算,剔除对当前视窗下无影响的点光源;
3、根据所述数据信息计算每个点光源的顶点缓存和索引缓存,生成每个点光源的面片模型。
其中,所述顶点缓存包含矩形四个顶点的位置、uv和颜色数据。位置的信息可以由点光源的位置和照亮区域算出,假设光源的位置为pos(x,y,0),影响区域宽高为分为为w和h,那么四个顶点的位置分为:pos1(x-w/2,y-h/2,0),pos2(x+w/2,y-h/2,0),pos3(x-w/2,y+h/2,0),pos4(x+w/2,y+h/2,0),对应的uv分别为(0,0),(1,0),(0,1),(1,1),顶点色为一个四维的分量,其中rgb代表光源的颜色,a代表光源的强度,其中uv为u,v纹理贴图坐标的简称(它和空间模型的X,Y,Z轴是类似的).它定义了图片上每个点的位置的信息。
4、创建第一渲染贴图,生成颜色贴图;
创建一张第一渲染贴图,并将每个点光源的面片模型逐个渲染到所述第一渲染贴图中,得到包含所有点光源颜色叠加后的最终颜色值的颜色贴图,具体方法如下:
(1)为上述面片模型的渲染打开颜色混合,设置混合选项为叠加颜色,将面片模型的着色颜色与渲染贴图的颜色进行相乘;
(2)将点光的衰减用贴图的方式进行模拟,越远离光源中心,衰减强度越强;
(3)像素着色器中,采样衰减强度贴图,获取所在像素的衰减后的点光源强度值为attn,从顶点缓存中输入的颜色rgb通道包含了点光源的颜色color,a通道包含了点光源的强度intensity,那么最终输出的颜色值为1.0-attn*color*intensity;
(4)逐个渲染点光源的面片模型,这样就能得到渲染贴图上的最终的颜色值为1.0减去光源叠加的颜色,本发明通过对该渲染贴图采样,再用1.0减去渲染贴图的颜色,就是包含所有点光源颜色叠加后的最终颜色值的颜色贴图。
5、创建第二渲染贴图,生成方向贴图;
5.1、若当前装置支持浮点纹理,则创建两张第二渲染贴图,并将每个点光源的面片模型逐个渲染到所述第二渲染贴图中,得到包含每个像素光源的方向的方向贴图,具体方法如下:
(1)为上述面片模型的渲染打开颜色混合,设置混合选项为叠加颜色,将面片模型的着色颜色与渲染贴图的颜色进行相加;
(2)由于点光源的方向是由光源中心朝向四面八方,因此,本发明通过uv来计算指定点光源在各个像素的方向,所以光源的方向为(0.5-uv.x,0.5-uv.y),此处标记为dir0;
(3)此处光源的方向中不止包含了方向的信息,还需要有强度的信息,由于距离光源中心越远处,光强度越弱,根据上述的衰减贴图和光源的强度值,可以得出每一个像素所受到的点光源的方向为dir0乘以衰减值再乘以光源的强度值;
(4)由于方向向量存在负值,且方向分量的绝对值可能大于1,因此,需要对其进行特殊处理才能存到渲染贴图中,本发明采取了以下方式:
A.基于方向的正负性,本发明将其分为四个象限的方向,假设方向向量为(x,y),那么第一象限中x,y皆为正数,第二象限为x为负数,y为正数,第三象限x,y皆为负数,第四象限x为正数,y为负数。
B.本发明用颜色的rg通道存储其中一个象限的方向,而用ba存储另外一个象限的方向,因此,需要两张渲染贴图;存储的方式为对负数取绝对值后存储,假如存储某个第三象限的值,本发明将第三象限负数的(x,y)变成(-x,-y)存储。
C.又因为方向叠加后的值可能大于1,本发明将对方向的值进行浮点编码处理,如乘以一个缩小系数0.01,然后写入另外一张渲染贴图。
D.顺序渲染光源的面片模型,将同象限的方向分量进行叠加,得到包含每个像素光源的方向的方向贴图;
5.2、若当前装置不支持浮点纹理,则创建两张第二渲染贴图,并将每个点光源的面片模型逐个渲染到所述第二渲染贴图中,得到包含每个像素光源的方向的方向贴图,具体方法如下:
(1)为上述面片模型的渲染打开颜色混合,设置混合选项为叠加颜色,将面片模型的着色颜色与渲染贴图的颜色进行相加;
(2)由于点光源的方向是由光源中心朝向四面八方,因此本发明通过uv来计算指定点光源在各个像素的方向,所以光源的方向为(0.5-uv.x,0.5-uv.y),此处标记为dir0;
(3)此处光源的方向中不止包含了方向的信息,还需要有强度的信息,由于距离光源中心越远处,光强度越弱,根据上述的衰减贴图和光源的强度值,可以得出每一个像素所受到的点光源的方向为dir0乘以衰减值再乘以光源的强度值;
(4)由于方向向量存在负值,且方向分量的绝对值可能大于1,因此需要对其进行特殊处理才能存到渲染贴图中,本发明采取了以下方式:
A.基于方向的正负性,本发明将其分为四个象限的方向,假设方向向量为(x,y),那么第一象限中x,y皆为正数,第二象限为x为负数,y为正数,第三象限x,y皆为负数,第四象限x为正数,y为负数。
B.本发明用颜色的rg通道存储其中一个象限的方向,而用ba存储另外一个象限的方向,因此需要,两张渲染贴图;存储的方式为,对负数取绝对值后存储,假如存储某个第三象限的值,本发明将第三象限负数的(x,y)变成(-x,-y)存储。
C.又因为方向叠加后的值可能大于1,因此本发明将整数部分和小数部分分为存储在两张贴图中,首先本发明对整数部分进行重新编码,将整数部分的值乘以0.01,写入渲染贴图,而将小数部分的值乘以0.1,写入另外一张渲染贴图。
D.顺序渲染光源的面片模型,将同象限的方向分量进行叠加,得到包含每个像素光源的方向的方向贴图;
6、根据所述方向贴图和颜色贴图进行像素的着色计算。
本发明通过在渲染流程中先对点光源的颜色、方向和强度信息进行预处理,预先渲染到少数个渲染目标上,之后在实际渲染时采用预结算渲染贴图的方式,不仅解决了前向渲染管线计算量大的问题,还解决了延迟渲染中传输带宽消耗大的问题。
实施例三
请参照图2,一种场景多点光源渲染装置1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述程序时实现实施例一中的各个步骤。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种场景多点光源渲染方法,其特征在于,包括步骤:
S1、创建第一渲染贴图,生成颜色贴图;
S2、创建第二渲染贴图,生成方向贴图;
S3、根据所述方向贴图和颜色贴图进行像素的着色计算。
2.根据权利要求1所述的场景多点光源渲染方法,其特征在于,步骤S1之前还包括:
S01、获取当前场景中所有点光源的数据信息;
S02、根据所述数据信息计算每个点光源的顶点缓存和索引缓存,生成每个点光源的面片模型。
3.根据权利要求1所述的场景多点光源渲染方法,其特征在于,所述数据信息包括点光源的位置、照亮区域和点颜色。
4.根据权利要求2所述的场景多点光源渲染方法,其特征在于,步骤S1具体为:
创建一张第一渲染贴图,并将每个点光源的面片模型逐个渲染到所述第一渲染贴图中,得到包含所有点光源颜色叠加后的最终颜色值的颜色贴图。
5.根据权利要求2所述的场景多点光源渲染方法,其特征在于,步骤S2具体为:
根据预设的规则创建相应数量的第二渲染贴图,并将每个点光源的面片模型逐个渲染到所述第二渲染贴图中,得到包含每个像素光源的方向的方向贴图。
6.一种场景多点光源渲染装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
S1、创建第一渲染贴图,生成颜色贴图;
S2、创建第二渲染贴图,生成方向贴图;
S3、根据所述方向贴图和颜色贴图进行像素的着色计算。
7.根据权利要求6所述的场景多点光源渲染装置,其特征在于,步骤S1之前还包括:
S01、获取当前场景中所有点光源的数据信息;
S02、根据所述数据信息计算每个点光源的顶点缓存和索引缓存,生成每个点光源的面片模型。
8.根据权利要求6所述的场景多点光源渲染装置,其特征在于,所述数据信息包括点光源的位置、照亮区域和点颜色。
9.根据权利要求7所述的场景多点光源渲染装置,其特征在于,步骤S1具体为:
创建一张第一渲染贴图,并将每个点光源的面片模型逐个渲染到所述第一渲染贴图中,得到包含所有点光源颜色叠加后的最终颜色值的颜色贴图。
10.根据权利要求7所述的场景多点光源渲染装置,其特征在于,步骤S2具体为:
根据预设的规则创建相应数量的第二渲染贴图,并将每个点光源的面片模型逐个渲染到所述第二渲染贴图中,得到包含每个像素光源的方向的方向贴图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492344.4A CN111739074B (zh) | 2020-06-03 | 2020-06-03 | 一种场景多点光源渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492344.4A CN111739074B (zh) | 2020-06-03 | 2020-06-03 | 一种场景多点光源渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111739074A true CN111739074A (zh) | 2020-10-02 |
CN111739074B CN111739074B (zh) | 2023-07-18 |
Family
ID=72648225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010492344.4A Active CN111739074B (zh) | 2020-06-03 | 2020-06-03 | 一种场景多点光源渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111739074B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117710502A (zh) * | 2023-12-12 | 2024-03-15 | 摩尔线程智能科技(北京)有限责任公司 | 渲染方法、装置及存储介质 |
WO2024109006A1 (zh) * | 2022-11-23 | 2024-05-30 | 华为云计算技术有限公司 | 一种光源剔除方法及渲染引擎 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040109004A1 (en) * | 2002-12-09 | 2004-06-10 | Bastos Rui M. | Depth-of-field effects using texture lookup |
CN104268922A (zh) * | 2014-09-03 | 2015-01-07 | 广州博冠信息科技有限公司 | 一种图像渲染方法及图像渲染装置 |
CN105321200A (zh) * | 2015-07-10 | 2016-02-10 | 苏州蜗牛数字科技股份有限公司 | 离线渲染的预处理方法 |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
-
2020
- 2020-06-03 CN CN202010492344.4A patent/CN111739074B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040109004A1 (en) * | 2002-12-09 | 2004-06-10 | Bastos Rui M. | Depth-of-field effects using texture lookup |
CN104268922A (zh) * | 2014-09-03 | 2015-01-07 | 广州博冠信息科技有限公司 | 一种图像渲染方法及图像渲染装置 |
CN105321200A (zh) * | 2015-07-10 | 2016-02-10 | 苏州蜗牛数字科技股份有限公司 | 离线渲染的预处理方法 |
CN107452048A (zh) * | 2016-05-30 | 2017-12-08 | 网易(杭州)网络有限公司 | 全局光照的计算方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024109006A1 (zh) * | 2022-11-23 | 2024-05-30 | 华为云计算技术有限公司 | 一种光源剔除方法及渲染引擎 |
CN117710502A (zh) * | 2023-12-12 | 2024-03-15 | 摩尔线程智能科技(北京)有限责任公司 | 渲染方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111739074B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
WO2022111619A1 (zh) | 图像处理方法及相关装置 | |
US10049486B2 (en) | Sparse rasterization | |
US7119806B1 (en) | System, method and article of manufacture for shadow mapping | |
US6664963B1 (en) | System, method and computer program product for programmable shading using pixel shaders | |
US6593923B1 (en) | System, method and article of manufacture for shadow mapping | |
US6532013B1 (en) | System, method and article of manufacture for pixel shaders for programmable shading | |
US7583264B2 (en) | Apparatus and program for image generation | |
US20130293565A1 (en) | Color buffer and depth buffer compression | |
US6806886B1 (en) | System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline | |
US7889208B1 (en) | Z-texture mapping system, method and computer program product | |
US20110141112A1 (en) | Image processing techniques | |
US8294713B1 (en) | Method and apparatus for illuminating objects in 3-D computer graphics | |
CN111724313B (zh) | 一种阴影贴图生成方法与装置 | |
CN113240783B (zh) | 风格化渲染方法和装置、可读存储介质、电子设备 | |
US6791544B1 (en) | Shadow rendering system and method | |
US20240257436A1 (en) | Image rendering method and apparatus, electronic device, and storage medium | |
US20070273692A1 (en) | 3-Dimensional graphics processing method, medium and apparatus performing perspective correction | |
CN111739074B (zh) | 一种场景多点光源渲染方法及装置 | |
CN114742931A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
US6690369B1 (en) | Hardware-accelerated photoreal rendering | |
CN117315295A (zh) | 一种bim模型相似度计算方法、系统、设备及存储介质 | |
US7116333B1 (en) | Data retrieval method and system | |
CN114170368B (zh) | 模型的四边形线框的渲染方法、系统及模型渲染设备 | |
US11989807B2 (en) | Rendering scalable raster content |
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 |