Archived

This topic is now archived and is closed to further replies.

Lithic

How to render FFT water as a bumpmap?

Recommended Posts

Well, i have had finished FFT calculations for a while as well as i''ve had my finished equation for calculating the fresnel term. Using this i can easily render a fully 3D plane of water. However i would much rather use bumpmapping to render the water to reduce the triangle count. I have a few questions relating to this as follows: 1) should i render ALL water as a bumpmap or have separate distance-based LOD''s? 2) Should i calculate the bumpmap useing register combiners or (vertex/pixel)shaders? 3) How would i go about doing your proposed method and is there anything i should know? --===LITHIC===-- --===WWW.Decimation.TK===--

Share this post


Link to post
Share on other sites
quote:
Original post by Lithic
1) should i render ALL water as a bumpmap or have separate distance-based LOD's?


Bumpmapping takes time, especially reflective bumpmapping. Don't render what you don't see. Since the bump'ed waves typically are small scale (the large scale waves should be done geometrically), they won't be visible in the distance. So yes, you should switch off the bumpmapping from a certain distance on.

quote:

2) Should i calculate the bumpmap useing register combiners or (vertex/pixel)shaders?


Depends on your target hardware. GF3/GF4: regcoms/texture shaders. Radeon 9x00/GFFX: fragment programs. You can also use Cg.

GF2 and below cannot do reflective perpixel bumpmapping (EMBM) at acceptable performance. Standard diffuse bumpmapping is not very useful for water.

quote:

3) How would i go about doing your proposed method and is there anything i should know?


Pretty straightforward. Render your small scale FFT waves (high frequency, small amplitude) into a bumpmap. Apply finite differencing to get the normalmap. Use on water.


[edited by - Yann L on October 15, 2003 9:58:36 PM]

Share this post


Link to post
Share on other sites