Home Technical Talk

xNormal - MASTER THREAD

17810121359

Replies

  • EarthQuake
    [ QUOTE ]
    For most game graphics, you composite an AO map on top of existing diffuse in your image software, to add a bit of detail, on top of Spec maps to help define edges and surfaces and the like, or use it as a mask for dirt and grime. I don't know of any engine that uses AO maps as a separate map. Oh, and these are just examples, and not the only things this can be used as, just that most of the time it's best used when making the other maps.

    [/ QUOTE ]

    Just for clarification, you want to multiply it, not overlay or something like that. And dont be afraid to actually edit the ambocc map, add some color, etc....
  • marley6611
    I just read through the entire thread and downloaded the program... it looks awesome! thanks for making this great tool, i struggled with nvidia's melody and maya's normal mapper for weeks before finding this and i can already tell it will be much better.
  • Jarrod1937
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    [ QUOTE ]
    i struggled with nvidia's melody and maya's normal mapper for weeks before finding this and i can already tell it will be much better.

    [/ QUOTE ]
    those are still great tools you should master.
  • Jay Evans
    Offline / Send Message
    Jay Evans polycounter lvl 18
    wow, just checked out the new version. Thanks for still updating it. The use your own cage feature should be nice.
  • dkorch
    Offline / Send Message
    dkorch polycounter lvl 17
    I apoligize if this has already been answered...just to big of a thread to read through to find this atm. with this program is it possible to take a highpoly, and bake its amb occ without unwraping it into an unwraped lowpoly?
  • EarthQuake
    Dkorch: yes indeed.
  • EarthQuake
    Results from the ambocc maps seem to be completely different in these new versions, and floating details now cast large shadows whereas before it was only faint(barely noticable) is there any way to set up the new version to render out maps like the older versions?
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    Results from the ambocc maps seem to be completely different in these new versions, and floating details now cast large shadows whereas before it was only faint(barely noticable) is there any way to set up the new version to render out maps like the older versions?

    [/ QUOTE ]
    I think is the AO cone angle. In theory, using an angle of 168.5216 degrees(or the half of that... i'm not good at maths tongue.gif ) you should get aproximately the same results than the older version.

    However I changed tons of things I barely remember! So perhaps is a bug. Try to play a bit with the AO cone angle and sure the AO distribution you are using was the same than the old one. Also try to change the raycaster ( they use different methods to calculate the AO, usually the faster one provides cleaner results ).

    In case the problems persist, could you send me two screenshots with the diferences please?
  • ironbearxl
    Offline / Send Message
    ironbearxl polycounter lvl 18
    Hey Jogshy,

    I'm getting pixelation on intersecting geometry in the normal mapper. I tried the different anti-aliasing modes and the blur plugin but the problem still persists. I can post an image if it helps.
  • katzeimsack
    Offline / Send Message
    katzeimsack polycounter lvl 18
    hmmm I have a strage bug with the new version

    All maps seem to move 3/4 pixels to the left..
    Also there are small black pixels on the ao map (like noise)

    I will upload some pictures after work.
  • EarthQuake
    I get problems like this constantly too, if you have enough memory you can just render twice as large and size it down in photoshop, that will fix it. It really would be nice to have some better AA that helped with intersections.
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    Ouch! I just detected a bug in the antialiasing and pixel offset.

    The black small points in the AO are usualy failed rays due to floating point numerical unstability. Try to change to the "memory conservative" raycaster, sometimes solves it ( the faster one is less precise usually to gain some speed )

    Gonna investigate a few.
  • EarthQuake
    New version dosent line up on the uvs correctly, i noticed this when i went back to the old version to render out an ambient map and it didnt line up, but i just now realized how it actually looks on the model.
    offset.jpg
  • ironbearxl
    Offline / Send Message
    ironbearxl polycounter lvl 18
    Thanks for the tip EQ. smile.gif

    I found a way to minimize the intersection problems!

    I split the floating high-poly geo into a separate obj and everything seemed to render much better.
  • EarthQuake
    render a seperate ambocc pass for just the floating details? hmmmm thats not a bad idea
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    Tomorrow gonna post the 3.10.2 with some bugs corrected
  • EarthQuake
    yayayay! with fixed offset stuff? I've been waiting to re-render some maps because the new version is much better quality.
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    xNormal v3.10.2 is released!

    - Completely revamped triangle rasterizer. Less artifacts, more accurate, top-left filling convention, a bit faster.

    - New "black sand pixels remover" image filter for AO/thickness/proximity artifacts.

    - Independent map filtering.

    - Increased maximum map size

    - Maps are rendered individually in memory ( much less RAM in use )

    - Solved tons of bugs ( including pixel offset and BMP scan lines )

    Working on GPGPU raycasters and DX10 driver if I get some money to buy a Geforce 8 ooo.gif
  • Joshua Stubbles
    Offline / Send Message
    Joshua Stubbles polycounter lvl 19
    You're a monster, Jogshy! Thanks for the update laugh.gif
  • Wokky
    Offline / Send Message
    Wokky polycounter lvl 17
    Jogshy, if I weren't on the other side of an internet I would kiss you right now. laugh.gif
  • Joao Sapiro
    Offline / Send Message
    Joao Sapiro sublime tool
    fucking awesome !!! what are the proximity maps ? they somehow get fudged , my normal is perfect, aO too , but the proximity gets fudged ill post an image smile.gif

    thank you.
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    fucking awesome !!! what are the proximity maps

    [/ QUOTE ]
    Is like a heightmap(depthmap) but cone-multisampled and frontal only. The meaning is just like if you put a camera in the lowpoly model and take an screenshot from there to the highpoly with multisampling. Basically gives you a smoother depth/height map.

    There is more info in the docs, but I don't know if has any use..
  • ironbearxl
    Offline / Send Message
    ironbearxl polycounter lvl 18
    Wow, the new AA is reall good even at 1x, I did a comparison:

    xn_max.jpg

    The Xn example is using 4x and the Max is using Hammersley. Very cool Jogshy!
  • Renaud Galand
    Offline / Send Message
    Renaud Galand polycounter lvl 19
    that rox man, thx alot !!
  • MoP
    Offline / Send Message
    MoP polycounter lvl 18
    really sweet stuff jogshy, many thanks! smile.gif
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    thx thx!
    Btw, i'm preparing the 3.10.3 with some AO improvements ( distance limit with cages, min/max values, etc ). Probably will be released the next week.
    If CUDA goes "gold" perhaps I will launch the 3.11.0 directly. You're gonna be shocked by this new GPGPU renderer speed! cya!
  • ironbearxl
    Offline / Send Message
    ironbearxl polycounter lvl 18
    Hey Jogshy,

    Is it possible to eventually add .psd support to the interactive model viewer?
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    Hey Jogshy,
    Is it possible to eventually add .psd support to the interactive model viewer?

    [/ QUOTE ]
    Yep, I think so... but what to do with the layers? Flat image with background color? Collapse visible layers? And the layer/adjustment effects could not be applied easy though. I can try.
  • ironbearxl
    Offline / Send Message
    ironbearxl polycounter lvl 18
    Much appreciated Jogshy! smile.gif

    Collapse visible layers would be fine, and layer effects can be omitted imo.
  • Eric Chadwick
    IMO, it'd be awesome to be able to choose which layers to use for which pass, so one PSD file could be used for the whole thing.

    You could offer three ways to use a PSD... let the user choose to have xNormal parse a specific naming structure (using named Groups of layers would be best for this) to automatically assign Groups of PSD layers to specific xNormal passes, or let the user manually pick the PSD layer(s) they want to use for each xNormal pass, or let the user decide to simply collapse all layers.

    Just some possible ideas.
  • Dr. Rudi
    Offline / Send Message
    Dr. Rudi polycounter lvl 17
    I'm having the same problem... for the life of me I can't seem to get a decent AO map. I've tried everything I can think of, the angle, renderer... the normal map is beautiful but the ao is posterized and has hard edged shadows. I'm wondering if it might be my card or something
  • EarthQuake
    I generally up the sampes to around 3-400, the default is totally useless for anything but testing.
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    I'm having the same problem... for the life of me I can't seem to get a decent AO map. I've tried everything I can think of, the angle, renderer... the normal map is beautiful but the ao is posterized and has hard edged shadows. I'm wondering if it might be my card or something

    [/ QUOTE ]
    By default it puts 24 rays/pixel. Thats only for testing purposes as Earth said. For a decent quality you will need between 300-1000 samples and use uniform or cosine distribution. Also there is a problem because you can't limit well the ray distance ( it uses infinite ray length atm ). To achieve the best image quality inside the 3D viewer sure you aren't using texture compression ( open the plugin manager, select the graphics driver, configure, uncheck the texture compression option )
    Feel free to send me your model and I promise to take a look if ya want ( or post an image here so can see the effect )

    In the next version i'm preparing the AO will be much better and faster. I'm changing all. Will release it probably the next week.
  • Joao Sapiro
    Offline / Send Message
    Joao Sapiro sublime tool
    cavity mapping laugh.gif PLEASE
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    cavity mapping laugh.gif PLEASE

    [/ QUOTE ]
    Sorry, I tryed that, but I couldn't understand how it works tongue.gif
  • Joao Sapiro
    Offline / Send Message
    Joao Sapiro sublime tool
    if someone is willing to do an example from Zbrush for Jogshy please!

    Also , do you think you could make an option to render AO from normal map detail in the lowpoly model ? that might be tricky i believe, max does that , but its a bit meh , so it doesnt hurt asking.

    Your a supa man jogshy , trabajas en esto de una forma que nunca hay visto joder ! felicitaciones laugh.gif
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    if someone is willing to do an example from Zbrush for Jogshy please!


    [/ QUOTE ]
    Yes please, something that a dumb programmer like me could understand! Can't use Zbrush btw, I have only 256Mb of ram and my cpu just explodes with those ubah programs blush.gif

    [ QUOTE ]
    Also , do you think you could make an option to render AO from normal map detail in the lowpoly model ? that might be tricky i believe, max does that , but its a bit meh , so it doesnt hurt asking.

    [/ QUOTE ]
    Do you mean to use a lowpoly mesh with UVs applied + a normal map file? But but... then the AO won't have much detail because you will use only 1k-2k triangles to hit with the rays... I don't see how I could generate AO from a lowpoly mesh with a normalmap applied... Is that the "cavity" map? blush.gif

    or do you mean to tessellate the lowpoly model with microtriangles(MTD without subdiv) and then apply the normal map + displacement map(which generates really a highpoly mesh) and then generate AO? confused.gif
  • EarthQuake
    Its some sort of hack that just takes the normals into account, i'm not really sure what it is but its definately not using the normals map as displacement and doing millions of polys. As far as i know atleast, that dosent seem like it would be any faster(and thats the whole reason for doing it that way). Personally Xnormal renders ambocc maps fast enough on its own, i usually end up setting up PSDs or exporting meshes into our game engine while its doing its thing, its not like it kills your productivity to render an ambocc map. Just remember to set the priority to "less than normal" in the task manager or it might eat all your system resources.
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    Personally Xnormal renders ambocc maps fast enough on its own

    [/ QUOTE ]
    Wait and see the new adaptative rendering method and the CUDA/GPGPU raycaster tongue.gif
  • EarthQuake
    Will the quality be the same(or close?) still? If so i will gladly bear your children.
  • EarthQuake
    Oh yeah, something per noticed, xnormal will trace the backside of polys, so you can get completely inverted wierd results if your cage is slightly too low, and sometimes if i'm rendering a model onto a plane(for alpha mapped decals) it will render upside-down.
  • MoP
    Offline / Send Message
    MoP polycounter lvl 18
    A way to make XNormal not trace against faces pointing in opposite directions would be awesome... unless it's an option I've missed. Basically the same as what EQ said there ... you sometimes get inverted results in some cases, I think if there was a way to not trace from low to high polys which are over 180 degrees different, the normal results would be even more consistent!

    Thanks smile.gif
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    Basically the same as what EQ said there ... you sometimes get inverted results in some cases, I think if there was a way to not trace from low to high polys which are over 180 degrees different

    [/ QUOTE ]
    Roger!
  • Noren
    Offline / Send Message
    Noren polycounter lvl 19
    Thx a lot for that awesome little software and your dedication. smile.gif
    I have to admit that I didn't read through the whole thread, so my question might have been answered already. Is it possible to render AO directly to the Highpoly without projection ? Because the Highpoly is mostly finished when it comes to baking and the lowpoly more prone to be changed. So basically the AO calculation would only need to be done once (without going through the hassle of setting up a cage or ray hit distances ) and baked into a bitmap which can be transferred to the lowpoly much faster if that is changed. Unless your new algorythm does some wonders, of course. wink.gif

    The Cavity map in Zbrush is basically a convexity/concavity map and from what I read that is already implemented ?
    It's clamped and you can set the "coverage". If that refers to the angle or narrowness/size of the scratches I don't know. There are two methods implemented into Zbrush: One render solution which is calcutlated from the actual polygons and one in Zmapper which calculates the Cavity from the Normalmap. The latter is rougher/simpler and has less details than the first. Probably cause it has to "guess" about the actual geometry but it might also be a resolution problem. All that you probably know already or better but perhaps it helps. smile.gif
  • Rick Stirling
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    Sorry, I just saw that you only have 256 MB RAM.

    Your software is free.

    Why not simply have a 'Please donate some cash to me' button? You already know it's being used by the world and his wife, surely some of us would give you cash.

    I would if you did a mac version wink.gif

    Hell, 1 Euro from everyone who used it and had a Paypal account, and you could buy a car smile.gif
  • Snowfly
    Offline / Send Message
    Snowfly polycounter lvl 18
    jogshy i'd gladly send a donation over, i'm pretty sure there are hundreds of people with no hangups about giving you something back in return.
  • Joao Sapiro
    Offline / Send Message
    Joao Sapiro sublime tool
    agreed. Most of my normal maps come from xnormal. You deserve something dont you think wink.gif ?
  • Noren
    Offline / Send Message
    Noren polycounter lvl 19
    There IS a donate button! laugh.gif
    And not since yesterday...
  • jogshy
    Offline / Send Message
    jogshy polycounter lvl 17
    [ QUOTE ]
    Is it possible to render AO directly to the Highpoly without projection ?

    [/ QUOTE ]

    Yep, in theory if you specify the same mesh file in the lowpoly and highpoly slots you could. The problem is that if you need to use cages with a 4M poly mesh you will have problems...Try to use the uniform ray distances in this case

    [ QUOTE ]

    The Cavity map in Zbrush is basically a convexity/concavity map and from what I read that is already implemented ?


    [/ QUOTE ]

    Well, the convexity/concavity is already implemented, but not sure if I did like it must be hehe... Atm is just the dot product of the lowpoly normal the the high poly normal hit surface one. Thx for the explanation, I will investigate a few more.

    [ QUOTE ]

    Sorry, I just saw that you only have 256 MB RAM.


    [/ QUOTE ]

    Yep, my computer suxs badly. Is a Duron 700 with very few RAM. xNormal has 7,8M C/C++ lines. Takes around 2h to compile with full optimization and 1h to compress/deploy. A pain.

    [ QUOTE ]

    Why not simply have a 'Please donate some cash to me' button? You already know it's being used by the world and his wife, surely some of us would give you cash.
    I would if you did a mac version


    [/ QUOTE ]

    There is a donate button in the two webs and in the support tab of the program hehe

    I really want to port it to the Mac, but the cheapest is 600$ ( MacMini basic ). Also want to experiment with DX10 and GPGPU raycasters ( if I get a new video card because I use a Geforce 2MX atm hehe ). To program the shaders of the 3d viewer were a pain. Had to use software emulation ( the D3d RefRaster and NVEmulate ) and are really slooooooooooooooooooow

    [ QUOTE ]

    I'd gladly send a donation over, i'm pretty sure there are hundreds of people with no hangups about giving you something back in return.


    [/ QUOTE ]

    Thx! I think that will be the 1st donation weee!
    The $$$ will be inverted back in xNormal. Basically I need to keep the Web hosting up, get some software to make tutorials(Camtasia or Captivate, a video recording card, etc) and get a new computer to compile this faster 8(

    Btw, gonna post the 3.10.3 this week.
  • East
    Offline / Send Message
    East polycounter lvl 14
    Sent you a €25 donation. I use this software all the time and I'm happy to contribute to the further development of it. Keep up the awesome work.

    Oh, and if the GUI gets a revamp to look more "standard", I'd be more than happy to send another donation *hint hint*

    Edit: Although a new GUI isn't all -that- important, I suppose. I'm sure the more technical issues take precedence smile.gif
17810121359
Sign In or Register to comment.