Bachelor of Science

Posted: 23rd June 2012 by Luke Iwanski in University
Tags:

So I made it – First Class Honours gained, The Lawrence Ho Student Prize for the best game technology related project has been won; now get back on my voxel thing :)

Regards
Luke M. Iwanski B.Sc. (hons)

Presentation – checked

Posted: 5th April 2012 by Luke Iwanski in Honours Project, University
Tags: ,

Presentation Poster

Presentation done, no prize for the best poster, oh well..
Two more weeks..

Power of well balanced octree

Posted: 31st March 2012 by Luke Iwanski in C++, Honours Project, OpenGL
Tags: , , , ,

300 FPS when moves - Insane!

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

Posted: 13th March 2012 by Luke Iwanski in C++, Honours Project, OpenGL
Tags: , , , ,

1233560 cubes visible avg. FPS: 144.

Simple optimisation great performance boost! – Skip ALL the non-visible faces!

Progressive Rendering + visibility testing in a fly

Posted: 6th March 2012 by Luke Iwanski in C++, Honours Project, OpenGL
Tags: , , ,

Progressive Grid of 256x256x256

Apparently I couldn’t resist. Last optimisation implemented.

Now seriously, report!

Octree + simplex noise

Posted: 5th March 2012 by Luke Iwanski in C++, Honours Project, University
Tags: , , , ,

simplex noise in action

Since week all development stopped and now I am struggling with report. Just finished draft of first chapter.. it’s terrible.

Octree in Place

Posted: 19th February 2012 by Luke Iwanski in C++, Honours Project, OpenGL, University
Tags: , , , ,

Step forward :)

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 :|

Oh and some metrics:

Editable Grid.. yay!

Posted: 9th January 2012 by Luke Iwanski in C++, Honours Project, OpenGL, Voxel Engine
Tags: , , , ,

Editable grid 16x16x16

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):

1
2
 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.

Shadows added - calculated on GPU but still works fine!

Shadow value for each cube is stored in separate grid, values are sent to shader and then output is altered. It all depends on value.
The value is calculated based on number of obstacles on the way between light and current cube.
Below you can find some metrics:

Metrics for shadow added.

Earlier I have introduced point light to engine, there is example of one point light – shown below.

Point lights introduced.. performance drops.. but that's good.

Below 510 point lights on 64x64x64 cubes grid.

Point lights on 64 grid - 36 FPS.. pretty Ok.

And its metrics..

512 Point Lights took 2 Friends Episodes to load in

Metrics for grid of 32x32x32 cubes, below:

Wait.. What?!?.. straight Line?

Why the results for point lights are almost the same?
All the calculations are precomputed on CPU so we are dealing with fixed buffer of light values – which is fair enough, however I need to optimise loading process so it will allow to add lights in real time.

Next step, editable terrain..

Directional Light performance impact on the scene

Posted: 22nd December 2011 by Luke Iwanski in C++, Honours Project, OpenGL, Voxel Engine
Tags: , , ,

Directional Lighted "boxel" scene

Very simple calculation of directional light had noticeable impact on the performance, table below shows it:

Performance impact for different number of boxes.

and yeah, SW:TOR is pretty Ok but nothing can win with “coding hunger”.