Volumetric Billboards

Discussion about everything. New games, 3d math, development tips...
Post Reply
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Volumetric Billboards

Post by Virion »

ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Post by ACE247 »

It's quite nice when not noticing the frame rate. I think better performance is achievable using actual 3d geometry. Look here for example: :(
And thats not even full LOD!
Image
It seems to be more of a gimmick of whats possible not whether its actually usefull.
PS: Speedtree can render much more much quicker, not to mention how much quicker that dragon in the vid could be rendered.
DtD
Posts: 264
Joined: Mon Aug 11, 2008 7:05 am
Location: Kansas
Contact:

Post by DtD »

Wow, this is very impressive. While ace pointed out the framerate in the video is bad, I noticed myself that it seems to scale very well (more volumetric billboards did not seem to have a significant impact.)

I'm gonna have to mess around with these...
ACE247
Posts: 704
Joined: Tue Mar 16, 2010 12:31 am

Post by ACE247 »

The way it scales is about the only usefull thing I find about it, for example rendering a huge forest from above view(FPS would not look quite right.), which would be slower with 3d geometry.

But am I right that this uses voxels/voxelization in some form?
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

Image

this one is very impressive. grass/fur!!
netpipe
Posts: 669
Joined: Fri Jun 06, 2008 12:50 pm
Location: Edmonton, Alberta, Canada
Contact:

Post by netpipe »

i honestly cant even wrap my mind around how thats done. how much faster could it even be ?.
Live long and phosphor!
-- https://github.com/netpipe/Luna Game Engine Status 95%
slavik262
Posts: 753
Joined: Sun Nov 22, 2009 9:25 pm
Location: Wisconsin, USA

Post by slavik262 »

*Ignore me*
Last edited by slavik262 on Mon May 31, 2010 6:21 am, edited 1 time in total.
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

slavik262 wrote:It's just some kind of advanced texture mapping on crack... kind of how parallax mapping shifts texture coordinates around to make the surface look 3D
No i have read the paper and it is actually a voxel approach.
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

Mix of voxel and classical billboards... interesting read. It has many advantages...
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

tecan wrote:i honestly cant even wrap my mind around how thats done. how much faster could it even be ?.
Just by looking at Virion's image you can tell they extrude the triangle to create a volume, and then ray cast a 3D texture ("Voxels") inside that volume. The main advantage of course is that you can automatically get "free" LOD by using the different mipmap levels of the 3D texture.

I imagine it can be quite slow if you are looking just under the tip of the grass horizontally, it'll have to go through many volumes before it hits a voxel. Too bad they didn't really show this situation in the video.

This actually reminds me of another technique where they used raycasting on building windows to simulate an interior, it was on GameDev.net as well. More info here: http://www.humus.name/index.php?page=3D&ID=80 (Although this doesn't use any voxels)
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
Patapom
Posts: 1
Joined: Tue Jul 19, 2011 4:14 pm

Re: Volumetric Billboards

Post by Patapom »

I just finished implementing the technique in my renderer.
Actually, it's not ray-marching of a volume but slicing of that volume.

Step 1 : Render a scene (anything really, as long as it's not too detailed) into a 3D texture (I actually rendered into 2 textures : diffuse|alpha and normal)
Step 2 : Place several boxes in the world, each box the size of the original scene. Each box is assigned a material with the textures rendered in Step 1
Step 3 : (todo for each frame)
. Step 3.1 : Slice the entire space with planes orthogonal to the view direction in back to front order and with BLEND mode enabled
. Step 3.2 : When a plane intersects the box, cut the box and generate geometry (using a Geometry Shader here)
. Step 3.3 : For each pixel of the generated geometry, sample the 3D texture(s) and display using favorite lighting model

Nothing really complicated as you can see. The problem with the algorithm though is that you post many many individual draw calls ! Also, it's kind of really slow.

My advice : only use this technique at a distance, with low mip levels. Use (simplified) meshes for close view and traditional billboards for very far view. This technique is ideal for middle range LOD I think.

http://www.patapom.com
Post Reply