Author Topic: runtime created graph is outputting norm map as a g8 grayscale  (Read 500 times)

Hello guys

I've set up a blueprint that duplicates a graph instance , alters some params then creates textures for every placed blueprint actor in the scene.  this is working splendidly except for the normal map.

here's a shot of the material which has been created at runtime (the textured planet on right) showing the normal map behaving badly



and here's a shot of the same graph showing its offline default output textures - behaving as expected.



i have it set up as described in the documentation, using the provided Switch On EsubChannelType switch node to assign the textures to the dynamically created material -



but although the graph instance generates a perfectly good normal map when not being used at runtime,  when the textures are created by the blueprint, the normal map is output as a g8 format grayscale file.

here's the dynamic material which is being created at runtime - note the blank white texture in the normal slot



and here's that texture in the texture previewer -



has anybody had this problem? the internet is drawing a blank on this.
hope you can help.  i've included the graph as an attachment here -

i'm using unreal version  Version: 4.14.3-3249277+++UE4+Release-4.14 , and i downloaded the substance plugin just a week or so ago so i assume its latest - no idea how to get the version number for that.

the graph was created with substance designer 5
Last Edit: April 21, 2017, 01:09:24 am

Hello Strangelet,
Awesome find! We will look into this and track down why this is not working as intended. Normal maps created from a graph instance should default to the new BC formats but this may have been overlooked for creation through blueprint. As soon as a fix is released with a solution to this issue, I will post an update here.  :D

Thank you for taking the time to report this in such detail!

Cheers!
Software Engineer, Integrations
daniel.stover@allegorithmic.com

any joy on this really, really infuriating problem?  its kind of a bummer that we can't generate normal maps at runtime.

any joy on this really, really infuriating problem?  its kind of a bummer that we can't generate normal maps at runtime.

Hello @strangelet3345,
We currently have a ticket in for this issue but previously we were unable to reproduce the same issue you are experiencing. Would you be able to send me your material.uasset, blueprint.uasset and the substance file that is producing this issue? :D
If so, my email is daniel.stover@allegorithmic.com.

Cheers!
Software Engineer, Integrations
daniel.stover@allegorithmic.com

here's a link to the unreal project - http://www.affuniverse.com/artdepot/private/Stranj/public/unrealprojects/AFFplanoidSystem.zip

this and the .sbs linked above should be all you need - thanks for looking into it, glad you can't reproduce this, i must be doing something wrong.

the project is stripped down - there's only one map in the maps folder, this contains placed instances of the blueprint, and you should be able to find the resources pretty easily from those if you load the map up.

i verified this running and reproducing the bug before i zipped it up for you.
Last Edit: June 03, 2017, 02:29:59 am

Hey strangelet3345,

I was able to reproduce your issue as you described and have entered the bug into our bug tracker. Thank you for reporting this.  :)

Would you be able to also send us the sbs itself so we can look into this further?
Integrations QA Analyst
keston.gregory@allegorithmic.com

it's attached in the first post ^

Hi @strangelet3345,

Firstly, I am sorry for such a late reply! This was a very interesting bug but after some digging, I have found the cause of the issue you reported and I have a solution for you. After diving through the creation of all of the textures, the normal maps were being created with the proper compression format. The only output that had the G8 grey scale format was the emissive outputs. It turns out that the normal maps were not actually the issue but the emissive maps were being set as the normal which overwrote the normal map.
 
This is due to the SetTextureParameter for a dynamic material being called in the case it is not using the texture / parameter we are setting. Switching the call to only occur when a texture is set to one of the channels being used seemed to have fixed this.

I have updated this and included screenshots below that show the updated blueprint and the results with the proper normal maps.

Results / default game view port view:


World Normal buffer view:


Blueprint changes to achieve this


Thank you for taking the time to report this in such detail. We will be updating our documentation in the near future to reflect this. I hope this helps and sorry again for the delayed reply!
Cheers!  :D
Software Engineer, Integrations
daniel.stover@allegorithmic.com