[X3D-Public] MultiTexture: call for references

Michalis Kamburelis michalis.kambi at gmail.com
Wed Mar 9 11:04:57 PST 2011

Don Brutzman wrote:
> Am hoping to collect a set of references regarding MultiTexture 
> techniques.

>> The name string for multitexture is GL_ARB_multitexture. It was 
>> promoted to a core feature in OpenGL 1.3.

ARB_multitexture specifies how to provide multiple textures and multiple
texture coordinates to OpenGL. It doesn't offer any new methods for
mixing the texture colors, that is texture units are still mixed using
the glTexEnv possibilities specified elsewhere.

So the other important extension is ARB_texture_env_combine (previously
EXT_texture_env_combine, promoted to core in 1.3). This allows much more
flexibility in how the texture colors are mixed together, allows to
specify different mixing for color(RGB) and alpha parts. Generally,
ARB_texture_env_combine is how you implement the various X3D
MultiTexture.mode values (for fixed-function pipeline in OpenGL).


ARB_texture_env_dot3 (also promoted to core in OpenGL 1.3) is also
important, for MultiTexture.mode = "DOTPRODUCT3".

Like John mentions in other mail, these OpenGL features are also
deprecated/removed in OpenGL >= 3. The shaders are where implementation
of MultiTexture.mode should happen for modern renderers.

John Stewart wrote:
> I'm not sure what to suggest; certainly something is needed, as
> having everybody and their uncle writing shaders (and, keeping them
> up to date with the ever changing specifications) is not suggested!

I hope to talk at Web3D 2011 about my inventions for making shaders in
X3D easier to write and more integrated with default browser behavior. I
would prefer to simplify the shaders usage, to the point where we can
actually teach all the uncles how to write shaders :)

Sure, the basic options should be possible without writing shaders, but
in my experience the current MultiTexture.mode possibilites are (more
than) enough. For typical usage, the two modes: REPLACE or MODULATE
(with separate values for color(RGB) and alpha channels) would be enough
--- at least that's what I observe on my models. Everything else can be
shoved into "if you need this, write your own shader" (as long as the
shader writing is a little simplified, like I said above).


More information about the X3D-Public mailing list