[ 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....
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.
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?
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 ]
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 ) 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?
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.
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.
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 )
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.
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
[ 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..
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!
[ 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.
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.
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 ]
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.
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
[ 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
[ 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?
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?
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.
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.
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!
[ 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
Thx a lot for that awesome little software and your dedication.
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.
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.
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
Hell, 1 Euro from everyone who used it and had a Paypal account, and you could buy a car
[ 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(
Replies
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....
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.
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 ) 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?
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.
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.
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.
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.
- 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
thank you.
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..
The Xn example is using 4x and the Max is using Hammersley. Very cool Jogshy!
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!
Is it possible to eventually add .psd support to the interactive model viewer?
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.
Collapse visible layers would be fine, and layer effects can be omitted imo.
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.
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.
cavity mapping PLEASE
[/ QUOTE ]
Sorry, I tryed that, but I couldn't understand how it works
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
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
[ 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?
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?
Personally Xnormal renders ambocc maps fast enough on its own
[/ QUOTE ]
Wait and see the new adaptative rendering method and the CUDA/GPGPU raycaster
Thanks
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!
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.
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.
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
Hell, 1 Euro from everyone who used it and had a Paypal account, and you could buy a car
And not since yesterday...
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.
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