Shader Coding - Best Practices: Difference between revisions

Jump to navigation Jump to search
m (→‎Vertex Shaders: removing as per i4dnf's expert advice)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{WIP|Will be based on: http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35934.html}}
{{WIP|Will be based on: http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg35934.html}}
{{Rendering}}
== File Header ==
{{Note|It's a good idea to add a header to each shader detailing:
* filename
* purpose
* license
* author
* rendering pipeline (rembrandt/default)
* description
<syntaxhighlight lang="glsl">
// -*- mode: C; -*-
// urban.frag
// Licence: GPL v2
// Author: Frederic Bouvier.
//  Adapted from the paper by F. Policarpo et al. : Real-time Relief Mapping on Arbitrary Polygonal Surfaces
//  Adapted from the paper and sources by M. Drobot in GPU Pro : Quadtree Displacement Mapping with Height Blending
</syntaxhighlight>
}}


== Supported GLSL Versions ==
== Supported GLSL Versions ==
Line 6: Line 25:
<syntaxhighlight lang="glsl">
<syntaxhighlight lang="glsl">
#version 120
#version 120
</syntaxhighlight>
}}
== Enabling Extensions ==
{{Note|:To enable vendor specific extensions, use the '''#extension''' pragma at the top of the file, for example:
<syntaxhighlight lang="glsl">
#extension GL_ATI_shader_texture_lod : enable
#extension GL_ARB_shader_texture_lod : enable
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 22: Line 50:
== Fragment Shaders ==
== Fragment Shaders ==


{{Note|To check if your shader is working, add this as the last line, it should turn all pixels black:
{{Note|To check if your shader is working, use a trivial  shader like this one or just add the last line to the end of the shader, it should turn all pixels black:
<syntaxhighlight lang="glsl">
<syntaxhighlight lang="glsl">
#version 120
void main() {
// turn all pixels into  black
gl_FragColor = vec4 (0.0,0.0,0.0,1.0);
gl_FragColor = vec4 (0.0,0.0,0.0,1.0);
}
</syntaxhighlight>
</syntaxhighlight>
}}
}}
Line 37: Line 69:
</syntaxhighlight>
</syntaxhighlight>
}}
}}
[[Category:Shader development]]
574

edits

Navigation menu