Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

OpenGL Programming/Advanced/GLSL

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Variables Variables can be passed into GLSL like position and color, but other custom variables are available. Those that change within a glBegin/glEnd pair are called "attributes"; those that are not are called "uniform" . After creating a GLSL program, one gets handles to the variables using GLint glGetAttribLocation(GLuint program, char *name) or GLint glGetUniformLocation(GLuint program, char *name) The result of this call is then used to set the value of the corresponding variable. Depending on the number of degrees of freedom, one uses void glUniform1f(GLint location, GLfloat value) void glUniform2f(GLint location, GLfloat value1, GLfloat value2) void glUniform3f(GLint location, GLfloat value1, GLfloat value2, GLfloat value3) void glUniform4f(GLint location, GLfloat value1, GLfloat value2, GLfloat value3, GLfloat value4) or alternately, GLint glUniform{1,2,3,4}fv(GLint location, GLsizei count, GLfloat *v) For example, in GLSL you might have uniform float time; void main(void) { ... then in C/C++ you could say: GLint time = glGetUniformLocation(myProgram, "time" ... glUniform1f(time, 10.3); External links Lighthouse 3D on GLSL