Hello.
Im currently working on adding volumetric texture support into irrlicht.
I'll try to get it accepted into the engine when it's completed.
Biggest issue is design, all texture & image handling in irrlicht is 2d centered.
The quick way is to add methods such as s32 getDepth(), as it wouldn't really
break anything.
Although dimension3d<s32> getSize() and similar feels right, but would
break virtually every application fiddling with textures.
Main ideas are,
addTexture(size, depth, ....) into IVideoDriver.
(or introducing dimension3d as a type, skipping depth parameter)
A new vertextype allowing 3d texturecoordinates.
Currently working on direct3d9 driver, mostly it's just making it aware of depth.
Comments and suggestions are welcome.
Volumetric textures
I've already implemented 3D textures( and Cube textures ) in IRRspintz. 3D Volume Textures work great for volumetric noise calculations, where you only need an 8 byte value for noise computations. They have many other uses, such as for doing texture animations. Instead of having say 16, 256x256 textures in separate files. You can have a single texture/file with 256x256x16 dimensions. DDS support is really important for Volume/3D and Cubemap textures, as it's the only texture format I'm aware of that supports them.
IRRspintz has some nice examples pulled from ATI RenderMonkey that show volume noise lookups in action - Fireball, Lightning and Explosion. You can get IRRspintz via SVN, details on my website, or if you'd like I can provide some videos/pre-built executables.
Granted, I don't support Linux anymore, but the implementations are there for OpenGL and DirectX, so porting that over to Irrlicht would give you the functionality on Linux.
IRRspintz has some nice examples pulled from ATI RenderMonkey that show volume noise lookups in action - Fireball, Lightning and Explosion. You can get IRRspintz via SVN, details on my website, or if you'd like I can provide some videos/pre-built executables.
Granted, I don't support Linux anymore, but the implementations are there for OpenGL and DirectX, so porting that over to Irrlicht would give you the functionality on Linux.
Anyways, here's some videos of the demos that come with IRRspintz, that re-create some ATI Render Monkey examples that used Volume Textures -
http://irrlicht.spintz.com/movies/irrsp ... n_demo.wmv
http://irrlicht.spintz.com/movies/irrsp ... l_demo.wmv
http://irrlicht.spintz.com/movies/irrsp ... g_demo.wmv
http://irrlicht.spintz.com/movies/irrsp ... n_demo.wmv
http://irrlicht.spintz.com/movies/irrsp ... l_demo.wmv
http://irrlicht.spintz.com/movies/irrsp ... g_demo.wmv