Last active
March 31, 2018 13:14
-
-
Save diska/481c52cc8124f976cd486b2f712e6723 to your computer and use it in GitHub Desktop.
多分可読でポリゴン描く30行以下のWebGLコード。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <canvas id="CNVS" width="512px" height="512px"></canvas> | |
| <script> | |
| const vsrc="attribute vec4 p;void main(){gl_Position=vec4(p.xy*.9,0.,1.);}"; | |
| const fsrc="void main(){gl_FragColor=vec4(1);}"; | |
| const gl=document.getElementById("CNVS").getContext("webgl"); | |
| enableStaticAttr2f(gl,0, new Float32Array([-1,-1,-1,1,1,-1,1,1])); | |
| var prg,vs,fs; | |
| vs=gl.createShader(gl.VERTEX_SHADER); setSource(vs,vsrc); log(compile(vs)); | |
| fs=gl.createShader(gl.FRAGMENT_SHADER); setSource(fs,fsrc); log(compile(fs)); | |
| prg=gl.createProgram(); attach(prg,vs); attach(prg,fs); log(link(prg)); | |
| gl.useProgram(prg); | |
| gl.clearColor(0,.5,0,1); gl.clear(gl.COLOR_BUFFER_BIT); | |
| gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); | |
| function attach(p, s){gl.attachShader(p,s);} | |
| function setSource(s,src){gl.shaderSource(s,src);} | |
| function compile(s){gl.compileShader(s);return gl.getShaderInfoLog(s);} | |
| function link(p){gl.linkProgram(p);return gl.getProgramInfoLog(p);} | |
| function enableStaticAttr2f(gl, attr, data){ | |
| var buf=gl.createBuffer(); | |
| gl.bindBuffer(gl.ARRAY_BUFFER,buf); | |
| gl.enableVertexAttribArray(attr); | |
| gl.vertexAttribPointer(attr, 2, gl.FLOAT, false,0,0); | |
| gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW) | |
| } | |
| function log(str){console.log(str);} | |
| </script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment