render fake perlin noise waves
This commit is contained in:
20
src/main.ts
20
src/main.ts
@@ -2,8 +2,6 @@ var gl: WebGLRenderingContext;
|
||||
var viewportWidth = 0;
|
||||
var viewportHeight = 0;
|
||||
|
||||
main();
|
||||
|
||||
function initGL(canvas: HTMLCanvasElement) {
|
||||
var gltemp;
|
||||
try {
|
||||
@@ -27,9 +25,9 @@ function initGL(canvas: HTMLCanvasElement) {
|
||||
|
||||
function initGeometry() {
|
||||
let VBO = gl.createBuffer();
|
||||
let vertexData = [-0.5, -0.5, 0.0,
|
||||
0.5, -0.5, 0.0,
|
||||
0.0, 0.5, 0.0];
|
||||
let vertexData = [-1.0, -1.0, 0.0,
|
||||
1.0, -1.0, 0.0,
|
||||
0.0, 1.0, 0.0];
|
||||
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, VBO);
|
||||
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertexData), gl.STATIC_DRAW);
|
||||
@@ -99,20 +97,24 @@ function initShaders() {
|
||||
return program;
|
||||
}
|
||||
|
||||
var timeSpent = 0.0;
|
||||
function drawScene(buffer: WebGLBuffer, program: WebGLProgram) {
|
||||
timeSpent += 1.0 / 60.0;
|
||||
gl.viewport(0, 0, viewportWidth, viewportHeight);
|
||||
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
|
||||
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
||||
|
||||
// There are 7 floating-point values per vertex
|
||||
var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
|
||||
let stride = 3 * Float32Array.BYTES_PER_ELEMENT;
|
||||
|
||||
// Set up position stream
|
||||
gl.vertexAttribPointer(0, 3, gl.FLOAT, false, stride, 0);
|
||||
gl.enableVertexAttribArray(0);
|
||||
|
||||
gl.useProgram(program);
|
||||
let uTime = gl.getUniformLocation(program, "uTime");
|
||||
gl.uniform1f(uTime, timeSpent);
|
||||
gl.drawArrays(gl.TRIANGLES, 0, 3);
|
||||
}
|
||||
|
||||
@@ -130,10 +132,12 @@ function main() {
|
||||
gl.clear(gl.COLOR_BUFFER_BIT);
|
||||
|
||||
if (triangleVBO != null && shaderProgram != null) {
|
||||
drawScene(triangleVBO, shaderProgram);
|
||||
window.setInterval(drawScene, 1000 / 60, triangleVBO, shaderProgram);
|
||||
}
|
||||
|
||||
if(gl.getError() != gl.NO_ERROR) {
|
||||
if (gl.getError() != gl.NO_ERROR) {
|
||||
console.log("OpenGL Error!: ");
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
Reference in New Issue
Block a user