i am totally confused about the correct naming of the character bump mapping technique from the epic game “infinity blade”. Is it now a ramp- or a RNM shader?
am i right that the “light” is faked with a light texture on it?
and how many textures would be nesessary to get the right effect?
diffuse
normal map
specular map
light texture
would this be correct?
and how much draw calls would such a bump shader take for one object?
would it be possible to get such a shader in a single draw call?
It uses “Unreal Style Lightmaps”, which from what I understand computes light vectors that are used for bump and speculars. There are no real lights anywhere.
As for maps they use :
Diffuse (tiled alot so there is high frequency detail)
Decals (for Variation)
Lightmap (their lightmaps do support RNM, but I don’t think they are that high resolution to actually show, that’s why they have some actual realtime bump mapping going on)
Normal (Bump)
Not sure is specular is actually mapped, or just a value.
It actually switches between shaders often, simplifying things if needed.
With unity for now I think we are stuck with using actual lights if we want some sort of specularity going on.
This is incorrect. From what I can see in Infinity Blade:
The environment is not using normal mapping at all, and no parallax. It’s just a texture with a plain oldskool lightmap. No realtime lighting, and no specular. This is different from Epic Citadel, which did have occasional parallax (but without bumpmapping) and occasional fake specular on environments.
The characters (at most 2 on the screen at once :)) use normal mapping with one directional light. It does do specular on iPhone 3Gs; folks have said specular is not there (or “different”) on iPad. In Unity 3.2 we’re going to add a very similar shader, which is basically taking our Bumped Specular, throwing out some flexibility (e.g. throw out material color specular color), and adding in some approximations.
There’s infinite amount of ways you can do specular. You can do oldskool sphere mapping. You can do actual realtime specular from a directional light (which is what Infinity Blade does on characters). You can also not do specular (which is what Infinity Blade does on the environment).
For the environment: 2 or 3 (color + lightmap or color + detail + lightmap)
For the character: 2 (color + normalmap; gloss map in alpha channel of the color texture)
One. Just like current Bumped Specular in Unity is one draw call when you have one directional light. By throwing some stuff out of that shader and approximating other things, it’s possible to make it much faster.
Yeah I was wrong, I kind of merged epic citadel together with infinity blade.
Also : For the environment: 2 or 3 (color + lightmap or color + detail + lightmap), I don’t think they have an extra detail map. They paint details/variations directly on the lightmap if needed.