Last active
April 8, 2018 11:14
-
-
Save arusu0629/a670267f4de66f32296a653c2ee33fd5 to your computer and use it in GitHub Desktop.
This file contains 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
onload = function() { | |
// canvasエレメントを取得 | |
var c = document.getElementById('canvas'); | |
c.width = 300; | |
c.height = 300; | |
// webglコンテキストを取得 | |
var gl = c.getContext('webgl') || c.getContext('experimental-webgl'); | |
// canvasを初期化する色を設定する | |
gl.clearColor(0.0, 0.0, 0.0, 1.0); | |
// canvasを初期化する際の深度を設定する | |
gl.clearDepth(1.0); | |
// canvasを初期化 | |
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); | |
// 頂点シェーダとフラグメントシェーダを生成 | |
var v_shader = create_shader('vs'); | |
var f_shader = create_shader('fs'); | |
// プログラムオブジェクトの生成とリンク | |
var prg = create_program(v_shader, f_shader); | |
// attributeLocationをの配列に取得 | |
var attLocation = new Array(2); | |
attLocation[0] = gl.getAttribLocation(prg, 'position'); | |
attLocation[1] = gl.getAttribLocation(prg, 'color'); | |
// attributeの要素数を配列に格納 | |
var attStride = new Array(2); | |
attStride[0] = 3; | |
attStride[1] = 4; | |
// モデル(頂点)データ | |
var vertex_position = [ | |
0.0, 1.0, 0.0, | |
1.0, 0.0, 0.0, | |
-1.0, 0.0, 0.0 | |
]; | |
// 頂点の色情報を格納する配列 | |
var vertex_color = [ | |
1.0, 0.0, 0.0, 1.0, | |
0.0, 1.0, 0.0, 1.0, | |
0.0, 0.0, 1.0, 1.0 | |
]; | |
// VBOの生成 | |
var vbo = create_vbo(vertex_position); | |
var color_vbo = create_vbo(vertex_color); | |
// VBOをバインド(位置情報) | |
gl.bindBuffer(gl.ARRAY_BUFFER, vbo); | |
gl.enableVertexAttribArray(attLocation[0]); | |
gl.vertexAttribPointer(attLocation[0], attStride[0], gl.FLOAT, false, 0, 0); | |
// VBOをバインドし登録する(色情報) | |
gl.bindBuffer(gl.ARRAY_BUFFER, color_vbo); | |
gl.enableVertexAttribArray(attLocation[1]); | |
gl.vertexAttribPointer(attLocation[1], attStride[1], gl.FLOAT, false, 0, 0); | |
// minMatrix.jsを用いた行列関連処理 | |
// matIVオブジェクトを生成 | |
var m = new matIV(); | |
// 各種行列の生成と初期化 | |
var mMatrix = m.identity(m.create()); | |
var vMatrix = m.identity(m.create()); | |
var pMatrix = m.identity(m.create()); | |
var mvpMatrix = m.identity(m.create()); | |
/* 以下割愛 */ | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment