android OpenGL ES开发之shader

shader是OpenGL ES中重要内容。

简介

shader程序是运行在GPU上的程序,是用GLSL语言编写的程序。

功能

使用OpenGL的着色器,可以丰富渲染效果,能实现的功能包括:

(1) 更加真实的材质-金属、石头、木头等

(2) 更加真实的光照效果-区域光照、柔和阴影等

(3) 自然现象-火、烟、水、云等

(4) 高级渲染效果-全局光照、光线追踪器等

(5) 非照片级材质-绘画效果、笔写效果等

(6) 纹理内存新的一些用途-向量的存储、模糊值、多项式系数等

(7) 过程纹理-动态生成的2D、3D纹理等

(8) 图像处理-卷积、复杂混合、模糊掩盖锐化处理(unsharp masking)等

(9) 动画效果-关键帧插值、粒子系统、程序定义的运动等

(10) 自定义的抗锯齿方法

(11) 一般的计算-排序、数学建模、流体动力学等

分类

  • 顶点着色器 顶点可以理解为组成物体的每一个点。

    对于发送给GPU的每一个Vertex(顶点),都要执行一次Vertex Shader。 输入数据有: Attributes:使用顶点数组封装每个顶点的数据,一般用于每个顶点都各不相同的变量,如顶点位置、颜色等。

    输出数据: 在顶点着色器阶段至少应输出位置信息-即内建变量:gl_Position,是每个点固有的Varying,表示点的空间位置。其它两个可选的变量为:gl_FrontFacing 和 gl_PointSize。

  • 片段着色器 Fragment shader着色器计算每个像素的颜色和属性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-23 06:17:35

android OpenGL ES开发之shader的相关文章

Android OpenGL ES零基础系列(一):理解GLSurfaceView,GLSurfaceView.Render的基本用法

转载请注明出处 前言 OpenGL ES是OpenGL的一个子集,是针对手机.PDA和游戏主机等嵌入式设备而设计的.该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准. 因此OpenGL ES作为第三方库被应用在android中. 到目前为止,OpenGL ES已经发展有了3个版本,OpenGL ES 1.0 , OpenGL ES 2.0 , OpenGL ES 3.0.其中OpenGL ES 1.0 是以OpenGL 1.3

[工作记录] Android OpenGL ES: non-square texture - continue

previous: [工作记录] Android OpenGL ES 2.0: square texture not supported on some device recently I found that it is the mipmap of a non-square texture that cause the black texture problem: http://stackoverflow.com/questions/5052762/using-mipmaps-results-

Android OpenGL ES 画球体

最近因为兴趣所向,开始学习OpenGL绘图.本文以"画球体"为点,小结一下最近所学. > 初识OpenGL ES 接触OpenGL是从Android开始的.众所周知,Android View 是线程不安全的,于是只允许在主线程中对View进行操作.然而假如我们需要实现复杂的界面,特别是开发游戏,在主线程中画大量图像,会耗费比较长的时间,使得主线程没能及时响应用户输入,甚至出现ANR.于是Android提供了一个 SurfaceView类,通过双缓冲机制(两块画布?三块画布?),允

Android OpenGL ES

1.Android OpenGL ES 简明开发教程3D 坐标变换: http://www.linuxidc.com/Linux/2011-10/45756p4.htm

Android OpenGL ES 开发教程 从入门到精通

From:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ES 简明开发教程一:概述 Android OpenGL ES 简明开发教程二:构造OpenGL ES View Android OpenGL ES 简明开发教程三:3D绘图基本概念 Android OpenGL ES 简明开发教程四:3D 坐标变换 Android OpenGL ES 简明开发教程五

android控件开发之ListView

android控件开发之ListView 本文主要讲述安卓开发中的ListView控件的使用方法 java代码: package com.example.listview; import java.util.ArrayList; import java.util.HashMap; import android.app.ListActivity; import android.os.Bundle; import android.view.Menu; import android.view.View

[工作记录] Android OpenGL ES 2.0: square texture not supported on some device

npot texture: non-power-of-two texture.rectangle texture: non-square (height != wdith) 在测试Samsumg Galaxy S4的时候, 发现rectangle texture支持不好, 虽然创建成功, 但是绘制有问题. 不同的模块出现类似的情况: 纹理采样出的颜色是(0,0,0,1). 在排除了所有可能的runtime问题以后, 尝试性改了纹理格式无果, 又尝试性的改了下尺寸, 竟然好了. 我擦... 而Ga

[转]Android OpenGL ES 开发教程 从入门到精通

本文转自:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ES 简明开发教程一:概述 Android OpenGL ES 简明开发教程二:构造OpenGL ES View Android OpenGL ES 简明开发教程三:3D绘图基本概念 Android OpenGL ES 简明开发教程四:3D 坐标变换 Android OpenGL ES 简明开发教程五

android控件开发之progress

android控件开发之progress 本博文主要讲述的是android开发中的progress进度条的使用方法,代码如下: MainActivity.java: package com.example.progress; import android.os.Bundle; import android.R.integer; import android.app.Activity; import android.view.Menu; import android.view.View; impo