JMY1000 / CyclesMineways

Importing script for Mineways into Cycles rendering engine for Blender
GNU General Public License v3.0
7 stars 1 forks source link

Mineways v5.09 Support #18

Open JMY1000 opened 8 years ago

JMY1000 commented 8 years ago

Mineways v5.04 made a lot of changes to how blocks are handled. Due to the way that CyclesMineways looks for strings to identify the proper shader, a lot of shaders got broken.

erich666 commented 8 years ago

For anyone else reading this issue: This is only if you turn on the "Split materials into subtypes" option (right?). CyclesMineways should work fine for the default "by type, not subtype" materials.

JMY1000 commented 8 years ago

Splitting into subtypes is something we very much do want to support though, as it allows for more "accurate" shading.

erich666 commented 8 years ago

Right! I just wanted to let any others viewing this issue that it's not Version 5.04 of Mineways that breaks things (which might warn people away from updating), it's only the new export option that's incompatible.

By the way, I tried to make it so that the subtype materials are easily identifiable: they all have the suffix "#" where the number is 1 to whatever, a data value. If there's some way in your script to search for "" and strip it and the rest off, Cycles could then handle any of the new materials by simply ignoring them for now, treating them as the "normal" version. For example, if you see "Stone1", you treat it as "Stone". You could then, as you and others find time, add in the specific materials you want to make nicer, e.g. [Stone1, Stone__2](http://minecraft.gamepedia.com/Data_values#Stone), etc.

I say all this unconstrained by actual knowledge, so ignore it if it makes no sense.

ThomasLynn commented 8 years ago

As it stands at the moment with the way we have coded it, blocks are either: a normal; solid block (default); a transparent block, a solid light block; or a transparent, light block.

As is stands, there is no way for us to, for example, make polished granite more shiny using this method. So currently the new feature isn't much use, but it opens some opportunities for us.

For this change to be useful, we need to implement a better way of storing block data (JMY1000 and myself have been talking about this from the beginning) which allows customisation for this sort of stuff (we should probably skype again at some point for this)

JMY1000 commented 7 years ago

5.09 includes support for Minecraft 1.11 and 1.12

Minecraft 1.11 support will require:

Minecraft 1.12 support will require:

erich666 commented 7 years ago

Thanks! I guess I should be warning you when I add new blocks. As it is, I'm certainly done for awhile.

JMY1000 commented 7 years ago

All the new blocks seem to be supported, since they have no special shaders.

JMY1000 commented 7 years ago

Lily pad shader doesn't seem to be working right, line 274 throws IndexError: tuple index out of range as output.inputs[0].links[0] is empty. Looks like water_shader(material, use_refraction, surface_blue, volume_blue, displacement_type, displacement_amount): forgets to set up the links. @ThomasLynn For now the lily pad shader will no longer link to the "general" water shader.

JMY1000 commented 7 years ago

Support seems to be updated, unless someone has issues with the changes I'll close this issue and merge into master.