CN109358852B - 一种使用shader实现车载GUI换肤的方法 - Google Patents

一种使用shader实现车载GUI换肤的方法 Download PDF

Info

Publication number
CN109358852B
CN109358852B CN201811007831.6A CN201811007831A CN109358852B CN 109358852 B CN109358852 B CN 109358852B CN 201811007831 A CN201811007831 A CN 201811007831A CN 109358852 B CN109358852 B CN 109358852B
Authority
CN
China
Prior art keywords
color
shader
shaders
graph
gui
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
Application number
CN201811007831.6A
Other languages
English (en)
Other versions
CN109358852A (zh
Inventor
李志鸿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou Desay SV Automotive Co Ltd
Original Assignee
Huizhou Desay SV Automotive Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huizhou Desay SV Automotive Co Ltd filed Critical Huizhou Desay SV Automotive Co Ltd
Priority to CN201811007831.6A priority Critical patent/CN109358852B/zh
Publication of CN109358852A publication Critical patent/CN109358852A/zh
Application granted granted Critical
Publication of CN109358852B publication Critical patent/CN109358852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及图像处理技术领域,具体公开了一种使用shader实现车载GUI换肤的方法,包括以下步骤:采用Opengl着色语言GLSL编写着色器shader,使得一个着色器shader并行运行于GPU上,实现GUI颜色换肤;在Opengl ES中创建两种着色器:顶点着色器vertex shaders和片元着色器fragment shaders,本发明采用GPU处理数据,基于Opengl ES完成任意图形任意颜色的皮肤实时换肤的效果,提高对所有像素、顶点、纹理的位置、色调、饱和度、明度、对比度实时绘制图像的速度,大幅度提高转化效率,达到投入小修改少的要求。

Description

一种使用shader实现车载GUI换肤的方法
技术领域
本发明涉及图像处理技术领域,尤其涉及一种使用shader实现车载GUI换肤的方法。
背景技术
现有的车载中控设备,除了中央处理器(CPU)性能不断提高之外,大多也相应的配备了专业的图形处理器(GPU)。图形处理器(GPU)和中央处理器(CPU)相比:CPU需要很强的通用性来处理各种不同的数据类型,同时又有逻辑判断,会因此引入大量的分支跳转和中断的处理,这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
目前市面上,出现了GUI换肤新需求,即显示的部分图片颜色变化,针对这一需求,虽然可以使用C++代码编写,但是需要循环遍历每个像素点,提取 2D 图像上每个像素点的颜色值并做对应变化,同时是在CPU上运行的,势必会抢占资源,且采用这种方式的话,GUI代码就需要大的修改,需要浪费大量的人力来对代码进行重新编写。
发明内容
针对上述技术问题,本发明提供了一种采用GPU处理数据,基于Opengl ES完成任意图形任意颜色的皮肤实时换肤的效果,提高对所有像素、顶点、纹理的位置、色调、饱和度、明度、对比度实时绘制图像的速度,大幅度提高转化效率,达到投入小修改少要求的使用shader实现车载GUI换肤的方法。
为了解决上述技术问题,本发明提供的具体方案如下:一种使用shader实现车载GUI换肤的方法,包括以下步骤:采用Opengl着色语言GLSL编写着色器shader,使得一个着色器shader并行运行于GPU上,实现GUI颜色换肤;
在Opengl ES中创建两种着色器:顶点着色器vertex shaders和片元着色器fragment shaders。
优选的,所述GUI颜色换肤具体为:对UI上任意图形进行任意颜色变化设置,满足不同的换肤需求。
优选的,所述UI上图形的图标数据来自图片资源。
优选的,所述UI上图形的图像格式为png格式,具有压缩比高,生成文件体积小的优点。
优选的,所述对UI上任意图形进行任意颜色变化设置具体包括以下过程:所述顶点着色器vertex shaders设置图形顶点的位置,并且把位置和纹理坐标参数传递到片元着色器fragment shaders,片元着色器fragment shaders对图形的每一个像素进行计算,得出每个像素的最终颜色。
优选的,所述片元着色器fragment shaders在对像素进行计算时,通过RGB的某一通道,对实际图形进行拾取。
优选的,所述片元着色器,提供被系统自动调用的主函数接口main,设定纹理采样坐标vTexCoord,设定顶点着色器中默认精度为precision mediump float,设定背景纹理单元SliderTextureBg,设定Mask纹理单元SliderMaskedTexture,使背景图像上传到SliderTextureBg纹理单元,使蒙版图像上传到SliderMaskedTexture纹理单元,通过纹理采样坐标vTexCoord,对SliderTextureBg纹理单元和SliderMaskedTexture纹理单元分别采样,得到两个4维颜色向量color和maskcolor,所述4维颜色向量color,取蒙版RGB的某一通道截取出图形形状,所述4维颜色向量maskcolor,取其RGB的某一通道用于填充任意颜色FillColor。
优选的,所述图形最后的颜色是对蒙版形状和填充颜色的叠加混合,得到一个RGB像素输出显示。
与现有技术相比,本发明的有益效果在于:本发明采用GPU处理数据,基于OpenglES完成任意图形任意颜色的皮肤实时换肤的效果,提高对所有像素、顶点、纹理的位置、色调、饱和度、明度、对比度实时绘制图像的速度,大幅度提高转化效率,达到投入小修改少的要求。
具体实施方式
为了详细说明本发明的技术方案,下面将对本发明实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种使用shader实现车载GUI换肤的方法,具体包括以下步骤:采用Opengl着色语言GLSL编写着色器shader,使得一个着色器shader并行运行于GPU上,实现GUI颜色换肤,提高任意图形任意颜色实时切换的速度和效率,GUI颜色换肤具体为,对UI上任意图形进行任意颜色变化设置,满足不同的换肤需求;在Opengl ES中创建两种着色器:顶点着色器vertex shaders和片元着色器fragment shaders。
其中,UI上图形的图标数据来自图片资源,UI上图形的图像格式为png格式,png格式具有压缩比高,生成文件体积小的优点。
Opengl ES(Opengl for Embedded Systems)是Opengl三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。
着色器(shader)是用着色语言写的基于C语言的程序。在Opengl ES中需要创建两种着色器:顶点着色器vertex shaders和片元着色器fragment shaders。这两种着色器是一个完整程序的两半,不能仅仅创建其中任何一个,想创建一个完整的着色程序,两个都是必须存在。顶点着色器vertex shaders定义了在2D或者3D场景中几何图形是如何处理的,一个顶点指的是2D或者3D空间中的一个点,在图像处理中,一般有4个顶点:每一个顶点代表图像的一个角,顶点着色器vertex shaders设置顶点的位置,并且把位置和纹理坐标等参数发送到片元着色器,使用片元着色器在对象或者图片的每一个像素上进行计算,最终计算出每个像素的最终颜色。
本实施例中,对UI上任意图形进行任意颜色变化设置具体包括以下过程:顶点着色器vertex shaders设置图形顶点的位置,并且把位置和纹理坐标参数等传递到片元着色器fragment shaders,片元着色器fragment shaders对图形的每一个像素进行计算,得出每个像素的最终颜色,片元着色器fragment shaders在对像素进行计算时,通过RGB的某一通道,对实际图形进行拾取。
本实施例中,通过RGB的R通道,实现对一个图形的实际图形的拾取,具体如下:
void main()
{
precision lowp float;
vec4 color = texture2D(SliderTextureBg, vTexCoord);
vec4 maskcolor = texture2D(SliderMaskedTexture,vTexCoord);
color = color*(1.0-maskcolor.r) + FillColor*maskcolor.r;
gl_FragColor.rgba = color.rgba;
}
具体的,片元着色器提供被系统自动调用的主函数接口main;
设定纹理采样坐标vTexCoord;
设定顶点着色器中默认精度为precision mediump float;
设定背景纹理单元SliderTextureBg;
设定Mask纹理单元SliderMaskedTexture;
使背景图像上传到SliderTextureBg纹理单元;
使蒙版图像上传到SliderMaskedTexture纹理单元;
通过纹理采样坐标vTexCoord,对SliderTextureBg纹理单元和SliderMaskedTexture纹理单元分别采样,得到两个4维颜色向量color和maskcolor;
所述4维颜色向量color,取蒙版R一通道截取出图形形状;
所述4维颜色向量maskcolor,取R通道用于填充任意颜色FillColor;
图形最后的颜色是对蒙版形状和填充颜色的叠加混合,得到一个RGB像素输出显示。
上面对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (4)

1.一种使用shader实现车载GUI换肤的方法,其特征在于,包括以下步骤:采用Opengl着色语言GLSL编写着色器shader,使得一个着色器shader并行运行于GPU上,实现GUI颜色换肤;
在Opengl ES中创建两种着色器:顶点着色器vertex shaders和片元着色器fragmentshaders;所述GUI颜色换肤过程具体为:对UI上任意图形进行颜色变化设置;
所述对UI上任意图形进行任意颜色变化设置具体包括以下过程:所述顶点着色器vertex shaders设置图形顶点的位置,并且把位置和纹理坐标参数传递到片元着色器fragment shaders,片元着色器fragment shaders对图形的每一个像素进行计算,得出每个像素的最终颜色;
所述片元着色器fragment shaders在对像素进行计算时,通过RGB的某一通道,对实际图形进行拾取;
所述片元着色器,提供被系统自动调用的主函数接口main,设定纹理采样坐标vTexCoord,设定顶点着色器中默认精度为precision mediump float,设定背景纹理单元SliderTextureBg,设定Mask纹理单元SliderMaskedTexture,使背景图像上传到SliderTextureBg纹理单元,使蒙版图像上传到SliderMaskedTexture纹理单元,通过纹理采样坐标vTexCoord,对SliderTextureBg纹理单元和SliderMaskedTexture纹理单元分别采样,得到两个4维颜色向量color和maskcolor,所述4维颜色向量color,取蒙版RGB的某一通道截取出图形形状,所述4维颜色向量maskcolor,取其RGB的某一通道用于填充任意颜色FillColor。
2.根据权利要求1所述的使用shader实现车载GUI换肤的方法,其特征在于:所述UI上图形的图标数据来自图片资源。
3.根据权利要求1所述的使用shader实现车载GUI换肤的方法,其特征在于:所述UI上图形的图像格式为png格式。
4.根据权利要求1所述的使用shader实现车载GUI换肤的方法,其特征在于:所述图形最后的颜色是对蒙版形状和填充颜色的叠加混合,得到一个RGB像素输出显示。
CN201811007831.6A 2018-08-31 2018-08-31 一种使用shader实现车载GUI换肤的方法 Active CN109358852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811007831.6A CN109358852B (zh) 2018-08-31 2018-08-31 一种使用shader实现车载GUI换肤的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811007831.6A CN109358852B (zh) 2018-08-31 2018-08-31 一种使用shader实现车载GUI换肤的方法

Publications (2)

Publication Number Publication Date
CN109358852A CN109358852A (zh) 2019-02-19
CN109358852B true CN109358852B (zh) 2021-08-20

Family

ID=65350329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811007831.6A Active CN109358852B (zh) 2018-08-31 2018-08-31 一种使用shader实现车载GUI换肤的方法

Country Status (1)

Country Link
CN (1) CN109358852B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109729417B (zh) * 2019-03-28 2019-09-10 深圳市酷开网络科技有限公司 一种视频透明播放处理方法、智能电视及存储介质
CN110554900B (zh) * 2019-09-02 2022-06-03 上海沣沅星科技有限公司 基于gpu呈现人机界面效果的方法、系统、设备及介质
CN111105477B (zh) * 2019-11-25 2023-04-28 航天科技控股集团股份有限公司 全液晶仪表2d虚拟指针绘制方法
CN113391740A (zh) * 2021-06-03 2021-09-14 惠州市德赛西威汽车电子股份有限公司 一种悬浮式列表的焦点弧形效果展现方法
CN115082356B (zh) * 2022-07-20 2022-12-09 北京智汇云舟科技有限公司 基于shader的视频流图像校正方法、装置和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169596B (zh) * 2011-03-09 2013-08-14 深圳市酷开网络科技有限公司 一种在嵌入式设备上实现3d渲染的方法及装置
CN104869324A (zh) * 2015-05-18 2015-08-26 成都平行视野科技有限公司 基于智能设备的图像软件的图像处理方法和图像处理系统
JP6223916B2 (ja) * 2014-06-25 2017-11-01 株式会社東芝 情報処理装置、方法及びプログラム
CN108154539A (zh) * 2017-12-18 2018-06-12 北京酷我科技有限公司 一种基于Opengl ES的颜色空间数据转化算法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169596B (zh) * 2011-03-09 2013-08-14 深圳市酷开网络科技有限公司 一种在嵌入式设备上实现3d渲染的方法及装置
JP6223916B2 (ja) * 2014-06-25 2017-11-01 株式会社東芝 情報処理装置、方法及びプログラム
CN104869324A (zh) * 2015-05-18 2015-08-26 成都平行视野科技有限公司 基于智能设备的图像软件的图像处理方法和图像处理系统
CN108154539A (zh) * 2017-12-18 2018-06-12 北京酷我科技有限公司 一种基于Opengl ES的颜色空间数据转化算法

Also Published As

Publication number Publication date
CN109358852A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN109358852B (zh) 一种使用shader实现车载GUI换肤的方法
EP3673463B1 (en) Rendering an image from computer graphics using two rendering computing devices
US10839591B2 (en) Stereoscopic rendering using raymarching and a virtual view broadcaster for such rendering
CN108648269B (zh) 三维建筑物模型的单体化方法和系统
US11055830B2 (en) Rendering process and system
CN107358643B (zh) 图像处理方法、装置、电子设备及存储介质
US7081898B2 (en) Image processing
CN106408635B (zh) 图形处理系统及其操作方法、以及计算机可读存储介质
US10217259B2 (en) Method of and apparatus for graphics processing
WO2023207001A1 (zh) 图像渲染方法、装置、电子设备及存储介质
CN109461197B (zh) 一种基于球面uv和重投影的云实时绘制优化方法
CN107038729B (zh) 一种基于OpenGL-ES的数字仪表盘绘制方法
US20150015574A1 (en) System, method, and computer program product for optimizing a three-dimensional texture workflow
CN108154539A (zh) 一种基于Opengl ES的颜色空间数据转化算法
GB2390950A (en) Video wipe generation based on the distance of a display position between a wipe origin and a wipe destination
CN104318509B (zh) 一种基于gpu的大批量目标高速标绘方法
CN107292946B (zh) 一种基于brdf函数线性过滤的图像渲染方法
WO2023051590A1 (zh) 一种渲染格式选择方法及其相关设备
CN111739074A (zh) 一种场景多点光源渲染方法及装置
US10652514B2 (en) Rendering 360 depth content
KR20240093463A (ko) 메시릿 셰이딩 아틀라스
CN107330965B (zh) 一种利用局部保守光栅化方法实现硬阴影反走样的方法
CN112750191B (zh) 一种实时渲染中软阴影的制作方法
CN113269819B (zh) 一种面向视频投射场景的遮挡物动态隐藏方法及装置
CN114170368B (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