CN108022285B - 地图渲染方法及装置 - Google Patents
地图渲染方法及装置 Download PDFInfo
- Publication number
- CN108022285B CN108022285B CN201711239353.7A CN201711239353A CN108022285B CN 108022285 B CN108022285 B CN 108022285B CN 201711239353 A CN201711239353 A CN 201711239353A CN 108022285 B CN108022285 B CN 108022285B
- Authority
- CN
- China
- Prior art keywords
- vertex
- target model
- target
- pixel
- effect
- 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/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种地图渲染方法及装置,通过对包括待渲染的目标模型的目标地图场景进行离屏渲染,得到该目标地图场景在对应的相机的可视域内的离屏渲染对象,并将该离屏渲染对象作为该目标模型的反射贴图。在目标模型的顶点着色阶段,计算相机与目标模型的每个顶点的相对位置数据,并根据该相对位置数据及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数。对每个顶点的半透明效果系数的进行光栅化,得到目标模型的每个像素的Alpha通道的值。在目标模型的像素着色阶段,根据目标模型中每个像素的Alpha通道的值对该像素及该像素在反射贴图中的对应像素进行线性插值,使目标模型达到目标半透明效果。
Description
技术领域
本发明涉及游戏开发技术领域,具体而言,涉及一种地图渲染方法及装置。
背景技术
为了改善游戏的视觉效果,现有的游戏地图场景中,许多模型(如人物模型)都采用半透明渲染的方式呈现。现有做法中,直接根据需要半透明渲染的模型中各个像素的Alpha通道的值进行半透效果渲染,采用这种方式渲染得到的模型没有层次感,效果较差,导致用户体验不好。
发明内容
有鉴于此,本发明的目的在于提供一种地图渲染方法及装置,以改善上述问题。
为了达到上述目的,本发明实施例提供一种地图渲染方法,应用于游戏客户端,所述方法包括:
获得待渲染的目标地图场景,所述目标地图场景包括需要进行半透明渲染的目标模型;
对所述目标地图场景进行离屏渲染,得到所述目标地图场景在对应的相机的可视域内的离屏渲染对象,并将所述离屏渲染对象作为所述目标模型的反射贴图;
在所述目标模型的顶点着色阶段,计算所述相机与所述目标模型的每个顶点的相对位置数据,并根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出所述每个顶点的半透明效果系数;
对所述每个顶点的半透明效果系数进行光栅化,得到所述目标模型的每个像素的Alpha通道的值;
在所述目标模型的像素着色阶段,针对所述目标模型的每个像素,根据该像素的Alpha通道的值对该像素及该像素在所述反射贴图中的对应像素进行线性插值,使所述目标模型达到所述目标半透明效果。
可选地,计算所述相机与所述目标模型的每个顶点的相对位置数据的步骤,包括:
计算所述目标模型的每个顶点的坐标以及所述每个顶点的法线;
通过世界变换矩阵,将所述目标模型的每个顶点的坐标以及所述每个顶点的法线转换到世界坐标系中,并在所述世界坐标系中计算所述相机的坐标以及所述相机的坐标到所述每个顶点的射线;
计算所述射线与所述每个顶点的法线的夹角,从而得到所述相机与所述目标模型的每个顶点的位置关系信息。
可选地,根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数的步骤,包括:
计算所述射线与所述每个顶点的法线的夹角的余弦值;
对所述余弦值及配置的目标半透明效果对应的效果参数做指数运算,得到每个顶点的半透明效果系数。
可选地,所述方法还包括:
在对所述目标模型进行颜色混合时,针对所述目标模型的每个像素,根据该像素的Alpha通道的值将待混合的像素叠加到该像素中。
可选地,在对所述目标模型进行颜色混合之后,所述方法还包括:
根据所述半透明效果系数,将边缘高光轮廓中的像素叠加到所述目标模型的对应像素上。
本发明实施例还提供一种地图渲染装置,应用于游戏客户端,所述装置包括:
获得模块,用于获得待渲染的目标地图场景,所述目标地图场景包括需要进行半透明渲染的目标模型;
离屏渲染模块,用于对所述目标地图场景进行离屏渲染,得到所述目标地图场景在对应的相机的可视域内的离屏渲染对象,并将所述离屏渲染对象作为所述目标模型的反射贴图;
第一计算模块,用于在所述目标模型的顶点着色阶段,计算所述相机与所述目标模型的每个顶点的相对位置数据,并根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出所述每个顶点的半透明效果系数;
第二计算模块,用于对所述每个顶点的半透明效果系数进行格栅化,得到所述目标模型的每个像素的Alpha通道的值;
线性插值模块,用于在所述目标模型的像素着色阶段,针对所述目标模型的每个像素,根据该像素的Alpha通道的值对该像素及该像素在所述反射贴图中的对应像素进行线性插值,使所述目标模型达到所述目标半透明效果。
可选地,所述第一计算模块计算所述相机与所述目标模型的每个顶点的相对位置数据的方式为:
计算所述目标模型的每个顶点的坐标以及所述每个顶点的法线;
通过世界变换矩阵,将所述目标模型的每个顶点的坐标以及所述每个顶点的法线转换到世界坐标系中,并在所述世界坐标系中计算所述相机的坐标到所述每个顶点的射线;
计算所述射线与所述每个顶点的法线的夹角,从而得到所述相机与所述目标模型的每个顶点的位置关系信息。
可选地,所述第一计算模块根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数的方式为:
计算所述射线与所述每个顶点的法线的夹角的余弦值;
对所述余弦值及配置的目标半透明效果对应的效果参数做指数运算做指数运算,得到每个顶点的半透明效果系数。
可选地,所述装置还包括:
颜色混合模块,用于在对所述目标模型进行颜色混合时,针对所述目标模型的每个像素,根据该像素的Alpha通道的值将待混合的像素叠加到该像素中。
可选地,所述装置还包括:
边缘高亮模块,用于在对所述目标模型进行颜色混合之后,根据所述半透明效果系数,将边缘高光轮廓中的像素叠加到所述目标模型的对应像素上。
相对于现有技术,本发明实施例具有如下有益效果:
本发明实施例提供一种地图渲染方法及装置,通过对包括待渲染的目标模型的目标地图场景进行离屏渲染,得到该目标地图场景在对应的相机的可视域内的离屏渲染对象,并将该离屏渲染对象作为该目标模型的反射贴图。在目标模型的顶点着色阶段,计算相机与目标模型的每个顶点的相对位置数据,并根据该相对位置数据及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数。对每个顶点的半透明效果系数的进行光栅化,得到目标模型的每个像素的Alpha通道的值。在目标模型的像素着色阶段,根据目标模型中每个像素的Alpha通道的值对该像素及该像素在反射贴图中的对应像素进行线性插值,使目标模型达到目标半透明效果。如此,可以改善半透明渲染的效果。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图作详细说明。
附图说明
为了更清楚地说明本发明实施例的方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种电子设备的方框示意图;
图2为本发明实施例提供的一种地图渲染方法的流程示意图;
图3为图2所示步骤S130的子步骤示意图;
图4为图2所示步骤S130的又一子步骤示意图;
图5为本发明实施例提供的一种地图渲染装置的功能模块框图。
图标:100-电子设备;110-存储器;120-处理器;130-显示单元;200-游戏客户端;210-地图渲染装置;211-获得模块;212-离屏渲染模块;213-第一计算模块;214-第二计算模块;215-线性插值模块;216-颜色混合模块;217-边缘高亮模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和展示的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参阅图1,是本发明实施例提供的一种电子设备100的方框示意图,所述电子设备100可以是任意具备图像处理功能的设备,如个人计算机(Personal Computer,PC)、服务器等。
所述电子设备100包括游戏客户端200、地图渲染装置210、存储器110、处理器120及显示单元130。
所述存储器110、处理器120以及显示单元130各元件之间直接或间接地电性连接,以实现数据的传输或交互。其中,所述游戏客户端200及所述地图渲染装置210均包括至少一个可以软件(software)或固件(firmware)的形式存储在所述存储器110中或固化在所述电子设备100的操作系统(Operating System,OS)中的软件功能模块。
其中,所述地图渲染装置210是所述游戏客户端200的一个子装置,也可以独立于所述游戏客户端200并与所述游戏客户端200通信的装置。在本实施例中,以所述地图渲染装置210是所述游戏客户端200的子装置为例进行说明。
在本实施例中,所述存储器110可以是,但不限于,随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
所述处理器120可以是一种集成电路芯片,具有信号处理能力。该处理器120也可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立门或晶体管逻辑器件、分立硬件组件。其中,通用处理器可以是微处理器或任何常规的处理器。
所述显示单元130用于建立所述电子设备100与用户之间的交互界面,或是用于显示待显示的信息,例如,电子设备100通过所述游戏客户端200解析得到的地图等。需要说明的是,所述显示单元130可以包括用于实现显示所需的硬件,如,显示屏、显卡等。
应当理解,图1所示的结构仅为示意,所述电子设备100可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。其中,图2所示的各组件可以通过软件、硬件或其组合实现,本实施例对此不做限制。
经发明人研究发现,现有的对游戏地图场景中模型的半透明渲染,通常是通过对像素的Alpha通道的值进行改变实现的,采用这种方式实现的半透明效果没有层次感,导致用户视觉体验较差。此外,采用上述方式时,需要开启显卡中的用于实现半透明渲染的AlphaBlend功能,造成较大的硬件性能消耗,进而影响游戏效果。
故发明人提供了一种地图渲染方法及装置,用以实现对游戏地图场景中模型的半透明渲染,能够根据所需的半透明效果对各像素的Alpha通道的值进行调整,从而实现富有层次感的半透明效果,且不必开启AlphaBlend功能,降低了对硬件的性能消耗。
如图2所示,是本发明实施例提供的一种地图渲染方法的流程示意图,所述地图渲染方法应用于图1所示的电子设备100。
下面对图2所示的具体流程及步骤做详细阐述。
步骤S110,获得待渲染的目标地图场景,所述目标地图场景包括需要进行半透明渲染的目标模型。
游戏地图场景相当于一个游戏视频中的一帧图像,所述目标地图场景可以是游戏视频中的一帧图像。所述目标模型是指所述目标地图场景中任意一个需要进行半透明渲染的模型,例如,人物模型,玻璃材质的房屋模型等,本实施例对此不做限制。
步骤S120,对所述目标地图场景进行离屏渲染,得到所述目标地图场景在对应的相机的可视域内的离屏渲染对象,并将所述离屏渲染对象作为所述目标模型的反射贴图。
离屏渲染(Off-Screen Rendering)是GPU(Graphics Processing Unit,图形处理器)屏幕渲染方式中的一种,是指GPU在当前屏幕缓冲区以外开辟一个缓冲区进行渲染操作。
游戏地图渲染好的场景都需要一个可以供用户查看的视图,我们通常在3D场景中用相机来提供这种需求,所述相机包括相对游戏地图场景有位置和方向。游戏地图的场景中通常包括至少一个相机,用于将渲染好的场景显示给用户。其中,只有在所述相机的可视域内的场景内容才会被用户看到。
所述目标地图场景对应的相机是指所述目标地图场景中的场景相机。
对所述目标地图场景进行离屏渲染后得到的离屏渲染对象中包括了所述目标模型周围的环境信息。经发明人研究发现,在视觉效果上,半透明材质的物体的表面能够透视周围环境的信息,并且随着半透明程度的变化,该物体的表面透视的信息量也会发生变化。因而,可以将所述离屏渲染对象作为所述目标模型的反射贴图,并根据所需的半透明效果调整所述目标模型表面的反射贴图的信息的多少。如此,可以将不透明的模型呈现出透明的效果。
步骤S130,在所述目标模型的顶点着色阶段,计算所述相机与所述目标模型的每个顶点的相对位置数据,并根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出所述每个顶点的半透明效果系数。
所述游戏客户端200在对所述目标地图场景进行离屏渲染之后,开始对所述目标模型进行渲染。对所述目标模型的渲染过程可以包括顶点着色(Vertex Shader)阶段和像素着色(Pixel Shader)阶段。
其中,所述相对位置数据是指所述相机到所述目标模型的每个顶点的射线与该顶点的发现的夹角信息,所述夹角信息可以是夹角的角度、余弦值或正弦值等,本实施例对此不做限制。由于所述目标模型表面的光照效果只与所述夹角有关,因此,只需获得所述夹角即可。
如图3所示,在所述目标模型的Vertex Shader阶段,所述游戏客户端200可以通过步骤S131、步骤S132以及步骤S133三个子步骤计算所述相机与所述目标模型的每个顶点的相对位置数据。也即,所述步骤S130中,计算所述相机与所述目标模型的每个顶点的相对位置数据的步骤,可以包括步骤S131、步骤S132及步骤S133。
步骤S131,计算所述目标模型的每个顶点的坐标以及所述每个顶点的法线。
步骤S132,通过世界变换矩阵,将所述目标模型的每个顶点的坐标以及所述每个顶点的法线转换到世界坐标系中,并在所述世界坐标系中计算所述相机的坐标以及所述相机的坐标到所述每个顶点的射线。
在实际应用中,相机通常位于世界坐标系中,相应地,也需要将目标模型的每个顶点的坐标以及所述每个顶点的法线转换到世界坐标系中,以进行后续的计算。
下面以如下示例进行详细说明:
假设所述目标模型的每个顶点的坐标为P1,所述每个顶点P1的法线的向量为n1,则实施时,可以所述目标模型的每个顶点P1的坐标以及所述每个顶点P1的法线对应的向量n1分别与所述世界变换矩阵相乘,从而得到在世界坐标系下的每个顶点的坐标P1′以及每个顶点P1′的法线的向量n1′。
然后,在所述世界坐标系中计算出所述相机的坐标为P0,并进一步计算所述相机的坐标P0到每个顶点的坐标P1′的射线的方程。其中,P0是所述相机在所述世界坐标系中的坐标。
步骤S133,计算所述射线与所述每个顶点的法线的夹角,从而得到所述相机与所述目标模型的每个顶点的相对位置数据。
可选地,如图4所示,所述步骤S130中,根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数的步骤,可以包括步骤S134及步骤S135。
步骤S134,计算所述射线与所述每个顶点的法线的夹角的余弦值。
实施时,可以根据所述射线的方程获得所述射线的方向向量,并通过计算所述射线的方向向量与所述每个顶点的法线的向量的点积,从而得到所述射线与所述每个顶点的法线的夹角的余弦值。
假设所述射线的方向向量为n2,详细地,所述夹角的余弦值m1可以通过如下算式计算获得:
m1=dot(n1′,n2)
其中,dot(x,y)表示向量x和向量y的点积,当所述向量x和向量y的模为单位长度时,dot(x,y)表示向量x和向量y的夹角的余弦值。
步骤S135,对所述余弦值及配置的目标半透明效果对应的效果参数做指数运算,得到每个顶点的半透明效果系数。
在本实施例中,在得到所述夹角的余弦值之后,可以通过如下计算式计算出与用户所需的目标半透明效果对应的半透明效果系数m2:
m2=pow(1-m1,k)
其中,pow(x,y)表示以x为底、以y为指数的幂,k为配置的效果参数,所述效果参数与所需的目标半透明效果对应,可以由相应的工作人员(如,美工等)自行配置。
经发明人研究发现,在视觉效果上,透明或是半透明的物体表面的中间部分透视效果较好,边缘部分透视效果较差。也即,在视觉效果上,透明或半透明的物体表面的中间部分具有较多的反射贴图的像素,边缘部分具有较多的目标模型的像素。
但如果直接通过所述余弦值进行后续的计算,渲染出的目标模型各个区域的透明程度变化不够明显,无法在视觉上体现出上述效果。
因而,在本实施例中,发明人设计对所述余弦值及配置的目标半透明效果对应的效果参数做指数运算,从而将变化不明显的余弦值映射成一系列变化明显的半透明效果系数,从而基于所述半透明效果系数使所述目标模型达到较好的边缘保留效果。
步骤S140,对所述每个顶点的半透明效果系数进行光栅化,得到所述目标模型的每个像素的Alpha通道的值。
在步骤S110-步骤S130中,是对所述目标模型的每个顶点进行处理,而在像素着色阶段是对所述目标模型的每个像素进行处理。因而,在步骤S140中,所述游戏客户端200通过对所述每个顶点的半透明效果系数进行光栅化,从而得到所述目标模型的每个像素的Alpha通道的值。
其中,所述像素的Alpha通道的值用于反映所述像素的透明度,在对所述像素进行显示时,会根据所述Alpha通道的值呈现出相应的透明度。
在32位的显卡中,所述Alpha通道通常有8位,也即可以表示0-255共256个透明度等级,其中,0表示全透,255表示全黑(实体),(0,255)之间则为不同程度的半透明状态。实施时,会将[0,255]映射到[0,1]这一范围,如此,只需在原始像素中R、G、B通道的值分别乘以Alpha通道的值即可呈现出相应透明度的像素。
如此,可以根据所述所需的目标半透明效果,对各个像素的Alpha通道的值进行调整。
步骤S150,在所述目标模型的像素着色阶段,针对所述目标模型的每个像素,根据该像素的Alpha通道的值对该像素及该像素在所述反射贴图中的对应像素进行线性插值,使所述目标模型达到所述目标半透明效果。
基于前述的分析可以得知,所述目标模型所需的目标半透明效果不同,所述目标模型的表面反射出的周围环境的信息量也有所不同。因此,在本实施例中,本发明根据所述半透明效果系数对所述目标模型的像素及所述反射贴图的像素进行线性插值,也即,所需的半透明程度高,则所述目标模型表面使用的所述反射贴图的像素较多,所需的半透明程度低,则所述目标模型表面使用的所述反射贴图的像素较少。
详细地,针对所述目标模型的每个像素Ct0,假设该像素Ct0在所述反射贴图的对应像素为Ct1,可以通过如下计算式对所述像素Ct0及其对应像素Ct1进行线性插值,从而得到在所述目标模型表面最终呈现的目标像素C:
C=lerp(Ct0,Ct1,alpha)=alpha*Ct0+(1-alpha)*Ct1
其中,lerp()为线性插值函数,alpha∈[0,1]。如此,当所述alpha为0时,表示所述目标模型为全透明,故应当采用所述反射贴图的像素,也即采用Ct1;当alpha值为1时,表示所述目标模型是实体,应当采用所述目标模型本身的像素,也即Ct0。
通过上述设计,即可使所述目标模型呈现出所述目标半透明效果。
可选地,在本实施例中,在步骤S150之后,还可以对在所述目标模型表面混入需要混合的颜色。详细地,所述方法还可以包括如下步骤:
在对所述目标模型进行颜色混合时,针对所述目标模型的每个像素,根据该像素的Alpha通道的值将待混合的像素叠加到该像素中。其中,待混合的像素可以根据需要进行设定,并作为参数传入,从而与所述目标模型的像素进行混合。如此,可以使所述目标模型具有更好的视觉效果。
由于进行颜色混合时,也是根据各个像素的Alpha通道的值进行像素的叠加,因此不会影响到所述目标模型的半透明效果。
可选地,在对所述目标模型进行颜色混合之后,所述方法还可以包括如下步骤:
根据所述半透明效果系数,将边缘高光轮廓中的像素叠加到所述目标模型的对应像素上。
其中,所述半透明效果系数是指前述的m2。
通过上述设计,可以提亮所述目标模型的边缘,且不改变所述目标模型的半透明效果。
如图5所示,本发明实施例还提供一种地图渲染装置210,所述地图渲染装置210应用于图1所示的游戏客户端200。
所述地图渲染装置210包括获得模块211、离屏渲染模块212、第一计算模块213、第二计算模块214以及线性插值模块215。
其中,所述获得模块211用于获得待渲染的目标地图场景,所述目标地图场景包括需要进行半透明渲染的目标模型。
在本实施例中,关于所述获得模块211的描述具体可参考对图2所示步骤S110的详细描述,也即,所述步骤S110可以由所述获得模块211执行。
所述离屏渲染模块212用于对所述目标地图场景进行离屏渲染,得到所述目标地图场景在对应的相机的可视域内的离屏渲染对象,并将所述离屏渲染对象作为所述目标模型的反射贴图。
在本实施例中,关于所述离屏渲染模块212的描述具体可参考对图2所示步骤S120的详细描述,也即,所述步骤S120可以由所述离屏渲染模块212执行。
所述第一计算模块213用于在所述目标模型的顶点着色阶段,计算所述相机与所述目标模型的每个顶点的相对位置数据,并根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出所述每个顶点的半透明效果系数。
在本实施例中,关于所述第一计算模块213的描述具体可参考对图2所示步骤S130的详细描述,也即,所述步骤S130可以由所述第一计算模块213执行。
可选地,在本实施例中,所述第一计算模块213计算所述相机与所述目标模型的每个顶点的相对位置数据的方式可以为:
计算所述相机的坐标、所述目标模型的每个顶点的坐标以及所述每个顶点的法线;
通过世界变换矩阵,将所述相机的坐标、所述目标模型的每个顶点的坐标以及所述每个顶点的法线转换到世界坐标系中,并在所述世界坐标系中计算所述相机的坐标到所述每个顶点的射线;
计算所述射线与所述每个顶点的法线的夹角,从而得到所述相机与所述目标模型的每个顶点的位置关系信息。
可选地,在本实施例中,所述第一计算模块213根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数的方式可以为:
计算所述射线与所述每个顶点的法线的夹角的余弦值;
对所述余弦值及配置的目标半透明效果对应的效果参数做指数运算做指数运算,得到每个顶点的半透明效果系数。
所述第二计算模块214用于对所述每个顶点的半透明效果系数进行格栅化,得到所述目标模型的每个像素的Alpha通道的值。
在本实施例中,关于所述第二计算模块214的描述具体可以参考对图3所示的步骤S140的详细描述,也即,所述步骤S140可以由所述第二计算模块214执行。
所述线性插值模块215用于在所述目标模型的像素着色阶段,针对所述目标模型的每个像素,根据该像素的Alpha通道的值对该像素及该像素在所述反射贴图中的对应像素进行线性插值,使所述目标模型达到所述目标半透明效果。
在本实施例中,关于所述线性插值模块215的描述具体可参考对图3所示的步骤S150的详细描述,也即,所述步骤S150可以由所述线性插值模块215执行。
可选地,在本实施例中,所述地图渲染装置210还可以包括颜色混合模块216。
所述颜色混合模块216用于在对所述目标模型进行颜色混合时,针对所述目标模型的每个像素,根据该像素的Alpha通道的值将待混合的像素叠加到该像素中。
在本实施例中,关于所述颜色混合模块216的描述具体可参考上述内容中对相关步骤的详细描述。
可选地,在本实施例中,所述地图渲染装置210还可以包括边缘高亮模块217。
所述边缘高亮模块217用于在对所述目标模型进行颜色混合之后,根据所述半透明效果系数,将边缘高光轮廓中的像素叠加到所述目标模型的对应像素上。
在本实施例中,关于所述边缘高亮模块217的描述具体可参考上述内容中对相关步骤的详细描述。
综上所述,本发明实施例提供一种地图渲染方法及装置,通过对包括待渲染的目标模型的目标地图场景进行离屏渲染,得到该目标地图场景在对应的相机的可视域内的离屏渲染对象,并将该离屏渲染对象作为该目标模型的反射贴图。在目标模型的顶点着色阶段,计算相机与目标模型的每个顶点的相对位置数据,并根据该相对位置数据及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数。对每个顶点的半透明效果系数的进行光栅化,得到目标模型的每个像素的Alpha通道的值。在目标模型的像素着色阶段,根据目标模型中每个像素的Alpha通道的值对该像素及该像素在反射贴图中的对应像素进行线性插值,使目标模型达到目标半透明效果。如此,可以改善半透明渲染的效果。
进一步地,通过上述方法及装置可以不必开启AlphaBlend功能,进而可以降低所述电子设备100的性能消耗。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (6)
1.一种地图渲染方法,其特征在于,应用于游戏客户端,所述方法包括:
获得待渲染的目标地图场景,所述目标地图场景包括需要进行半透明渲染的目标模型;
对所述目标地图场景进行离屏渲染,得到所述目标地图场景在对应的相机的可视域内的离屏渲染对象,并将所述离屏渲染对象作为所述目标模型的反射贴图;
在所述目标模型的顶点着色阶段,计算所述相机与所述目标模型的每个顶点的相对位置数据,并根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出所述每个顶点的半透明效果系数;
对所述每个顶点的半透明效果系数进行光栅化,得到所述目标模型的每个像素的Alpha通道的值;
在所述目标模型的像素着色阶段,针对所述目标模型的每个像素,根据该像素的Alpha通道的值对该像素及该像素在所述反射贴图中的对应像素进行线性插值,使所述目标模型达到所述目标半透明效果;
计算所述相机与所述目标模型的每个顶点的相对位置数据的步骤,包括:
计算所述目标模型的每个顶点的坐标以及所述每个顶点的法线;
通过世界变换矩阵,将所述目标模型的每个顶点的坐标以及所述每个顶点的法线转换到世界坐标系中,并在所述世界坐标系中计算所述相机的坐标以及所述相机的坐标到所述每个顶点的射线;
计算所述射线与所述每个顶点的法线的夹角,从而得到所述相机与所述目标模型的每个顶点的相对位置数据;
根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数的步骤,包括:
计算所述射线与所述每个顶点的法线的夹角的余弦值;
对所述余弦值及配置的目标半透明效果对应的效果参数做指数运算,得到每个顶点的半透明效果系数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对所述目标模型进行颜色混合时,针对所述目标模型的每个像素,根据该像素的Alpha通道的值将待混合的像素叠加到该像素中。
3.根据权利要求2所述的方法,其特征在于,在对所述目标模型进行颜色混合之后,所述方法还包括:
根据所述半透明效果系数,将边缘高光轮廓中的像素叠加到所述目标模型的对应像素上。
4.一种地图渲染装置,其特征在于,应用于游戏客户端,所述装置包括:
获得模块,用于获得待渲染的目标地图场景,所述目标地图场景包括需要进行半透明渲染的目标模型;
离屏渲染模块,用于对所述目标地图场景进行离屏渲染,得到所述目标地图场景在对应的相机的可视域内的离屏渲染对象,并将所述离屏渲染对象作为所述目标模型的反射贴图;
第一计算模块,用于在所述目标模型的顶点着色阶段,计算所述相机与所述目标模型的每个顶点的相对位置数据,并根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出所述每个顶点的半透明效果系数;
所述第一计算模块计算所述相机与所述目标模型的每个顶点的相对位置数据的方式为:
计算所述目标模型的每个顶点的坐标以及所述每个顶点的法线;
通过世界变换矩阵,将所述目标模型的每个顶点的坐标以及所述每个顶点的法线转换到世界坐标系中,并在所述世界坐标系中计算所述相机的坐标到所述每个顶点的射线;
所述第一计算模块根据所述相机与所述目标模型的每个顶点的相对位置数据以及配置的目标半透明效果的效果参数,计算出每个顶点的半透明效果系数的方式为:
计算所述射线与所述每个顶点的法线的夹角的余弦值;
对所述余弦值及配置的目标半透明效果对应的效果参数做指数运算,得到每个顶点的半透明效果系数;
第二计算模块,用于对所述每个顶点的半透明效果系数进行格栅化,得到所述目标模型的每个像素的Alpha通道的值;
线性插值模块,用于在所述目标模型的像素着色阶段,针对所述目标模型的每个像素,根据该像素的Alpha通道的值对该像素及该像素在所述反射贴图中的对应像素进行线性插值,使所述目标模型达到所述目标半透明效果。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
颜色混合模块,用于在对所述目标模型进行颜色混合时,针对所述目标模型的每个像素,根据该像素的Alpha通道的值将待混合的像素叠加到该像素中。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
边缘高亮模块,用于在对所述目标模型进行颜色混合之后,根据所述半透明效果系数,将边缘高光轮廓中的像素叠加到所述目标模型的对应像素上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239353.7A CN108022285B (zh) | 2017-11-30 | 2017-11-30 | 地图渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711239353.7A CN108022285B (zh) | 2017-11-30 | 2017-11-30 | 地图渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108022285A CN108022285A (zh) | 2018-05-11 |
CN108022285B true CN108022285B (zh) | 2021-04-20 |
Family
ID=62077695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711239353.7A Active CN108022285B (zh) | 2017-11-30 | 2017-11-30 | 地图渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108022285B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109260708B (zh) | 2018-08-24 | 2020-01-10 | 腾讯科技(深圳)有限公司 | 地图渲染方法、装置以及计算机设备 |
CN109741413B (zh) * | 2018-12-29 | 2023-09-19 | 超级魔方(北京)科技有限公司 | 一种场景中半透明物体的渲染方法、装置及电子设备 |
CN110288670B (zh) * | 2019-06-19 | 2023-06-23 | 杭州绝地科技股份有限公司 | 一种ui描边特效的高性能渲染方法 |
CN112274932B (zh) * | 2020-10-29 | 2024-02-27 | 完美世界(重庆)互动科技有限公司 | 游戏资源数据处理方法及装置、存储介质、计算机设备 |
CN112860063B (zh) * | 2021-02-02 | 2022-04-29 | 杭州电魂网络科技股份有限公司 | 交互水的实现方法、系统、电子装置和存储介质 |
CN112915536B (zh) * | 2021-04-02 | 2024-03-22 | 网易(杭州)网络有限公司 | 虚拟模型的渲染方法和装置 |
CN113457163B (zh) * | 2021-07-16 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 一种区域标示方法、装置、设备及存储介质 |
CN113935891B (zh) * | 2021-09-09 | 2022-08-26 | 完美世界(北京)软件科技发展有限公司 | 像素风格的场景渲染方法、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542609A (zh) * | 2011-12-16 | 2012-07-04 | 大连兆阳软件科技有限公司 | 一种地表修饰物的绘制优化方法 |
CN102915563A (zh) * | 2012-09-07 | 2013-02-06 | 深圳市旭东数字医学影像技术有限公司 | 三维网格模型透明绘制的方法及其系统 |
CN104463938A (zh) * | 2014-11-25 | 2015-03-25 | 福建天晴数码有限公司 | 三维虚拟试妆方法和装置 |
CN106780709A (zh) * | 2016-12-02 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种确定全局光照信息的方法及装置 |
CN106886353A (zh) * | 2017-02-23 | 2017-06-23 | 腾讯科技(深圳)有限公司 | 一种用户界面的显示处理方法及装置 |
CN106997610A (zh) * | 2016-01-26 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种图像渲染方法、装置及电子设备 |
CN107025680A (zh) * | 2016-01-29 | 2017-08-08 | 高德信息技术有限公司 | 一种地图渲染方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2905243C (en) * | 2012-03-14 | 2021-11-09 | Membrane Protective Technologies, Inc. | System and substances for cryopreservation of viable cells |
CN104240276A (zh) * | 2014-09-04 | 2014-12-24 | 无锡梵天信息技术股份有限公司 | 一种基于屏幕空间的次表面散射模拟人物真实皮肤的方法 |
-
2017
- 2017-11-30 CN CN201711239353.7A patent/CN108022285B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542609A (zh) * | 2011-12-16 | 2012-07-04 | 大连兆阳软件科技有限公司 | 一种地表修饰物的绘制优化方法 |
CN102915563A (zh) * | 2012-09-07 | 2013-02-06 | 深圳市旭东数字医学影像技术有限公司 | 三维网格模型透明绘制的方法及其系统 |
CN104463938A (zh) * | 2014-11-25 | 2015-03-25 | 福建天晴数码有限公司 | 三维虚拟试妆方法和装置 |
CN106997610A (zh) * | 2016-01-26 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种图像渲染方法、装置及电子设备 |
CN107025680A (zh) * | 2016-01-29 | 2017-08-08 | 高德信息技术有限公司 | 一种地图渲染方法及装置 |
CN106780709A (zh) * | 2016-12-02 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种确定全局光照信息的方法及装置 |
CN106886353A (zh) * | 2017-02-23 | 2017-06-23 | 腾讯科技(深圳)有限公司 | 一种用户界面的显示处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
Improved Transparency Blending Method for Silhouette-opaque and Lighting Effect;Luo Bei 等;《Journal of System Simulation》;20120131;第24卷(第1期);第117-119、131页 * |
游戏中实时渲染的研究与应用;周毓;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131215(第S2期);I138-1081 * |
游戏中的三维图形特效算法设计与实现;陈雪培;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170615(第6期);I138-1191 * |
Also Published As
Publication number | Publication date |
---|---|
CN108022285A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108022285B (zh) | 地图渲染方法及装置 | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
US9275493B2 (en) | Rendering vector maps in a geographic information system | |
US8531457B2 (en) | Apparatus and method for finding visible points in a cloud point | |
CN111899325B (zh) | 晶石模型的渲染方法、装置、电子设备及存储介质 | |
KR102637736B1 (ko) | 그래픽스 처리 방법 및 시스템 | |
US20070139408A1 (en) | Reflective image objects | |
JPH0740171B2 (ja) | コンピュータ画像発生装置においてピクセルの色輝度を決定する方法 | |
US20060214946A1 (en) | Hardware accelerated anti-aliased primitives using alpha gradients | |
Šoltészová et al. | Chromatic shadows for improved perception | |
AU2019226134B2 (en) | Environment map hole-filling | |
US11276150B2 (en) | Environment map generation and hole filling | |
CN101010701A (zh) | 使用明暗处理的直接体绘制 | |
CN109544674B (zh) | 一种体积光实现方法及装置 | |
CN108074285B (zh) | 体积云模拟方法和体积云模拟装置 | |
CN112734896A (zh) | 环境遮蔽渲染方法、装置、存储介质及电子设备 | |
US8248405B1 (en) | Image compositing with ray tracing | |
US11804008B2 (en) | Systems and methods of texture super sampling for low-rate shading | |
US6686915B2 (en) | Systems and methods for rendering visual effects that are a function of depth | |
KR100559127B1 (ko) | 화상처리장치 | |
US20180005432A1 (en) | Shading Using Multiple Texture Maps | |
JPH09128562A (ja) | 3次元形状表示方法 | |
KR100848687B1 (ko) | 3차원 그래픽 처리 장치 및 그것의 동작 방법 | |
US9514566B2 (en) | Image-generated system using beta distribution to provide accurate shadow mapping | |
US20050231533A1 (en) | Apparatus and method for performing divide by w operations in a graphics system |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20180511 Assignee: Hangzhou spoon Network Technology Co., Ltd Assignor: Hangzhou dianhun Network Technology Co., Ltd Contract record no.: X2021330000727 Denomination of invention: Map rendering method and device Granted publication date: 20210420 License type: Common License Record date: 20211109 |
|
EE01 | Entry into force of recordation of patent licensing contract |