I bet this is quite a basic question, but I've been unable to found the answer neither in the wiki, the tutorials or the forums...
Is there a way of having bump mapping in Irrlicht without using shaders? I need my code to run in hardware that lacks support for them and I would like to offer bump mapping
since toy story, since the renderman simulate great lighting behaviour.
GPU are equiped with shader processors, i belive todays GPUs all have shaders processors. you only need to make multiple shaders version so if the higher version fail, use the lower verson.
I am afraid they aren't, not the ones I am targeting
It is possible to create bumpmapping effects without shaders, by using some OpenGL extensions. What I am wondering if it can be done in Irrlicht as it is or shaders in the only method provided for bump mapping...
As far as i can think there's no way of doing it without shaders, but if you want to know about OGL extensions why not research them? See if something exists by using google.
I just wanted to know if it is implemented in Irrlicht already or if I would have to do it. How would you do it, as a new material or a as fallback for the NormalMap renderer?
They are using the dot3 extension. They also use cube map normalization, don't know if you really need this, would make things much harder. Also, it's a two pass material, just to note this extra hurdle as well...
You can do a basic one-pass bump mapping with the DOT3 extension and two textures. You are limited to only directional lighting set in the global color (glColor() in OGL). Unfortunately I don't think Irrlicht lets you use that global color for meshes (I really wish it would), so you may have to change the engine or find some work around. Here is an example of this technique in OpenGL ES.
One work around would be to update the Color component for every vertex with the direction of the light. In that case you could even take it a step further--with some additional calculation you can update each vertex with the direction of a point light.
To get any more complicated than this requires multiple render passes and more calculations.
That example is perfect for me, since I am using OpenGL ES 1.x. In fact, I am targeting a PowerVR MBX card, which is the "big sister" to the MBX Lite found in the iPhone.
I'll try to valorate the feasibility and complexity of using that technique with the tweaks you suggested as a fallback for the normal renderer
Oh in that case you really should take a close look at the PowerVR site. They have lots of details and examples of how to do all the neat effects with their chips (including a DOT3 bump-mapping one, but it's basically the same as the link above).