More Matrix Modes

Currently we have PROJECTION, MODELVIEW and TEXTURE matrices. I’d like to get NORMAL and MODEL separately. MODELVIEW mode should operate on both NORMAL and MODEL (they don’t need to be identical!).

I’d like to know your what do you think about separating MODEL and NORMAL from MODELVIEW.

Also if you feel there could be more matrix modes, POST IT ON!

We currently have COLOR as well…

I can’t think of any reason to have separate matrices for points and normals, but if you can, just wait for OpenGL 2. The GL2 vertex processor will let you do pretty much anything you want along these lines.

Why to separate MODEL and NORMAL matrices?

Let’s export a model from MAX to ASE file format. If MAX’s scene conained transformed object(s) (rotated, scaled, translated) in exported file we will get original vertices, transformation matrix for them and already transformed normals. So to set up corectly opengl viewer, we need only to set MODEL matrix to provided transformation and leave NORMAL matrix as identity.

All OpenGL 1.x.y implementaions would equire to recalculate normals to given tansformation coordinate system.

This is a deficiency of MAX exporting to ASE. Things shouldn’t be put in OpenGL for the sole purpose of solving a problem exhibited only by one 3rd party tool.

Besides, most of OpenGL2.0 is about shader operations, so if you really want a normal matrix, you can make the shader use one. In fact, you can do that now with vertex programs/shaders. Fixed-function pipelines, in the era of programmable hardware) are about simplicity and rapid development.

[This message has been edited by Korval (edited 02-21-2002).]

Keeping normals in already tranformed space shouldn’n ever be called a problem! This is comparable to interleaved and block image storages. Both representations are correct but slightly different. Pixel shaders arn’t good solution cuz as their input i’d like to get already correctly transformed normals (through given matrix).

Thanks for your point of view Korval