openGLES(三)
着色器语言
着色器语言基于c/c++语言,但是还是有区别的,它不是面向对象
数据类型概述
内建的数据类型:浮点型(float)、布尔型(bool)、整形(int),矩阵(matrix)以及向量(vec2,vec3),类型可以分为标量、向量、矩阵、采样器、结构体以及数组等几类
标量
标量成为无向量,只有大小,无方向
布尔类型bool
整形int 参数可以是十进制、八进制、十六进制
float类型
向量
有大小,有方向
分类也分为bool/int/float类型
vec2 vec3 vec4 浮点型的向量
ivec2 ivec3 ivec4 整形的向量
bvec2 bvec3 bvec4 布尔向量
变量赋值:
通过.进行赋值 ,也可以通过下标进行赋值
矩阵
mat2 mat3 mat4可以通过下标进行值的设置和获取
采样器
主要来执行纹理操作时的采样操作。一个采样器代表一个贴图
sampler2D 访问二维纹理
sampler3D 访问三维纹理
samplerCube 立 方贴图纹理
机构体
struct info{
vec3 color;
vec3 position;
}
info s;
数组
vec3 positon[20];
空类型
void main(){}
数据类型的基本操作
int a,b;
a=1; b=3;
int c = a+b;向量的书写
float a =12.3;
float b =11.3;
vec2 va = vec2(2.3,3.2);
限定符
attribute
attribute:属性限定符,接收渲染管传输的属性。用于传输顶点、纹理、颜色、法向量等。它的值通过java传进渲染管,管线进行基本处理之后在传递着色器。数据中有多少个顶点,就知心多小次着色器。,每次只传递一个参数就会调用一次,每次完成一个顶点的数据。
顶点着色器会一个点一个点的处理,那么如果点非常多的时候,这个操作是很浪费时间的,现在的GPU都不是使用一个着色器硬件,数量是很多的,所以速度会很大的提升。
uniform限定符
一致变量的限定符,就所有的都使用同一个量
传入值的时候,可以传入浮点、整数、矩阵
varying
需要加工顶点着色器中的参数传入到片段着色器就要使用varying,他会产生一个渐变的效果。
流程管理
if-else条件语句
while/do-while
for循环
函数
in:表示传入数据
out:传出数据
inout:具有输入和输出功能
片元着色器精度
lowp mediump highp
precision 精度 类型
内建变量:输出内建变量,输入内建变量,在着色器中的一般为输出变量
openGLES(三)的更多相关文章
- OpenGLES入门笔记三
在入门笔记一中比较详细的介绍了顶点着色器和片面着色器. 在入门笔记二中讲解了简单的创建OpenGL场景流程的实现,但是如果在场景中渲染任何一种几何图形,还是需要入门笔记一中的知识:Vertex Sha ...
- OpenGLES入门笔记一
学习地址:http://www.raywenderlich.com/3664/opengl-tutorial-for-ios-opengl-es-2-0 中文翻译:http://www.cnblogs ...
- [ios][opengles]GLKit如何搭一个app的框架
一个外文对GLKit的讲解: Beginning OpenGL ES 2.0 with GLKit Part 1 英文原文链接:http://www.raywenderlich.com/5223 ...
- 【转】iOS-Core-Animation-Advanced-Techniques(三)
原文: http://www.cocoachina.com/ios/20150105/10827.html 专用图层 复杂的组织都是专门化的--Catharine R. Stimpson 到目前为止, ...
- OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的!
OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的! 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...
- Android OpenGL教程-第三课【转】
第三课 给多边形上色: 作为第二课的扩展,我将叫你如何使用颜色.你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色. 这次增加的代码不算多. 增加一个color的buffer ...
- 【转】玩转Android Camera开发(三):国内首发---使用GLSurfaceView预览Camera 基础拍照demo
http://blog.csdn.net/yanzi1225627/article/details/33339965 GLSurfaceView是OpenGL中的一个类,也是可以预览Camera的,而 ...
- iOS实现图形编程可以使用三种API(UIKIT、Core Graphics、OpenGL ES及GLKit)
这些api包含的绘制操作都在一个图形环境中进行绘制.一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境.offscreen 位图环境和PDF图形环境,用来在屏幕表面.一个位图或一 ...
- 玩转Android Camera开发(三):国内首发---使用GLSurfaceView预览Camera 基础拍照demo
GLSurfaceView是OpenGL中的一个类,也是能够预览Camera的,并且在预览Camera上有其独到之处. 独到之处在哪?当使用Surfaceview无能为力.痛不欲生时就仅仅有使用GLS ...
随机推荐
- axure母版使用实例之百度门户
1.首先构建页面基本结构 2.新建母板 3.将母板应用于各个页面 4.在母板中隐藏聚焦背景及下拉二级菜单 5.在母板中添加事件:打开相应界面.显示/隐藏二级菜单 5.设置页面加载效果:给点击的一级菜单 ...
- asp.net MVC4.0中几种控制器的区别
空的MVC控制器MVC控制器的读/写操作和视图,使用实体框架MVC控制器带空的读/写操作空API控制器API控制器的读/写操作和视图,使用实体框架API控制器带空的读/写操作
- linux下pptp配置步骤
最近买了个VPS,于是随手搭了个VPN玩,ubuntu安装pptp太蠢了,直接apt-install pptp就行了 1./etc/pptpd.conf 注销最后两行,就是设置IP转发的范围,给那么几 ...
- 学习《Python金融实战》中文版PDF+英文版PDF+源代码
学习python处理金融数据,建议学习<Python金融实战>,比较实用,只不过Yahoo财经的API改了,书里的方法不再有效要改一改,还有就是会有一些代码缩进小问题,总体上对金融分析很实 ...
- 紫书 习题 10-25 UVa 1575 (有重复元素的全排列+暴搜)
我一开始以为有什么很牛逼的方法来做,然后一直没有思路 后来看了https://blog.csdn.net/zju2016/article/details/78562932的博客 竟然是暴搜?????? ...
- 洛谷 P2690 接苹果
P2690 接苹果 题目背景 USACO 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为1和2), 每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从 ...
- <LeetCode OJ> 20. Valid Parentheses
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- RvmTranslator6.1 - Attribute List
RvmTranslator6.1 - Attribute List eryar@163.com 1. Introduction RvmTranslator can translate the RVM ...
- 【HDU 4763】Theme Section(KMP)
这题数据水的一B.直接暴力都能够过. 比赛的时候暴力过的.回头依照正法做了一发. 匹配的时候 失配函数 事实上就是前缀 后缀的匹配长度,之后就是乱搞了. KMP的题可能不会非常直接的出,可是KMP的思 ...
- Android学习笔记进阶20 之得到图片的缩略图
<1>简介 之前往往是通过Bitmap.Drawable和Canvas配合完成,需要写一系列繁杂的逻辑去缩小原有图片,从而得到缩略图. 现在我给大家介绍一种比较简单的方法:(网上有) 在A ...