Is GL_NORMALIZE still slow?

Started by
2 comments, last by 21st Century Moose 11 years, 2 months ago

Is glEnable(GL_NORMALIZE) slow on modern hardware?

I read the opengl pitfalls article which suggests that enabling this option slows down vertex processing.

The article is from 2000.

In 2000 there were still some low-end cards with S/W only vertex processing...

So, is this still a problem?

My Oculus Rift Game: RaiderV

My Android VR games: Time-Rider& Dozer Driver

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown & Killer Bees

Advertisement

GL_NORMALIZE is the slowest normal transformation, but i wouldn't say it's a problem.

One thing to note is if you're targeting OpenGL (desktop) that the GL_NORMALIZE target (for glEnable/glDisable) was deprecated in OpenGL 3.2 Core (July 2009). It won't be available any longer in Core profiles in 3.2 or later versions. Just an FYI. :)

First be aware of what enabling GL_NORMALIZE actually does and what circumstances you may need it in. If you never scale your matrix, you don't need it. If you do scale but it's uniform (i.e. x, y and z are scaled by the same amount), you don't need it - use GL_RESCALE_NORMAL instead.

So having determined that you do need it, is it slow? Well, it's certainly going to be slower than not using it, but that may not necessarily translate into "slow" - in other words, using GL_NORMALIZE may not suddenly throw you down to single digit framerates. If you can still hit your target performance when using it, then you can hardly call it "slow", can you?

And finally, you've tagged your question "OpenGL ES" but you're not saying which version. In 2013 you may well be lighting per-fragment, and renormalizing in your fragment shader anyway, in which case none of this discussion is relevant.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

This topic is closed to new replies.

Advertisement