OpenGL Shading Language(GLSL)语法一览

2018-05-09 17:33:49 浏览数 (1)

基本数据类型

学过Java的都知道,Java中有九种基本的数据类型,比如int、double、float等等。在glsl中也有一些基本的数据类型,分别为:

数据类型

解释说明

void

no function return value or empty parameter list

bool

Boolean

int

signed integer

float

floating scalar

vec2, vec3, vec4

n-component floating point vector

bvec2, bvec3, bvec4

Boolean vector

ivec2, ivec3, ivec4

signed integer vector

mat2, mat3, mat4

2x2, 3x3, 4x4 float matrix

sampler2D

access a 2D texture

samplerCube

access cube mapped texture

很简单的英文解释,不翻译了。

变量修饰符

变量是需要修饰符修饰的,比如在Java中表示一个公开的静态变量,其中的public和static就是修饰符。

代码语言:javascript复制
public static mData;

修饰符--

解释说明

none

(Default) local read/write memory, or input parameter

const

Compile-time constant, or read-only function parameter

attribute

Linkage between a vertex shader and OpenGL ES for per-vertex data

uniform

Value does not change across the primitive being processed, uniforms form the linkage between a shader, OpenGL ES, and the application

varying

Linkage between a vertex shader and fragment shader for interpolated data

Uniform

变量全局可以访问,不可变。

Varying

变量全局可以访问,可变。同一个varying变量。 在Vertex Shader和Fragment Shader中值是一样的,并且值是interpolated的。

变量的精度

我们知道Java中float和double的精度不同,在glsl语言中,变量也是有精度的。

类型

精度

highp

高精度

mediump

中等精度

lowp

低精度

语法详解

GLSL简明语法

GLSL语法详解

请参考:The OpenGL ES Shading Language

0 人点赞