Posted by: opengel | August 18, 2010

Metaball code with GLSL fun

Nice example of new code, however it’s not as fast as i want it yet:

Posted by: opengel | August 7, 2010

Blobby Video Progress

Posted by: opengel | August 6, 2010

Complete Prototype

Please ignore the music, fraps captured the music that was playing when I made the video, then youtube moaned about it.

Posted by: opengel | August 5, 2010

Marching Cubes Prototype Progress

Figure 1 shows the current progress of the new Marching Cubes algorithm. it shows the smooth transitions between structures, and how the surface appears rounder than previous. The vertex normals are calculated from volumetric data, however they aren’t currently interpolated. Once normal interpolation is implemented I am going to get stuck into optimisation, and create a finished version of the metaball system, which is central to the morphing technique. Even though more is being calculated than previously, I am confident I can get higher framerates, through efficiency guidelines by nVidia.

Figure 1. Current Metaball progress.

Posted by: opengel | August 3, 2010

Adaptive Marching Cubes

The new approach of incorporating a VBO gave the possibility to make more dynamically generated Marching Cubes. This has now been implemented and the results show a great increase in aesthetics. The generated structures now animate smoother, and more importantly they look smoother and more spherical. figure 1 shows a comparison of the old rigid technique on the left, and the new dynamic approach on the right.

Figure 1. Comparison of old (left) and new (right) Marching cube generated structures.

While creating the marching cubes code I have found that the internet is lacking simple tutorials. After finishing this part of the project I will be creating a very simple to understand tutorial, including CUDA implementation tips. I may even offer my implementation, for people who don’t want to learn CUDA, but  do want GPU accelerated Marching Cube generation. Offering this free would hopefully let people explore with the possibilities of this versatile algorithm.

Posted by: opengel | July 31, 2010

Development Update

Work is progressing to realise all the features of the system, features outlined in the original report.

Vertex Buffer Object incorporation

The majority of the work has gone into creating an alternative method of representation. The original system uses display lists to render the cubes. This method made vertex normals and other dynamic alterations to the cubes structure near impossible. The new direction incorporates a VBO, giving a dynamic structure. This new approach has taken me back to previous prototype code and is near to implementation in the system. However, there is an opportunity to create more continuous structures, and this will be experimented with during this prototype stage. Figure 1 shows an example screen shot from recent prototyping.

Figure 1 – VBO marching cubes prototype with single central influence field.

Custom shaders

The system uses alpha blending to transition away from the original object textures, to a morphing texture. This technique which only uses standard OpenGL 1.1 is a problematic part of the system. The settings required to pull off this transition affect the whole scene, making it hard to control lighting. The original idea was to create custom shaders for this operation using GLSL, however, due to time constraints there wasn’t enough time to implement this. I have started experimenting with GLSL again, Figure 2 shows some examples. I also see an opportunity for a vertex shader to distort the mesh during the morph.

Figure 2 – Top cell shader, middle per pixel shader, Bottom twisted vertex shader.

Posted by: opengel | July 27, 2010

VBO – Integration

The VBO structure that was highlighted as a possible improvement to the system is currently being added. The underlying structure has been coded, including new generated lookup tables for the Marching Cubes algorithm. This new system should give more control over normals so opening up the possibility of vertex normals being calculated from the volumetric data.

An interpolation is also being added into the marching cubes which will produce unique cubes for each voxel, based on the individual influences at each vertex. This improvement will give a fully rounded surface, a great improvement.

Once these changes have been added to the system it will be much closer to completion. However as progress storms on efficiency and elegance drop, so I will take the opportunity to clean up the code and make it as fast as possible before considering further features. Of which I have many many directions I want to take this exciting project.

Posted by: opengel | July 23, 2010

Sphere-tree structure

The custom file format has been dropped in favour of XML. The human readable format is much easier to work with. Whereas the previous format required separate files for differing resolutions, whereas the XML approach incorporates all resolutions within one structured file.

Posted by: opengel | July 12, 2010

SET Awards

Following the success of the dissertation, the paper is currently being prepared for the SET awards. The 2000 word summary report will be available on the site shortly. For more information on the SET awards follow this.

Posted by: opengel | July 10, 2010

Full project dissertation posted

The final dissertation project can now be downloaded from the published paper section.

Older Posts »

Categories

Follow

Get every new post delivered to your Inbox.