EMBM

I would like to simulate ocean. So I decided to use a diffuse texture,
a cube map for reflection, and an animated bump map for waves. Now I
have to put all this together, and I found that this is called EMBM.

My problem is I can’t find any sample that explains EMBM without any
super powerful pixel shaders (that I definitely don’t want), or
without vendor specific extentions (ATI EMBM, or Nvidia register
combienrs).

I’d like to use only : ARB_texture_env_combine, ARB_texture_env_dot3,
and ARB_texture_cube_map.
This should be rendered in 1 pass on a 4 texture unit card (1 for
diffuse, 1 for cube map, and 2 for animated bump), and maybe not
renderable directly on a 2 texture unit card (should be better, but
you never get what you want). Anyway, even if this needs 3 passes on a
4 texture unit cards, I’ll go for it.

All suggestions are welcome.

SeskaPeel.

You can’t implement l33t effects without using l33t OpenGL features. EMBM requires dependent texture reads, and the only vendor-independent way to implement it is using GL_ARB_fragment_program.

– Tom

Well, I’ll go for GL_ARB_fragment_program then, but I can’t find some sample that uses this path.

At Nvidia, it’s with register combiners in 2 pass, or it’s with extra super powerful effects (I want the basis, not the additive rain drops). At ATI, it uses their specific extentions.

I tried to understand the Nvidia super powerful method, but there was loads of parasite code, and I couldn’t pass through it. There should be a simple sample somewhere … but where ?

SeskaPeel.