do you know any good/efficient method of rendering flat 2D bitmaps/sprites in 3D space so that bitmap is faced toward viewer (u know, like monsters in Wolfenstein)…
…without knowing transformations that were applied to an object(bitmap)…
…and so that z-buffer is filled with some const z value…?
What you want to do can be attained by drawing a quad (or two triangles) with your image applied as a texture. The natural pipeline will do all your z-buffer work for you–but beware, you want a constant z-buffer value, but that will not happen most of the time, since your quad will actually be rotated and re-oriented to face the origin.
Do a search on any search engine for “billboarding” This is a very commonly asked question.
An easier way to do it would be to use an orthogonal projection matrix, but then your z-buffer would be a bit tricky and you’d have to manually compute the scale factor.
actually it’s not that important z value is CONSTANT…
but i can’t do standard billboarding, because i don’t transform my model view matrix using only glRotate, glTranslate etc…
but multiplying it by some matrices…
If I understand what you are doing, you can still use billboarding. I use Quaternion rotations in software, but apply the final rotation only to the model view stack for faster results and smoother transforms. I use the eye/camera location and orientation to orient all the billboards and apply the finaly rotation with glrotate() and then draw. On the Geforce4 you might be able to cheat and use a PointSprite, but I have not read if that writes to the Zbuffer or just outputs rapidly to a screen. If it works like points, it writes to the screen buffer, I use points in my particle engine and they still react to the scene appropriately.