Presentation done, no prize for the best poster, oh well..
Two more weeks..
Category: Honours Project
Power of well balanced octree
Small memory leak was driving me crazy; Debugging process was taking ages.. bored, frustrated and tired decided to play about with octrees depth and minimal/maximal number of elements in leaf.. Amazed by 300FPS discovered the stupid mistake of creating VBO each time the leaf is regenerated. Instant win; fix of memory leak and 10 times greater performance.
Who said that the mistakes are stupid?
Only Visible Faces, Fog, Selected Box
Simple optimisation great performance boost! – Skip ALL the non-visible faces!
Progressive Rendering + visibility testing in a fly
Apparently I couldn’t resist. Last optimisation implemented.
Now seriously, report!
Octree + simplex noise
Since week all development stopped and now I am struggling with report. Just finished draft of first chapter.. it’s terrible.
Octree in Place
Last two nights were all about Octree, however this morning last bug has been hunted down.
Now I need to write a structure of report, good luck me 😐
Editable Grid.. yay!
Finally, my grid is editable now.
We can edit or remove current blocks – adding new ones will be introduced after optimisation stage.
Current version supports 4 standard blocks (Blue, Green, Yellow, Brown) and 1 point light (Blue with circle in the middle).
In this iteration of “boxel engine” regenerateBuffers method updates nearest block that collides with ray fired from camera POV within worldGrid 3 dimensional table, after that, buffers that contain shadow and light powers are recalculated, at the end two openGL methods are called (for each buffer):
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer[sectorID]);
glBufferSubData(GL_ARRAY_BUFFER, 0, frame_vertices[sectorID].size()*sizeof(glm::vec3), &frame_vertices[sectorID][0][0]);
first, buffer is bind, and then values are updated, starting from index 0 and then updating whole buffer.
Optimisation, that I will be introducing soon, is updating only changed values that will reduce data size.
That has to be send to graphics card.
Note:
Grid 64 recalculation takes a while :S
Metrics will be added soon.