Just curious; How do I place my webgl shaders, in an external file?
Currently I’m having;
<script id="shader-fs" type="x-shader/x-fragment">
#ifdef GL_ES
precision highp float;
#endif
void main(void)
{
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
</script>
<script id="shader-vs" type="x-shader/x-vertex">
attribute vec3 aVertexPosition;
uniform mat4 uMVMatrix;
uniform mat4 uPMatrix;
void main(void)
{
gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
}
</script>
In my html header, how do I link in this from an external file? – I tried the usual javascript approach;
<script type="text/javascript" src="webgl_shader.js"></script>
For external files, you need to stop using the script tag. I suggest using something like XMLHttpRequest. I would also suggest renaming your files, they are shaders not Javascript so use a different extension to avoid confusion. I use something like “shiny_surface.shader”.
This is what I do:
If you’re using a library like JQuery, they probably have a function similar to my loadFiles one.