Moo-Ack-Productions / MCprep

Blender python addon to increase workflow for creating minecraft renders and animations
https://theduckcow.com/MCprep
GNU General Public License v3.0
267 stars 26 forks source link

Create water shaders options #163

Open TheDuckCow opened 3 years ago

TheDuckCow commented 3 years ago

This was actually already partially implemented, but then disabled in the last release to refine further. The goal is to provide out of the box options for water shaders. This would appear as yet another dropdown in the prep materials popup (although this popup is really getting cluttered now, another matter to consider). This would also be included in the settings for swap resource pack and generate materials from the material library panel. Different options could include:

Worth reaching out and seeing what shaders the community has created and used.

StandingPadAnimations commented 3 years ago

I think it would be a cool feature to add, especially if the water shader is simple and easy to add more to(since it would encourage people to learn nodes and make tweaks)

NiskoDT commented 2 years ago

So here is my node setup for my water. Also I included 2 renders. image githubsubmit githubsubmit1

StandingPadAnimations commented 2 years ago

Looks nice. I think the mapping nodes can be removed for Blender versions that have 4D noise textures. Also, it may be possible to use geometry nodes to add fake caustics which would benefit EEVEE (example: https://www.youtube.com/watch?v=C9iQKsShYIM) and Cycles if it doesn't gain MNEE

StandingPadAnimations commented 2 years ago

My concern however is the use of glass. In Blender, glass doesn't tend to look good if caustics are disabled, which is common in MC animation (for render time and noise reasons). Though this could be avoided with some transparency sorcery

NiskoDT commented 2 years ago

So I did remove the mapping node, and then turns out its still needed to scale down the waves size, because using the "scale" value on one of the either noise texture doesnt seem to look good. Also, the two renders that I give actually has a different scale, the bottom one is lower than the top one. Also, since it is connected to the "Object" mapping, before it was the "UV", but it messes with a mesh that has diifferent face size. Also, I was thinking that, should I make it into a group node? Because I think its better if I make it into a group node, so its easier to change the value.

TheDuckCow commented 2 years ago

Thanks everyone for the commentary in this thread! My reply is quite overdue - I'm going to shift this to the 3.4 release in favor of a sooner release of 3.3.1, which itself is quite overdue. Will likely seek feedback closer to the next release as I try to code in some options here.

TheDuckCow commented 1 year ago

As per tradition :/ kicking this down the road, as we need to get v3.5.0 out the door soon.

StandingPadAnimations commented 1 year ago

I have an RTX style water shader that MCprep can use if needed, it's public domain (well the material, not the water texture)

https://standingpadanimations.github.io/resources/#rtx-style-water-shader-v2

TheDuckCow commented 1 year ago

The shader part is "easy", more about making sure we create the right user experience for being able to select it. Not that it's a huge effort, just need to give it the proper time, and not worth delaying v3.5.0 - appreciate the shader though, that seems like a great thing to include once we work on this!

NiskoDT commented 1 year ago

My concern however is the use of glass. In Blender, glass doesn't tend to look good if caustics are disabled, which is common in MC animation (for render time and noise reasons). Though this could be avoided with some transparency sorcery

Lol after a year I finally understand this reply. So yeah glass isn't necessary, I actually followed a tutorial and decided to tweak it to my liking, and since I always have caustics enabled in my renders.

As for mapping nodes, I think that, for me atleast, messes up the scaling of the textures if it's not present.

NiskoDT commented 1 year ago

The shader part is "easy", more about making sure we create the right user experience for being able to select it. Not that it's a huge effort, just need to give it the proper time, and not worth delaying v3.5.0 - appreciate the shader though, that seems like a great thing to include once we work on this!

Ah I keep forgetting that there are people that still use 2.7 and anything below 3.0. If user experience is the key point, I was suggesting using the "Asset Browser", so then they can drag and drop the material to the object. But if there are still using versions below 3.0, then probably not

zNightlord commented 1 year ago

Ah I keep forgetting that there are people that still use 2.7 and anything below 3.0. If user experience is the key point, I was suggesting using the "Asset Browser", so then they can drag and drop the material to the object. But if there are still using versions below 3.0, then probably not

414, that introduce some "drag" operators depend on the newer MCprep UI tabs (Materials, Blocks/Meshswap, Mob/entity rigs) so yes, changing some of the current known UI for 3.0+