protected override BufferRenderer CreateRenderer() { ZeroIndexBufferRenderer renderer = new ZeroIndexBufferRenderer( this.Mode, this.FirstVertex, this.VertexCount); return(renderer); }
private unsafe void InitVertexBuffers() { { VR02PositionBuffer positionBuffer = new VR02PositionBuffer(strin_Position); positionBuffer.Alloc(xFrameCount * yFrameCount * zFrameCount); vec3* array = (vec3*)positionBuffer.FirstElement(); int index = 0; for (int i = 0; i < xFrameCount; i++) { for (int j = 0; j < yFrameCount; j++) { for (int k = 0; k < zFrameCount; k++) { array[index++] = new vec3( (float)i / (float)xFrameCount - 0.5f, (float)j / (float)yFrameCount - 0.5f, ((float)k / (float)zFrameCount - 0.5f) * 109.0f / 256.0f ); } } } this.positionBufferRenderer = positionBuffer.GetRenderer(); positionBuffer.Dispose(); } { VR02UVBuffer uvBuffer = new VR02UVBuffer(strin_uv); uvBuffer.Alloc(xFrameCount * yFrameCount * zFrameCount); vec3* array = (vec3*)uvBuffer.FirstElement(); int index = 0; for (int i = 0; i < xFrameCount; i++) { for (int j = 0; j < yFrameCount; j++) { for (int k = 0; k < zFrameCount; k++) { array[index++] = new vec3( (float)i / (float)xFrameCount, (float)j / (float)yFrameCount, (float)k / (float)zFrameCount ); } } } this.uvBufferRenderer = uvBuffer.GetRenderer(); uvBuffer.Dispose(); } { var indexBuffer = new ZeroIndexBuffer(DrawMode.Points, 0, xFrameCount * yFrameCount * zFrameCount); indexBuffer.Alloc(xFrameCount * yFrameCount * zFrameCount);// this actually does nothing. this.indexBufferRenderer = indexBuffer.GetRenderer() as ZeroIndexBufferRenderer; indexBuffer.Dispose(); } this.vao = new VertexArrayObject(this.positionBufferRenderer, this.uvBufferRenderer, this.indexBufferRenderer); }