Monday, 26 March 2012

3D Brownian Motion

Interestingly, 2D fractals such as Brownian Motion and Rigid Multi Fractals appear to have very little difference to each other in 3D...

Friday, 23 March 2012

3D Noise and Texturing

I'm currently working on Landscape generation using 3D perlin noise. Unfortunately, there seems to be something wrong with my noise or the way I'm sampling it...
But its still pretty cool....

Also, pictured is deferred texturing and lighting, with point light at the camera's position.

Note to Erin: slightly improved texturing by using the glsl functions dFdx and dFdy with textureGrad.

Wednesday, 7 March 2012

My First Volume Render



Statistics:
Dimensions: 832 x 832 x 494
Uncompressed Data Size: 652MB
Compressed Data Size: 0.3MB
Fps: 60

Monday, 5 March 2012

New Plan!

So raycasting didn't work...

But I have a new plan!

I will use OpenCL to to expand the compressed format from RLE to start and end points, I will then pass these points to the geometry shader to create cuboids!

Reasons For Doing This In OpenCL:
Means less data to send to GPU.
Means I get to use OpenCL.

Erin's Update

I'm technically 3 months into my project now and here's what I've done so far:
  • OpenCL is up and running.
  • I wrote a voxel data set compressor.
  • I rendered a few voxels!
OpenCL has been fairly nice to work with. The nVidia code samples and The OpenCL Programming Book helped me get to grips with it. Also, their Best Practices Guide was a good read.
I've managed to hard crash my computer several times due to carelessness. The OpenCL compiler has very informative error reporting but runtime errors less so...

My voxel compressor was written to compress data sets from:
The lowest resolution of the stag beetle data set compressed from 10MB to 7KB!

I found that link on a website which is full of papers etc on everything you ever wanted to know about volume rendering:

I have attempted rendering the compressed stag beetle but I think it was too much processing for the GPU to handle... so I'm looking into other ways to render the data.

I am doing everything in OpenCL expect outputting the result to the screen, which I need OpenGL for.

PS.

Sunday, 4 March 2012