After an unproductive week I've done some more work on the project.
After talking to my tutor I spent a bit longer attempting to optimise the basic rendering. When storing the volume data non-linearly the blocks are now power of two only, which allows for bitshifting instead of divides. Unfortunately it is still slower than linear storage.
I also tonight implemented interpolation between voxels when sampling. As expected rendering is quite a bit slower but image quality is improved quite a lot.
Some example render times:
Linear storage:
single sample: 18.8 seconds
interpolated sample: 34.3 seconds
Block storage (size 4)
single sample: 22.2 seconds
interpolated sample: 84.8 seconds
I will try to work when possible over the next couple of weeks. The main aims are to get round to researching the multi-CPU hardware details, and to multithread the ray caster.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment