Це відео не доступне.
Перепрошуємо.
Houdini: 'Fixing' Megascans Displacement Issue w/Redshift
Вставка
- Опубліковано 1 чер 2020
- In this video I will show you how to 'fix' the displacement issue we have been facing when rendering Megascan assets inside of Houdini.
This method is still a work in progress but we will achieve results much closer to what we see in Quixel Bridge.
I am rendering in Redshift for speed, but the concepts should apply to Mantra/Solaris too.
We will:
- create a better resolution LOD0 mesh
- bake out custom texture maps
- convert the original displacement into something we can use
- learn about why there is an issue
Hi thank you so much for this video!
I was wondering myself why the LOD0 asset looked worse than a basic mesh with a mountain node hahah...
I also thought it had to be the colorspace, glad you confirmed my suspicion, and thanks for all the information you have pursued in this issue.
Please keep my posted if you bump into anymore amazing knowledge, subscribed! :)
20:37 pretty damning comparison
Thanks you for this tip. Its one of the problem inside houdini even if you are using mantra.
Damn, I just managed to take a look at the thread you posted. I always assumed the discrepancies were due to their intention of not being the same. I don't wanna do the same thing I have to do when importing my scanned objects!
feelthefears I know right! It’s quite annoying. I’m just in the middle of a project so will continue testing once it wraps. Seems to be more of a color space issue with the displacement map but there isn’t an easy way to convert it in Houdini like there is in nuke... will post another video once I figure it out!
@@breakyourcrayons Exactly, I tried to use some color corrections to get the approximate conversion between color spaces by bringing in a converted gradient in HOU and trying to somewhat match it but it's not good even for an approximation. I have a scene that I use for my scanned objects that creates LODs and appropriate maps but I'd rather avoid it here. If you can't find a solution our best bet would be to ask nicely Juanjo and get a RSutility node that converts between the spaces. And then Quixell can update their HDA for map assignment of we can modify it ourselfs.
This is so helpful.
Thank you!!
Thanks for the video, very helpful. Does anyone know how to go about the log to ln conversion without Nuke?
Glad you found it helpful. I have been busy with a production recently so my houdini work has been on the back burner. Gonna be back at it soon but I did find this: fnordware.blogspot.com/2008/11/cineon-converter-for-photoshop.html
I haven't tried this method in photoshop but it seems to do the same thing. Please let me know if it works out for you!
@@breakyourcrayons It seems to work pretty fine. Actually downloaded the Nuke demo to compare the results, they are the same. I was pulling my hair out over some maps becoming completely blown out when put through the plugin. However the same thing happened in Nuke's log2ln. Some of Quixel's maps are just completly borked I guess. Cheers man!
Very insightful and helpful, I too bumped into this problem recently having just started with megascans so thank you for sharing your findings. Have you found a way to convert the displacement map from log to linear inside Houdini COPs context?
Jose Rosas Hey Jose! Glad you found it helpful. Unfortunately I haven’t had a lot of time recently to test it further. Will do some more testing soon! I ran it by some very smart people I know and apparently converting anything log2lin in Houdini is quite difficult. The foundry are also very secretive about their log2lin node. Anyway, someone mentioned that using an offset will help. I tried this in nuke and it does do a very good job, just haven’t tried it in Redshift yet. Redshirts color operations are also a bit backward for me. Not super artist friendly unfortunately. Will post another video in the next few weeks with some more info and a tool for baking out custom LOD’s. All the best!
@@breakyourcrayons Nice to know there are some workarounds, I know little to nothing about color spaces but I did find this one post in the SideFX Forum, haven't had the chance to do proper testing yet, but I'll share it none the less if you want to take a look at it: www.sidefx.com/forum/topic/61397/
I believe that OCIO VOP node acts as a converter, however I am not sure if it is making an accurate conversion from log to linear. As I said, I've just been learning about color spaces. Anyway, looking forward to the next video and congratulations on your content, it's great!
Hey great video, im running into a issue where when I go to select my high LOD in the file node. Instead of seeing all the LODS separate LOD 1 LOD2 LOD 3, etc. I see only one option that is "LOD$F". Your help would be greatly appreciated
Hey bud, Houdini is picking the LODs up as a sequence. There should be a checkbox some where that will force houdini to see them as individual files. If I remember correctly, its in the bottom left area of the pop-up window you get when reading the file in. Hope that helps! You will need to makesure 'Highpoly Source' is enabled in Bridge in order to download the full res file.
Thank you for the help, I managed to separate the LODS. But even after checking off the Highpoly source option in bridge, there seems to be no high.fbx file in the file folder. Do some assets not come with a highpoly source or is there something simple i'm missing out on?
@@tyehansen5519 hmmm, thats pretty strange. I'm pretty sure all assets should come with a high poly source. Only other suggestion I have is checking the 'Highpoly Source' in Bridge then hitting, 'Redownload'. That should download the asset again plus the highpoly source. If there still isnt any high poly source then you may have to contact Quixel unfortunately. Try a different asset too just to check if it could be that specific asset you are trying to use. Goodluck!
@@breakyourcrayons awesome thank you for your help!
Is an HDA for this process still in the works?
Hey Cullen, Yes it is! My apologies for such a delay, I am currently moving into a new home and wont be able to upload it for another week. I will be releasing it asap!
@@breakyourcrayons WOOO!
Hey, while in my opinion even the highest poly LOD is prety low poly and I like the idea of creating a lod from high poly sources, are you sure there wasn't something wrong here? LODs from megascans look quite good when setup correctly.
feelthefears hey bud, from the tests that I was doing I believe that the only thing wrong is that the displacement map is in the wrong color space for Houdini/redshift. It appears to be in log space. Once you convert it back to linear like I did in the last 5 minutes of the video, only then did the displacement start working like I was hoping it would.
I’m going to try test it on the default LOD0 Quixel provides. I only realized this after I finished making the tutorial haha.
I made this video after I brought up this issue with Quixel 2 weeks ago, the post might shed a bit more light on what we were experiencing: help.quixel.com/hc/en-us/community/posts/360011345318-Displacement-not-working-in-Houdini-Redshift
Break Your Crayons thanks for the detailed reply. I must admit i haven't been rendering lods, only for basic tests. I've basically been using lods only for viewport and at render it switches to full res instanced geo. I find that the fastest workflow especially since i can just copy and paste lods like crazy and see full res in redshift.
Oh yeah, great video and thank you for bringing this to our attention.
feelthefears oh nice! That sounds like a good method. Are you baking out RS proxies from the highpoly source? Just wondering if you have experienced any crashes due to RS running out of GPU ram? I only have an 8gb card so I have to be careful about using too much memory/too many high poly assets. Anyway, thanks for the feedback! Really appreciate it.
Mmm... It is a grey=zero displacement map, pixel values of 0=displace inward, pixel values 127 (mid grey)=no displacement and pixel values of 255=displacement outwards.
Just offset the color on your texture in the shader and everything should sit in place correctly.
You are correct! Took me a while to figure it out in Houdini. Log2lin conversion changes how the map is interpreted, although it doesn’t always work as expected. Offset in this case is the way to go. Finally found the offset in the node reading the displacement map 👍🏻
@@breakyourcrayons That is great, I was asking a friend and he suggested Quixel probably do that the old fashion way (here showing a bit of my age) because of potential compatibility issues with some tools that can't handle negative numbers.
thanks! again, really helpful!
I have a question. in Renderman the default displacement 0 is 0.5.
the range is -1 to 1
you mentioned black would normally be 0.
is that an absolute / universal truth, or something that might change for any render engine's own standards?
is a negative displacement not wanted /not something that's usually done?
could you make a guess as to if 0.5 is referring to 50% brightness or a spacial dimension? and if should remap it?
no worries, if you're wrong that's no biggie.
Hey bud, I’m not sure if I understand, is the displacement amount set to 0.5 in Renderman? Or are you saying that 0 black is actually 0.5 in Renderman? If the range is -1 to 1, I would assume 0.5 is just the strength but again, I’m not sure.
Unfortunately I don’t think it’s a universal truth, I haven’t used Renderman, Arnold, Octane etc so I’m not sure exactly how they interpret color and values differently.
Negative displacement is totally possible and I’m sure people do use it. In a linear workflow though, I don’t expect the values to dip below 0. They can go above 1, but as soon as values become negative, that when I start to feel something is wrong.
@@breakyourcrayons Heyhey :)
Well maybe I shouldn't bother you with this, since you don't use Renderman. I'll just explain it, so you know what I meant, but don't worry, I'll bother someone else to get the solution.
I'll just have to try it out using your method.
I think I might have also just interpreted wrong.
So by default when you export from Bridge to Houdini, using Renderman the Pxr Texture node is piped into a Pxr Displace Transform Node. It's set to
Displacement Type:
Scalar
Displacement Height: 1 (range 0-1)
Displacement Depth: 1 (range 0-1)
Remapping Mode: Centered (other options are 'None' and 'Interpolate Depth and Height'
Displacement Center 0.5 (range 0-1)
I guess it' might just have been remapped, so it doesn't mean there is actual negative displacement going on.
If you could just elaborate as to what you mean by: "that's when start to feel something is wrong"?
It looks wrong, I'm assuming?
If it's linear is determined by the file type of the displacement map and it's color space?
@@metaturnal It depends on the map. You have a peek at the map and look at the values. Then you remap it. In redshift you remap 0-1 to -0.5 -0 0.5 at least with megascans since they don't contain negative values in their maps.
feelthefears okay thanks for clarifying!
I was a bit confused by the statement made in the video.
I’m a bit a noob but is it possible to bake my own map using substance with their textures?
Tydell Williams hey, to be honest, that should be possible. I haven’t used substance myself but I assume you could plug all the textures into the obj via substance, manipulate them and bake out new maps. Definitely give it a try
dude wtf. every video i find to help with this ads more confusion and headache. starting to loathe plugins inside houdini. my megascans plugin box does not look like yours as it doesnt have the CONVERT checkbox like yours does. smh.
tHIS A great Tut, but this defeats the idea of megascan, and they should fix it....
maybe this could be automated in some way?
Simone De Marzo thanks bud! Glad you liked the tut. In the middle of a project but hoping to automate it once I have time to figure it out :)
@@breakyourcrayons hey, did you mange to solve it? I'm gonna have quite a lot of assets in out next project so I've decided to create an asset for baking since this is unacceptable. Also, scattering seems to be broken, or worse than before so I've just createt a new setup for that.
feelthefears hey hey! No ‘real’ fix at the moment since log2lin color transformations in Houdini/redshift seem to be way harder than they need to be. But a friend of mine built a script/shelf button that will automate the process. Send me an email and I’ll pass it along! Keen to see your scatter setup too!
@@breakyourcrayons Great, I'll send you both scattering HDA, and the way I'm approaching instancing when manually placing objects, and a scene for baking displ with houdini. After I clean it up though, wouldn't want you to see my mess. I have to admit that using instanced high res proxies for everything seems to have a smaller ram footprint for me, than subdividing to that level. If you're not using hundreds of models, it works, and time to first pixel also seems quite faster.