Home Technical Talk

Should I worry about game engine compatibility when creating real-time assets?

For general use I mean. Of course if you're working on an assignment then you need to make it work on whatever engine is being used.

I've read about normal maps a bit and they seem to come in several flavors and most are incompatible with each other. Like 3ds Max viewport and render looking different, Blender bakes look terrible in Unity, and so forth. I haven't presonally noticed any differences with my normal maps between Blender, UDK, and Unity but that might be because I use the Nvidia Photoshop filter to normalize my normal maps after editing them. (Does this change the tangent space of the normal map? I don't know how these work, I just read that Blender uses "mikktspace".)

Seemingly my normal maps work fine all around but I've had bad problems with specular maps. (Power, hardness/gloss, and color.) I never seem to get the pretty results I see in the Blender viewport. But we're still talking about grayscale images here. I don't think you can really make them "wrong" and it all just depends on how you use them.

What I really wanted to ask was whether as an artists providing (selling online) an asset should worry about the various texture maps being compatible with various game engines or should I just leave the nitty-gritty shader work to whoever is planning on using the assets? It would sure be nice to have screenshots from various game engines to show the client that my model indeed behaves like in the renders but is it really worth the trouble? Should I just concentrate on providing high quality textures and stop worrying how to implement them in game engines?

Replies

  • ZacD
    Online / Send Message
    ZacD ngon master
    Normalizing a normal map doesn't change it's tangents. You can use handplane and generate a normal map for each target engine, these videos should help http://www.youtube.com/user/handplane3d/videos

    For specular

    Gloss controls how big or how small and tight the highlights are, a chrome ball would have a small tight highlight, a rubber ball would have a large soft highlight. Some plastics are very shinny glossy and reflective, and would have a tight highlight, other plastics are more matte. A polished metal ball would have a tight highlight, but sand-blasted metal would have a large highlight. So gloss is defined by the material and doesn't vary within the material much.

    Then there's the normal specular, where black would have no highlight, and white would have a bright white highlight. This is often mostly defined by what material you are looking at. Smooth metal and sand-blasted metal both have bright highlights. Don't be afraid to put very bright white specular values on black materials if the reflections are white.

    Then lastly you need to worry about color, which is a lot harder to explain, so here's an article http://www.manufato.com/?p=902
  • m4dcow
    Offline / Send Message
    m4dcow interpolator
    With normal it would have been a problem before, and would probably require re-baking in a specific app, but now with handplane you can move between different tangent spaces pretty easily.

    As far as spec and gloss, most engines and apps seem to do things slightly differently, personally when I'm texturing I'm checking things in marmoset as I go.
  • Demian Wright
    ZacD wrote: »
    Then lastly you need to worry about color, which is a lot harder to explain, so here's an article http://www.manufato.com/?p=902
    Many thanks for that article! The part about specularity was great, I've read about inverting the colors but I never really paid any attention to it. Now I realize how very wrong I have been doing things. Thanks again!
  • DireWolf
    We use xNromal and Maya transfer maps here. Seems to work fine with all engines our clients use so far.
Sign In or Register to comment.