render fake perlin noise waves

This commit is contained in:
Julian
2020-01-22 02:20:25 +01:00
parent 0ae0bb80eb
commit 5a24ae7216
2 changed files with 103 additions and 61 deletions

View File

@@ -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();