Making Normal Maps Less Noisy
Here is example(Out of the box not adjusted in any way) of the noise generate to a default normal map(single Photo), I've played with the post and pre filter (Normalization, blur, normal blur etc) and tried to adjust via the Diff map (high,Med,Low Detail) but I'm unable to generate a Normal map from a busy picture that has any "depth" to it.
In contrast if I generate a Normal from template LIB (Normal Map from photos) I get a very clean image that allows enhancement without introducing a lot of noise.
Are there any tricks you are aware of to help me produce a "cleaner" normal? (Or a guide to creating a normal map that is not a large object.) and still retain it's depth.
I have experimented with making a "washed out" normal and blending the 2, so far this has been my best guess solution but I loose a bit of depth doing it this way.
Thanks in advance
In contrast if I generate a Normal from template LIB (Normal Map from photos) I get a very clean image that allows enhancement without introducing a lot of noise.
Are there any tricks you are aware of to help me produce a "cleaner" normal? (Or a guide to creating a normal map that is not a large object.) and still retain it's depth.
I have experimented with making a "washed out" normal and blending the 2, so far this has been my best guess solution but I loose a bit of depth doing it this way.
Thanks in advance
Comments
Auto Edge: 0
High Detail: 100
Mid Detail: 0
Low Detail: 0
This will produce a normal map similar to creating it directly from the source texture. It might be a good place to start.
You can also adjust the intensity by selecting the Normal map and modifying the Intensity and Sharpness.
Below is the output with settings you suggested.
And this is with the intensity set to 10
And this is awsomebump's output
awsomebump to give enough depth without generating noise or
Shadermap to keep it's depth but reduce it's noise
I hope I'm making sense, Or not asking the impossible and it just due the logarithm that is used.
It "feels" like I'm not seeing the advanced button and can't control the pixel size that is used for map generation or something.
in the above examples
Shadermap "finds" the fine detail in the top of the larger rocks (gravel) but gets "tricked" by the smaller grains.
Awsomebump defines the shapes better and finds the individual grains but does not include the detail as well as shadermap in busy pictures.
(I know one is -x pics are for noise examples.)
Blended normal
And the other application is doing a PRE_3x3 (xNormal Method)
So if I want edge detail I use PRE_3x3 (xNormal Method) with Bias on Grey channel
BUT, the "Ground" height is raised and the rocks look pressed into the terrain. (as you have no control over color vs height.)
So in a nutshell this is my madness I purchased this program as I can generate some normal maps that are OK and blend them to be reasonable.
But I feel I'm missing something really basic ( I assume Shadermap has only the one Normal rendering method)
(Can I make a very detailed wish list )
Thanks for describing your issue better. It has given me some things to think about.
ShaderMap currently only uses one normal generation method. I am in the middle of SM4 development at the moment and will be adding at least one other normal gen method.
I was considering allowing the user to select the generation method from a drop down menu but now I'm thinking of placing the methods on top of each other and allow the user to control the blending between the methods. Each method would have its own intensity and blending values. Thoughts?
Feel free to add a wish list here. I always welcome feedback
Please provide me with the source image, I need to verify these results. That does not look like something ShaderMap would produce.
, I've kinda worked out a method for this problem I think which leads me to a couple of enhancements....
Yeay Masks!!!
I made a duplicate of the Diff and used a filter (brightness/contrast then cranked the contrast right up and lowered the brightness
saved that and loaded the mask on the normal which gave me a pin-holing for the normal generation to not go crazy
Idea 1: So in this scenario it would be nice to have load mask not just be able to load a file but attach to a node.
Idea 2: and if you attach a filter to a node then the filter controls should appear in the node properties box at the bottom so you know you have filters in place.
Idea 3: If you start from a color map you want to generate an albedo then diff etc etc if you setup under advance a node list how you want to generate your maps then to be able to save that as a workflow be nice (which can be accessed as a custom render from the main start page.)
3.1 Albedo generation should have a materials list like DDO 64x (wood, dirt, stone, steel, etc,etc so it can auto twiggle the level to get it in the ball park.
Idea 4: Height map (Diff Map?) generation and control is nice just the filter in it's properties (once I had to split the Diff into a normal diff and a blurry one and blend maps to show terrain profile as the normal when generated looked flat.) the blend map option took care of that though.
Idea 5: would like other generation methods for Normal maps the nvidia, gimp opensource version and xnormal have 4samples,3x3,5x5,SO3x3,SO5x5,PRE3x3,PRE5x5 I've not looked up who or what they are I just cycle through them and choose one that make the nicest normal (yes I'm bad)
Idea 6: PBR Workflow and games and stuff: Being able to generate a separate "Roughness" Map
Idea 7: the reason for the extra map is in the save option you can generate pre-made outputs like
File 1 RGB:Color alpha: OCC
File 2 RG: Normal B: Black Mask
File 3 R:Spec G:Roughness B: Black Mask
Similar to ddo
Idea 8: eyedropper to select lowest color and highest color (Awsome bump does this well)
So if you had a "CRAZY OVER THE TOP" map generator and a High detailed quiet one then you have many levels of compromise.(especially if you can modify the levels in each node) Maybe an advance/basic mode which hides the Node generation layers (I seem to use 9 to produce the images I Need for texture replaces in game.) 10 if I has a pre -generated roughness map(I use a twiggled Displacement map At the moment with terrain.) 11-12 if I need masq and dual diff maps
I use the word compromise as I'm new to all this but the best way to generate a normal from a pic (IMO) is the 4 Photos way. Much much nicer.
If i fiddle with a 4096 then 60%-80% chance of crash dependent on the amout of filter adjustments. no crash with lower resolution
My hope is I can generate a workflow (similar to 3d Modling nodes(just learning about that)) so I can just imput a pic tell it what material it is then BAM My stuff comes out.
At the moment it does things like monochromatic and smooth objects spectacularly but muddy/imprecise/shadowed pics no so much. (Unless I'm doing it wrong....and I hope I am...please let it be a tick box)
Normal
The subtle wormyness/noise in the "dirt" gets resolved with the blend with external normal and I get a "clean" end result.
The contrast controlled Diff map I'm using as a normal Masq has a post filter with Brightness/Contrast set -16/100
Albedo is 70 shadow 85 Hilight level 35
Diff is high 50-100 (just top of rock detail) mid 50 low 11
Normal intensity 450 sharpen enable mask pointing to saved version of contrast controlled diff (intensity needs to be high to "Push" through the pinhole filter.
Sorry didn't RTFM https://dl.dropboxusercontent.com/u/73053307/Pinhole.smtpl
Save the middle Diff and use it as the mask in the normal
http://www.nexusmods.com/fallout4/mods/17710/?
This is what I'm playing with, The pics are not with the "new" pin hole method but where the end results are going to.
That's a great idea. I'm adding it to the list
Easy enough. Listed.
Adding it to the list for research.
This is in the works already.
The main issue we are having for creating PBR Workflow is ShaderMap's dependence on an old DirectX ShaderModel limitation. Generating the maps is easy enough but creating a nice PBR render in the Visualizer has proven difficult. We have considered upgrading to a newer version of DirectX but in the long run that SDK is limited to only the Windows OS. So a new rendering platform is being developed on OpenGL 4+ and has been in the works for some time. You will eventually see ShaderMap tools targeting PBR Workflow and visualization on both Windows and OSX.
Have you looked at embedding maps with ShaderMap? Drag a node over another while holding the SHIFT key then release. This will bring up the channel mixer and allow you to combine individual channels into the parent node. The saved output map will contain the combined channel values.
I'll look into this. Adding it to the research list.
Thanks so much for your input,
_Neil
Adding it to the bug tracking list. The overall memory requirements of SM4 have been reduced 50+% compared to SM3. I am hoping this helps. I will see if I can create a repeatable crash using your suggested parameters for templates.
SOooo the dream is input a picture gets processed through a "PBResque" engine then spits out Maps.
Having the "engine" produce 100% "machine world" results is not required. I think, as the results I view in the materials viewer currently, is defiantly not how it looks in the FO4 game .
100% accuracy would only relate to a closed render environment. You could have a game mode vs realism to allow a workflow or map generation prior to "the big boys version" that creates a "true" render in the new OpenGL 4+ environment your building.
Heck, with Fo4 if you use their internal editor "GECK" and view an object it does not even show stretching or edge overlap issues.
Um just looked at it, It's cool but, (lots of these buts around here) in the senario I have I'd like to have a drag n drop for the channels as the diffusion map I use is
RGB : Color map
Aplha : Occlusion
So in this case I'd need to be able to "tie" the RGB of the Occ map and "drag" the result into the Aplha channel.
Currently it's red for red, green for green etc but if you try to copy multiple channels together it dosent work. maybe a greyscale filter so it converts the node(occ map in this case) into a single channel so you can drag that into the Alpha
So in my "dreams come true world" My Spec map would be constructed by
SHIFT draging Spec and Diff to a new node
applying greyscale filter to both
Then shift draging both to MY Spec output
Then using the RGB mixer to copy the single channels into the R and G respectively
and a tick box for unused channels to auto-fill via black/white tick-box or gradient bar
(hard to find. I'd think Support would be where I'd find tutorials not docs, tutorials tab)
I cannot find RGB mixer "Drag n Drop" feature described anywhere either (ShaderMap documentation not searchable?) maybe a tutorial on that so oddball people like me go AHHHHH
Because after learning about the Shift drag I'm using it alot while testing different things...
Seeing you said that was easy then I might push my luck.....
How about a CONTROL Node?
this magical node when created has an options box when pressed will open all viable node property sliders and check boxes.
You can then select the sliders you want to control from the different node properties (and to be able to name them) to create an overall control Node of slidy n clicky happiness.
These "seem" to help me fight the shadows in the picture to produce a more exaggerated normal without noise generation.
if I mess with normal generation to much I seem to somehow affect the shadow effect to make it like a light swith either on or off is this something that can be Adjusted (I get this issue with most normal generators if i "Crank them up")
Unshure if a glitch with that texture or my video card started failing..... ignore.
Reading 3d modeling forums they talk about double sided diffusion and normal maps or "flipping" them.
Is that something that can me done to texture maps? I've not been able to see any information anywhere if it's a thing.
If this is outside of the scope of the program (specific game related/render engine issue) is there a forum you can point me to who would know about this sort of question would be appreciated.