Showing posts with label Honours. Show all posts
Showing posts with label Honours. Show all posts

Friday, 9 May 2014

The End of University and Thoughts on the Future

Hey there, so now University has been officially completed! My honours project and viva voce have been completed, all exams are done and now it's just a matter of deciding what to do for the future. My marks and grades should come in the beginning of June and my graduation will be in July. In the meantime however I need to decide between two courses of action for the immediate future and that is either getting a job or post-graduate education. Currently I have received an offer for a funded PhD in Pervasive Parallelism at Edinburgh University which stands as a good contender, however on the opposing side getting a job in industry is an attractive option. Money and experience is always a good thing. As such these last couple of weeks have been a form of turmoil as I slingshot between the two but there's not much that can be done until I receive back all my formal offers. As such I shall post an update in the coming weeks.

However, in the meantime, now that university is over my goal is to continue honing the skills I've picked up over my time here. Alongside this I aim to finish many of the side projects that I haven't had time for over the past few weeks not to mention all the unplayed games in my steam library that need finishing. Currently I'm in the process of writing a neural network library, the goal of which is to make an optimised package that will integrate into your C++ project with ease to provide automatic fast neural networks. All you will have to deal with on your end is deciding network topologies and normalising the input data. It's nearly complete but most of the trouble is getting my head around the neural networks in the first place and making sure the classes actually work. I'll throw up a link to the github repo once I get version 1.0 working properly.

Anyways, apart from these things I'm back to writing and game design as well and will be looking into Unreal Engine 4 stuff as I'm hoping to learn that over the next few weeks. Not much else to say really other than it's been a fun few years at university but I'm looking forward to moving on to bigger and better things! 


Email: markmmiller@hotmail.co.uk
Xbox Live: Dr Death MK 2
Steam: 7thsanctum

Origin: 7thsanctum
Youtube: 7thsanctum
Github: 7thsanctum

Tuesday, 11 March 2014

Honours Project Update - DirectX

Hey again, it's been a while since I've written about the status of my honours project and I've added a few features over the past few weeks.

I've added in some new data to give more interesting renderings compared with the old solid rainbow block. The main ones are a perlin noise heightmap using libnoise and a simplex noise dataset. Click on the pictures to read the text!
Figure 1 - Heightmap (Perlin Noise)

In the screenshot below, approx 1.5 million cubes are being drawn at above 40fps consistantly.

Figure 2 - Simplex Noise (192^3)
I have also added multi-texturing but still need to modify my application to make better use of the type distribution. This allows the engine to currently render different block types with different textures. 


Currently, the optimisations I have in place only remove inactive and fully surrounded cubes from being rendered, because of this I get a good performance for fixed datasets that do not change. However to update it or perform naive frustum culling it would slow it down considerably as my checks do this against every cell in the system. My next step is to fix this using the power of octrees! This is why in the gif above the number of cubes being rendered does not decrease as the camera moves. All 1.5 million of these points are being sent to the GPU and drawn into cubes using the geometry shader! 

A couple of other minor things I've added to my engine, frustum culling (although I need to combine this with multi-threading and octrees before it becomes effective), back face culling in the geometry shader (which has reduced the number of vertices I need by half), text rendering and extra controls. 

Main things I need to work on now are my octree implementation and improvements to my lighting model, I also need to gather more concrete performance data from other engines to find out whether or not I'm managing to improve on anything. However, I'm confident my use of the Geometry shader should provide similar performance benefits, if not greater, to the usage of vertex buffer objects once I manage to get octrees implemented. The geometry shader is a powerful stage and has allowed me to render over 11 million cubes without optimisation. Granted this is at a measly 10fps on a GTX Titan, but it does show that with the correct optimisation in place it can render large datasets well. The task now is filtering the data before it reaches the GPU. The dataset below is a solid 224^3 cube with all cells active and all cells being drawn, no filtering is performed.

Figure 3 - Current Max number of cubes (11 Million)


Anyways check out the video below to see a slightly older version of the application with consistently updating heightmaps.



Email: markmmiller@hotmail.co.uk
Xbox Live: Dr Death MK 2
Steam: 7thsanctum

Origin: 7thsanctum
Youtube: 7thsanctum
Github: 7thsanctum