static getLineBuffer() { if (!_lineBuffer) { _lineBuffer = GLUtil.createVertexBuffer(2, new Float32Array([ -1, 0, 1, 1 ])); } return _lineBuffer; }
static getTriBuffer() { if (!_triBuffer) { _triBuffer = GLUtil.createVertexBuffer(2, new Float32Array([ 0, 1/2, 3/5, -1/2, -3/5, -1/2 ])); } return _triBuffer; }
static getQuadStripBuffer() { if (!_quadStripBuffer) { _quadStripBuffer = GLUtil.createVertexBuffer(2, new Float32Array([ -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0 ])); } return _quadStripBuffer; }
static getHexStripBuffer() { if (!_hexStripBuffer) { _hexStripBuffer = GLUtil.createVertexBuffer(2, new Float32Array([ 1, 0, 0.5, -4/5, -0.5, -4/5, -1, 0, -0.5, 4/5, 0.5, 4/5 ])); } return _hexStripBuffer; }
static getFullScreenQuadBuffer() { if (!this._fsQuadBuffer) { this._fsQuadBuffer = GLUtil.createVertexBuffer(3, new Float32Array([ -1.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 1.0, 1.0, 0.0 ])); } return this._fsQuadBuffer; }
function createParticleUV() { const width = SIMULATION_WIDTH; const height = SIMULATION_HEIGHT; var buffer = []; for (var y=0; y<height; ++y) { for (var x=0; x<width; ++x) { buffer.push(x/width); buffer.push(y/height); } } const numComponents = 2; const data = new Float32Array(buffer); return GLUtil.createVertexBuffer(numComponents, data); }