Skip to content

Instantly share code, notes, and snippets.

@cx20
Last active August 29, 2015 14:13
Show Gist options
  • Save cx20/0f452b1badcf7344f9f1 to your computer and use it in GitHub Desktop.
Save cx20/0f452b1badcf7344f9f1 to your computer and use it in GitHub Desktop.
[忙しい人向け] 30行から始めるWebGL ref: http://qiita.com/cx20/items/0597cdbccdd370e05956
var c, gl;
var v = "attribute vec3 position; void main() { gl_Position = vec4(position, 1.0); }";
var f = "precision mediump float; void main() { gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0); }";
function initWebGL() {
c = document.getElementById("c");
gl = c.getContext("experimental-webgl");
}
function initShaders() {
var p = gl.createProgram();
var vs = gl.createShader(gl.VERTEX_SHADER);
var fs = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(vs, v);
gl.shaderSource(fs, f);
gl.compileShader(vs);
gl.compileShader(fs);
gl.attachShader(p, vs);
gl.attachShader(p, fs);
gl.linkProgram(p);
gl.useProgram(p);
gl.bindAttribLocation(p, 0, "position");
gl.enableVertexAttribArray(0);
}
function draw() {
var data = [ 0.0, 0.5, 0.0, -0.5, -0.5, 0.0, 0.5, -0.5, 0.0 ];
gl.bindBuffer(gl.ARRAY_BUFFER, gl.createBuffer());
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW);
gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
gl.drawArrays(gl.TRIANGLES, 0, 3);
gl.flush();
}
initWebGL();
initShaders();
draw();
var c, gl;
var v = "attribute vec3 position; void main() { gl_Position = vec4(position, 1.0); }";
var f = "precision mediump float; void main() { gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0); }";
function initWebGL() {
c = document.getElementById("c");
gl = c.getContext("experimental-webgl");
}
function initShaders() {
var p = gl.createProgram();
var vs = gl.createShader(gl.VERTEX_SHADER);
var fs = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(vs, v);
gl.shaderSource(fs, f);
gl.compileShader(vs);
gl.compileShader(fs);
gl.attachShader(p, vs);
gl.attachShader(p, fs);
gl.linkProgram(p);
gl.useProgram(p);
gl.bindAttribLocation(p, 0, "position");
gl.enableVertexAttribArray(0);
}
function draw() {
var data = [ 0.0, 0.5, 0.0, -0.5, -0.5, 0.0, 0.5, -0.5, 0.0 ];
gl.bindBuffer(gl.ARRAY_BUFFER, gl.createBuffer());
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW);
gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
gl.drawArrays(gl.TRIANGLES, 0, 3);
gl.flush();
}
initWebGL();
initShaders();
draw();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment