こんにちは、Edward Angelのインタラクティブ3Dグラフィックスの紹介に従っています。再帰的な迷路を作ってみたいですが、まずは基本的な広場をする必要があります。私はsierpinskiガスケットの本のスクリプトでこのスクリプトをモデル化しました。私はこれで数時間を過ごしていて、私が間違っていることを見ることはできません。 HTMLページには1行しか表示されません。 IveはLINES LINE_LOOP POLYGONのような異なるタイプの頂点結合ツールを試しましたが、うまくいかないようです。私を助けてください私はImが狂って行くように感じる。それはJavaScriptのネイティブ配列を返しますがgl.bufferData
は、型指定された配列を必要とflatten
の標準実装を想定しJavascript、WebGL、HTMLを使用して四角形を描く
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<title>Maze Sierpinski Gasket</title>
<script id="vertex-shader" type="x-shader/x-vertex">
attribute vec4 vPosition;
void
main()
{
gl_Position = vPosition;
}
</script>
<script id="fragment-shader" type="x-shader/x-fragment">
precision mediump float;
void
main()
{
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
</script>
<script type="text/javascript" src="../Common/webgl-utils.js"></script>
<script type="text/javascript" src="../Common/initShaders.js"></script>
<script type="text/javascript" src="../Common/MV.js"></script>
<script>
//goal: try and draw just a square.
var canvas;
var gl;
var points = [];
window.onload = function init()
{
canvas = document.getElementById("gl-canvas");
gl = WebGLUtils.setupWebGL(canvas);
if (!gl) { alert("WebGL isn't available"); }
//enter new script
var vertices = [
vec2(-1.0,-1.0),
vec2(-1.0,1.0),
vec2(1.0,1.0),
vec2(1.0,-1.0)
];
square(vertices[0],vertices[1],vertices[2],vertices[3]);
//
// Configure WebGL
//
gl.viewport(0, 0, canvas.width, canvas.height);
gl.clearColor(1.0, 1.0, 1.0, 1.0);
// Load shaders and initialize attribute buffers
var program = initShaders(gl, "vertex-shader", "fragment-shader");
gl.useProgram(program);
// Load the data into the GPU
var bufferId = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, bufferId);
gl.bufferData(gl.ARRAY_BUFFER, flatten(points), gl.STATIC_DRAW);
// Associate out shader variables with our data buffer
var vPosition = gl.getAttribLocation(program, "vPosition");
gl.vertexAttribPointer(vPosition, 2, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(vPosition);
render();
};
function square(a,b,c,d)
{
points.push(a);
points.push(b);
points.push(c);
points.push(d);
}
function render(){
gl.clear(gl.COLOR_BUFFER_BIT);
gl.drawArrays(gl.LINES, 0, points.length);
}
</script>
</head>
<body>
<canvas id="gl-canvas" width="512" height="512">
Oops ... your browser doesn't support the HTML5 canvas element
</canvas>
</body>
</html>
アイブ氏の欠如を見つけました。 function square(a、b、c、d)の後に { points.push(a); points.push(b); points.push(c); points.push(d); } – NaBaddaDanJah
でもまだ仕事がありません – NaBaddaDanJah
私は[これらの記事](http://webglfundamentals.org)を渡すと思っていました。 – gman