Home Creators Posts Import Register Favorites Logout
haven't archived this post yet. have a subscription? use the importer!

Videos

Downloads

  • Patreon_15_Files.zip

Missing 1 full-res photo, 1 file, as this post has not yet been imported.

Content

Hey guys! This months tutorial will be available Monday February 4th and is going to be a bit more technical. I notice a lot of people in the Redshift forums, and Facebook group ask about shader randomization. This tutorial will be covering several different techniques to randomize your shaders. We will look at randomization using the Material_Override system. We will also be building a custom HDA to randomize UV tile rotations with angle snapping, similar to the UV randomization option inside of Fstorm to randomize for example floor tiles. We will look at how to randomize textures from a folder of textures too.

We will cover Material Stylesheets and how we can combine all these techniques to override entire shaders, shader groups, shader parameters and more. We will also discuss some of the limitations currently with Material Stylesheets and when to use UserData with Shader Switches. Hopefully this tutorial answers any questions and opens up possibilities for people looking to randomize their materials across many objects. As usual the scene files are included below. (I did not include the full Alembic animation since its 5gb)

Thanks again for all the continued support! 

Files

Previews only

Patreon Course #15 - Advanced Shader Randomization & Material Stylesheets with Redshift

Hey guys! This months tutorial is going to be a bit more technical. I notice a lot of people in the Redshift forums, and Facebook group ask about shader randomization....

Comments

Anonymous

Apparently enter does not break lines. So I'm wondering if you could potentially cover UDIM workflows with RS in H, using the stylesheets. Here's a question as I'm watching (Wanted to ask before I forget so hopefully it's answered in this video but...) If say I have multiple materials set to a single object and then I set an override for material property to an entire object.. will that override change the parameter for all assigned materials to the object? (or is an object override on a per material basis?)

Anonymous

Also maybe a workaround for the cvex limitation if your trees were UV'd with UDIMs -- (could be totally wrong here) -- isn't there an expression that would allow the randomization of file-choosing for say the bark texture (similar to how you have the folder of numbered textures) -- treebark_color1.1003.jpg -- treebark_color2.1003.jpg -- so where 1003 would apply to the third udim tile (Theoretically where the bark areas are assigned in uv space) -- so then overriding an entire material but randomizing the file called for the respective tile... would that not allow for control on randomizing specific things on a per point basis for a scatter? Still learning H so forgive me if I'm off here.

Saul Espinosa

This would work if you have UDIM's setup but honestly thats a lot more work than just using a Redshift shader switch + rsUserDataInteger being controlled by point attributes on your scatter.

julien morneau

Awesome tutorial man! I didn't know about Material Stylesheets! Really powerfull! thanks

Saul Espinosa

Yea it's a very powerful system for overrides and randomization. Glad you learned something new!

julien morneau

For speed and best optimize workflow, do you recommend working and rendering using "packed primitive" or using instancing workflow?

julien morneau

Finally I think it just depend on what I am trying to achieve. On my last test, the instancing technique made more sense for some randomization compare to the packed primitive, but both of them were really fast at render time.

Saul Espinosa

It depends, once you start hitting very large numbers instancing and proxies process faster than cooking the packedprimitive for-each loops when you make adjustments to your scatter.

Gary Crane

hey Saul, have you run into any issues with the latest Redshift not rendering the material parameter overrides?

Luis Román

OMG, so much knowledge! Thanks, saul

Lucio Freitas

Great tutorial, as always. I learned a lot! Thanks. I would like to know if you guys have any alternative for Speed Tree, which is so expensive (at least for me). Is there any free or more affordable alternative? Cheers.

Saul Espinosa

SpeedTree can be expensive but it does have a perpetual license so it’s worth it once it’s yours it yours forever. That said there are several cheaper alternatives but they are not as robust or powerful. A nice $100 alternative is “The Grove” https://www.thegrove3d.com Or the free tool “TreeIt” http://www.evolved-software.com/treeit/treeit If your Houdini/VEX skills are really good you can also build a Tree tool directly inside of Houdini using L-Systems.

David Tavan

About randomization, is there a way to randomize uv for heightfield to break tiling in large terrains ? I know that there is texture bombing but I can't find a working example for houdini/redshift thx

Saul Espinosa

Just use the rsMaxonNoise with cell voronoi and pipe that into the texture rotations, maybe another noise model into the offset and also another noise model into the cell voronoi offset. This will break up shapes and tiling easily. Then you can layer up more shaders noises as needed.

Lucio Freitas

I tried to make another animation using this technique, but something is not working properly. I was able to randomize the texture, but the texture is updating each frame. I mean, each frame the same particle has a different texture. Do you guys know what is going on? render: https://vimeo.com/423010220 (password: randomtexture

Anonymous

amazing stuff Sau!l!!!