Opengl编程指南读书笔记-Opengl着色器
来源:互联网 发布:萤火虫软件 编辑:程序博客网 时间:2024/05/16 19:47
顶点着色器:
#version 430 core
layout(location = 0) in vec4 vPosition;
void main()
{
gl_Position = vPosition;
}
解释:
#version 430 core 指定了我们所用的OpenGL着色语言的版本。这里的“430"表示我们准备使用OpenGL4.3对应的GLSL语言。这里的命名规范是基于OpenGL3.3版本的,在那之前的OpenGL版本中,版本号所用的数字是完全不一样的。这里的core表示我们将使用OpenGL核心模式。每个着色器的第一行都应该设置”#version",否则系统会假设使用“110”版本,但是这与OpenGL核心模式并不兼容。
layout(location = 0) in vec4 vPosition;其中vPosition就是变量的名称,我们使用一个字符v作为这个顶点属性名称的前缀。这个变量所保存的是顶点的位置信息。
下一个字段是vec4,也就是vPosition类型。在这里他是一个GLSL的思维浮点数向量。vec4的默认值为(0,0,0,1),因此当仅指定了x和y坐标的时候,其他两个坐标值(z和w)将自动 指定为0和1.而in指定了数据进入着色器的流向,表示输入变量,与out相对。layout(location = 0),它也叫做布局限定符,目的是为变量提供元数据。我们可以使用布局限定符来设置很多不同的属性,其中有些是与不同的着色阶段相关的。
OpenGL的所有着色器,无论是处于哪个着色阶段,都会有一个main()函数。对于这个着色器而言,它所实现的就是将输入的顶点位置复制到顶点着色器的指定输出位置gl_Position中。
片元着色器
#version 430 core
out vec4 fColor
void main()
{
fColor = vec4(0.0,0.0,1.0,1.0);
}
解释:
out vec4 fColor:声明的变量名为fColor.使用out限定符,着色器会把fColor对应的数值输出,而这也是片元所对应的颜色值。
在这里每个片元都会设置一个四维的向量。OpenGL中的颜色是通过RGBA颜色空间来表示的,其中每个颜色分量(R表示红色,G表示绿色,B表示蓝色)的范围都是[0,1].其中最后一个表示alpha值,专用于度量透明度。这里设置为1.0表示片元的颜色是完全不透明的。
- Opengl编程指南读书笔记-Opengl着色器
- 《OpenGL编程指南》读书笔记2—第2章 着色器基础
- OpenGL编程指南读书笔记-第一章
- opengl编程glsl-着色器
- opengl es 2.0 读书笔记2-OpenGL ES 着色器语言
- 【OpenGL】OpenGL3.0编程指南——着色语言
- opengl着色器编程的debug
- opengl编程一(使用着色器)
- OpenGL深入探索——《OpenGL编程指南(原书第8版)》——计算着色器
- 《OpenGL编程指南(原书第8版)》——计算着色器
- OpenGL 着色器语言
- OpenGL着色器语言
- opengl顶点着色器
- OpenGL ES 着色器
- OpenGL着色器介绍
- 【OpenGL】着色器 Shader
- OpenGL--着色器
- OpenGL--着色器2
- 对象的创建
- 百度前端笔试题 css3画三角形
- Linux网络编程之简易的点对点聊天程序程序
- poj 3126 Prime Path(简单的DFS搜索)
- Android 自定义Camera(一)
- Opengl编程指南读书笔记-Opengl着色器
- python 正则表达式
- 利用Handler在主线程与子线程之间互发消息
- MySQL快速入门08----三大范式
- poj3480 John (nim博弈变形--SJ定理)
- win7频繁提示资源管理器已停止工作解决办法
- jQuery编辑Select标签 增加修改删除 选
- 封装、继承和多态是面向对象的三大特征。
- hdu 1029 Ignatius and the Princess IV(主元素问题):