Home Technical Talk

Normal Map Viewer?

polycounter lvl 17
Offline / Send Message
LoTekK polycounter lvl 17
Does anyone know of a decent standalone model viewer that supports normal maps? I've tried XNormal and the ATI viewer, but both refuse to work with my pos Intel GPU.

If there aren't any decent standalone viewers other than XNormal, which engine would be the easiest to get some decent RT views of a model with normal maps? Far Cry? HL2?

edit: Just for clarity's sake, normal maps do work the games I can actually get to run without bombing out, eg. FEAR, Far Cry.

Replies

  • Black_Dog
    Offline / Send Message
    Black_Dog polycounter lvl 17
    A guy called der_ton has written a modelviewer intended for doom3 models. If you can export to md5, ase, lwo or obj it might be worth a try.

    http://www.doom3world.org/phpbb2/viewtopic.php?t=1281&postdays=0&postorder=asc&start=0
  • LoTekK
    Offline / Send Message
    LoTekK polycounter lvl 17
    Sweet, that's exactly the sort of thing I've been looking for, thanks!
  • EarthQuake
    xnormal can generate normals, and load/view normals onto low poly meshes that are already created. Probablly much easier to use than der's program too and not restricted to d3 files. http://www.santyesprogramadorynografista.net/projects.aspx
  • LoTekK
    Offline / Send Message
    LoTekK polycounter lvl 17
    Yup, XNormal is generating my normals without a hitch, but as mentioned (albeit not very clearly), it bombs out when I try to load up the model viewer with my GPU. Definitely would be my weapon of choice, but beggars can't be choosers, and der's app works just fine, if more unwieldly than XNormal. smile.gif
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    LoTekK: why do you say XNormal is 'unwieldy'?

    I'm working on something similar at the moment, and I think it's slowly getting there. Tacit Math has been helping me out for usability, but more help/opinions would always be appreciated.
  • LoTekK
    Offline / Send Message
    LoTekK polycounter lvl 17
    Rick, I think you misunderstood. I meant der's model viewer is unwieldly compared to XNormal. While XNormal's interface is a bit garish, it's simple: select what you need, and bingo, you're done. With der's viewer, I need to putz around with the .mtl files, rename my textures, etc. (Though I'm assuming this is because that's how the Doom3 engine handles things?)

    That said, der's viewer likes my GPU more than XNormal does. tongue.gif

    Usability-wise, I'm not that familiar with normal map generation, so I won't be of much help there, but for viewing, I'd just say make sure the dialogue allows the user to specify all the various map files: diffuse, normal, spec, etc.

    Oh, and please have fallbacks for those of us stuck with Intel's half-arsed GPUs. Pretty please? tongue.gif
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    Thanks for your reply. I did indeed mean der_tons viewer, my mistake for saying XNormal.

    The fallback for lower GPUs is planned, but I'm not sure when exactly that'll surface. I think it'd probably be best if I made it run fine with all diffuse texture + normal texture on higher end before I go mucking about with lower end hardware. I'll certainly be in touch though.

    That said, if you could confirm that your GPU supports OpenGLs DOT3 extension that would definately be a help. If you have no clue what I'm talking about (:D) then that's ok as well, I have an idea on what the situation is.
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    I love Derton's viewer. I have been using it in the past because i was in the same situation - old computer, not much choices laugh.gif But now I still use it because I love it's strong, crisp rendering and the camera/lights control.

    Be sure to run some tests with it tho. At some point I downloaded its latest version and the nmap came out very strange (maybe he adjusted the viewer to render the doom3specific normalmaps properly. Yes they are different from the default 3dsmax type)

    I personaly use ASE files in it. Something to know, from an old tut I wrote:

    Open the ASE in a textediting program and look for the line where the material path is indicated. Delete the absolute path that fetches the texture map from your disk and replace it by the name of the TGA only. In my case I had :

    *BITMAP "D:\crea 3d\_tutoriels pior\tutoriel vieuxfou\doom3\tt.tga"

    And I renamed that to :

    *BITMAP "tt.tga"


    Hope this helps!
  • tacit math
    Offline / Send Message
    tacit math polycounter lvl 17
    seems to always be a trade off with these viewers. the card in my notebook won't support high quality display in maya. the card in my desktop will. but not with maya 8 apparently. and maya 7 doesn't handle mirrored normal maps well. xNormal works fine but is ugly as all hell and has a horrible nav scheme. as does der_tons viewer

    what rick's working on will be a clean and no fuss way to view one's model with it's maps. with camera controls consistent with what we use in our apps. maya. max. etc
  • LoTekK
    Offline / Send Message
    LoTekK polycounter lvl 17
    Rick, I just double-checked against the OGL Extensions viewer, and yup, my GPU has env_dot3 support. It pretty much has support for all OGL functions up to 1.4 (beyond that the support gets more patchy).

    Tacit, Rick, sounds very cool. smile.gif
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    luxinia also supports low-end hardware, however it currently requires doom3 like ascii material files + conversion into native fileformat (the model-viewer supports this so)

    http://boards.polycount.net/showflat.php?Cat=0&Number=164429&an=0&page=1#Post164429
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Wouah CB that's nice, I love how it handles the AO map. Is there any intructions available on how to simply convert a model for use in your viewer?

    Also, I managed to run the Luxinia demos full screen but could figure out how to increase the screen resolution of it. Any hints?
  • Tintin
    Offline / Send Message
    Tintin polycounter lvl 18
    If you guys have a copy of quake 4, you could try the modview on the console. supports all the materials in the doom 3 engine, but as pior said it needs doom 3 generated normal maps.
  • vahl
    Offline / Send Message
    vahl polycounter lvl 18
    the perspective is completely wacky tho in the quake4 model viewer, I'd rather use der_ton's
  • LoTekK
    Offline / Send Message
    LoTekK polycounter lvl 17
    Ah, right, I almost forgot about Luxinia. I had tried it out, and was quite happy with the demo showing off per's model, but I didn't find anything on getting a model converted so I could load it up in the engine (though to be fair, I only quickly browsed the scripts and did a cursory search on google).

    pior: navigate to <luxinia dir>\base\, and open config.lua. From there you can change the window_width and window_height properties.

    edit: Lol. I just noticed the "Options" button at the bottom right corner of the main menu window. Set your resolution there. tongue.gif
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    I'll make a quick tutorial on how to use the resource viewer + model conversion
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    http://www.luxinia.de/forum/viewtopic.php?p=444

    hope that helps, although the major problem will remain that tangent space normal maps heavily depend on the way the tangent space was constructed and how the renderer interpolates. I use nvidia's mesh-mender method by default, but likely you will have your stuff rendered differently... hence only with luck it might look fine.
    I will do a plugin for xnormal, so that they match.

    the other thing is, that one cannot change trivially the materials yet ( would require some console commands), nor store them to the file.

    easiest method is just create a material (oldtexturename.jpg.mtl) which will override the jpg, and there you can define other textures/shaders...

    I can guide you more, but would be cool if you could ask stuff on the luxinia forum (because likely others would ask the same)

    anyway, easier material assignment and so on is on the way, just will take a couple weeks, due to university work wink.gif
  • Joshua Stubbles
    Offline / Send Message
    Joshua Stubbles polycounter lvl 19
    Does your engine support world/local space normal maps as well?
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    yes, I just did more or less automatic support for the tangent space, but world space is actually even easier and more robust.

    basically you can write any shaders yourself, but I can provide a localspace shader, too.
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    The 'first' version of the viewer is available here.

    What I've been focussing on is drag and dropping .obj files onto the exe, and onto the running program. I think my loader is correct for all triangulated meshes, but if you guys would be willing to try a variety of meshes on it, I'd be very grateful.

    You can drag and drop .tga files which will be used as diffuse texture on the loaded model (the normalmap currently goes back to default which looks crap). Currently I only really support drag 'n drop on a model with a single mesh, anything past the first mesh will get the default texture applied to it. If you specify the model in the mymodel.xml file, it will allow you to work around this (this system is probably the next point of attention for me).

    There are two viewers included with this zip: OpenGL which is only diffuse texture (no normalmapping yet). And OpenGL2 which requires newer hardware and does diffuse+normal. You can switch between the two by editing settings.xml and setting the graphics type to 'OpenGL' or 'OpenGL2'.
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    Turns out I'd missed a few shader files for the OpenGL2 version of the renderer. I've updated the download and it should work now for both renderers.
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    I further patched the resource viewer of luxinia, and also added .fbx/.dae conversion

    one can change shaders/materials/textures...

    viewerassignmaterials.gif

    the patch and more infos here:
    http://luxinia.de/forum/viewtopic.php?p=451#451
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    After a bit more work, the low-tech renderer seems to be nearing the next milestone: normalmaps+diffuse. Get the latest version of that from here.

    This is only the OpenGL viewer, and it has a moving light to better show the normalmap. I'm not 100% positive my math is all correct, but it seems fine. This should run on anything that supports multitexturing and env_dot3 (which is pretty much everything in the past 5 years at least I think).
  • Michael Knubben
    Xnormal infuriates me. I download the installer, put it on my external HD, take it to my computer later on, and try to install it... it needs an internet-connection.

    I go back to see if there's a simple archive i can download: their website's down.

    GNNNHHhhhnnn.
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    Xnormal infuriates me. I download the installer, put it on my external HD, take it to my computer later on, and try to install it... it needs an internet-connection.

    I go back to see if there's a simple archive i can download: their website's down.

    GNNNHHhhhnnn.

    [/ QUOTE ]

    If you don't have the .NET 2.0 and Windows Installer 3.1 the installer will tyr to go Internet to find them. If you have Internet at work but not at home I recommend you to download at work:

    1) xNormal
    2) The .NET 2.0 runtime at http://www.microsoft.com/downloads/detai...;displaylang=en for x86 or http://www.microsoft.com/downloads/detai...;displaylang=en for the x64

    3) Windows Installer 3.1 ( lalalalal WGA ) at http://www.microsoft.com/downloads/detai...;displaylang=en

    At home:

    1) Install the Windows Installer 3.1
    2) Install .NET 2.0
    3) Install xNormal ( won't need internet then because you will have .NET and WI3 installed )

    The web was down because I'm changing my host to allow to store all the downloads in my server and not on those MegaUpload, Ultrashare, etc... Now should up again ( you can go santy.xnormal.net and xnormal.net in the future ).

    Hope it helps!
    ps: Im changing that crappy installer in a few... but all is Microsoft fault!
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    I've updated the viewer here. The low tech version was actually rendering incorrectly, which is now fixed, and you can set the background color in the settings file. Only minor improvements unfortunately.

    Included in the download are now three renderers which you can play around with if you feel like it. The first is the low tech OpenGL one (default), then there's OpenGL2 which is shader based, but pretty standard otherwise, and OGL2Deferred which is the start of a deferred shading approach.

    Please feel free to post any comments you may have.
  • JordanW
    Offline / Send Message
    JordanW polycounter lvl 19
    Hey rick that's cool, I look forward to there being a very minimal viewer that one could just load a mesh, a shader, and textures into, it would be very helpful to have a program like that to create textures with.
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    [ QUOTE ]
    Hey rick that's cool, I look forward to there being a very minimal viewer that one could just load a mesh, a shader, and textures into, it would be very helpful to have a program like that to create textures with.

    [/ QUOTE ]
    Well that's pretty much what this is supposed to be. Are you looking for specific features that this doesn't do (yet)?
  • JordanW
    Offline / Send Message
    JordanW polycounter lvl 19
    Rick, I noticed that it uses openGL shaders, and i'm not really familiar with those. I typically use .fx shaders and was wondering if this would be a feature that could be added? The ability to load your own shader would be really helpful.

    Also I noticed that the light moved different speeds dependant upon which renderer was chosen in settings.xml. It would be nice to be able to have this be a constant speed ( one of them I think it was just default OpenGL was extremely fast). In addition to this it would also be helpful to be able to move the light by hand as well.

    I really like the fact that the program is so light and doesn't try to do too many things. The smaller it stays the nicer it is to have it open with photoshop smile.gif
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    .fx is directx, he would need to manually parse the .fx for annotations and convert hlsl to glsl, basically too much work. cgFX would be the only gl/dx solution, or custom stuff (like most cross platform engines do). So for .fx a dx based tool would be the natural selection.
  • RickA
    Offline / Send Message
    RickA polycounter lvl 18
    More thanks for the comments.

    Yes, CrazyButcher is correct. Converting .fx to GLSL would be too much work. However, in addition to the provided renderers, I have also been working on a D3D9 one (although it's lagging behind a bit). For that renderer it should be relatively little problem to add it once it's up to date.

    Regarding the speed difference, this is indeed due to the speed at which the different renderers render; the low-tech one naturally runs faster than the higher-tech ones. I'll see what I can do about unifying the speed.

    I've already been thinking about moving lights manually, and have an idea for a simple system, but have yet to implement and test it.
  • Valandar
    Offline / Send Message
    Valandar polycounter lvl 18
    Sorry to dredge up a three week old thread, but does Rick's viewer support spec, too? And what format is needed?

    EDIT: Okay, just found that it should be OBJ, and the texes apparantly TGA. But when I edit the xml file to point to my model and diffuse/normal (in the same directory as the 'lohead'), it crashes. Is there a help file anywhere?
Sign In or Register to comment.