What if Blender could seamlessly render Iray materials?
JClave
Posts: 64
I'm wondering if anyone here would be interested in a product that allows Blender Cycles to render Iray materials just like Iray or very close to it. (this is currently not possible. Due to imperfect material conversion, one has to invest a lot of time tweaking Blender materials)
Why would one use Cycles over Iray?
- Superior performance - the whole scene does not have to fit in VRAM because Cycles supports out of core rendering like Octane renderer
- More integrated features - Motion blur, composition toolings, more render pass options, etc..
This could be made possible because Nvidia recently open sourced MDL material spec. This is what Iray uses for defining and rendering materials in Daz studio. Theoretically, anyone could write a renderer that replicates Iray's results.
Post edited by JClave on
Comments
I don't know what it takes to transfer a Studio scene with the MDL material settings intact, but if it's pretty simple, it sounds like it would be really useful. It makes me wonder if Cycles could somehow be made to use as a render engine in Studio itself.
That sounds like a great idea, and I'd be really interested. Although I hope that if somebody makes a plugin/add-on like that for Blender they collaborate with Thomas Larsson and mcasual, and hopefully Teleblender and Diffeomorphic get native support for that add-on.
Sounds fantastic, if possible.
Very interested.
Yes, yes. Are you, @JClave, offering to write a plugin?
I would say 'conversion' is a misnomer. Because the way it would work is interpreting the same material file as Iray and rendering it according to the spec, which I hope Iray is faithfully following as well.
But I agree there could be some Iray specific implementation details that could make things look slightly different somehow. But that would be a much better starting place than how it is now with current Blender importer plugins (Diffeomorphic / Teleblender) where it seems like the materials aren't even half accurate for some scene conversions.
One possible way to solve the Cycles versioning issue:
merge the MDL change to Blender's main release. So that it will continue to be maintained.
Regarding Iray updates, Daz3d only gets updated only like once a year or so. I doubt much maintenance would be required to keep in sync with Iray side of things.
I found a snippet from Nvidia slides on integrating MDL to a renderer: http://images.nvidia.com/cn/gtc/downloads/pdf/vr/504 Phillip Miller Advanced Rendering Solutions from NVIDIA.pdf
At this stage, I'm entertaining the thought of it. I also strongly want this feature for my another project. I am hoping that another dev takes notice so that this is not a solo undertaking.
Implementing Daz3d plugin for Blender Cycles would be a lot of work. Besides implementing Daz side of it, Blender Cycles is currently tightly integrated to Blender and standalone version has been documented as being work-in-progress / experimental for over a year now. Also don't see enough incentive for developers to take on this task.
Material conversion sounds nice, but if you could get someone to help you get the cycles or better yet evee working in daz it would be better. I would pay for the material converter nonetheless because it would be usefull. I like all the nice tools the new blender 2.81 has so spending less time tweaking textures would be nice.
Just to point out that the diffeomorphic plugin DOES materials conversion for both cycles and eevee. It works fine for most iray materials. Actually it has some issues with sss and dual lobe specularity. These features are implemented but it's not a perfect match. Then things may improve if anyone is interested to contribute.
https://bitbucket.org/Diffeomorphic/import-daz/src/default/
So would you say material conversion is 80%+ accurate?
I'm confused with some people saying the conversion is good and other people (like @marble) saying the conversion is not accurate at all.
If someone could clarify why there's such disparity in opinion, that would be much appreciated.
As Nvidia joined Blender they already optimised their RTX for Cycle render. I am very interested (Cycle and Eevee both) if I don't need to leave DAZ Studio for render.
You may try it yourself, since opinions from others may vary depending on the personal expertise with the subject. There are people that can't even get the plugin installed and claim it doesn't work. That of course is not a plugin fault. Or they don't know cycles at all and are unable to set it up properly for rendering.
Also there are a couple of "tricks" to get the best materials from the plugin.
1) Inside daz studio convert everything to the iray uber shader before exporting. That's because the plugin works best with iray materials, while it doesn't like 3delight materials.
2) In blender set cycles as render engine before importing. That's because the plugin acts differently depending on the engine selected, and it works best with cycles.
3) In the plugin material options select auto material with bsdf for solid and guess for refractive. These are the best methods to match iray. As a technical explanation bsdf nodes are better than the principled shader because iray allows non-pbr materials to be defined, that are not possible with the principled shader.
Actually, I wouldn't want that. I'd want to be able to tweak the shaders with the cycles nodes. I'm still learning them, and a lot of the time they drive me nuts, but they're powerful :) At least easier to understand than shader mixer o.O
Laurie
This might be useful fodder for the discussion.
Standalone Cycles
Cycles Home Page
I'd pay money (good money) to use a different renderer in Studio, especially Cycles and/or Eevee; materials for one work with the other, by design.
I'd love to use Daz content natively in Blender. Not just converting it from Daz Studio, but simply loading and using it in Blender. This may not be possible for HD and dForce content from the beginning, but this may come later on. Diffeomorphic is a great first step, but every improvement is highly welcome.
It depends on what texture set you are using. One person could be using a G8F with the default G8F textures or maybe Victoria 8 textures which convert over with diffeomorphic fine. But someone else could be using G8F with textures from lets say bluejaunte or sublimelyvexed will needs its materials tweaked in blender because diffeomorphic didnt convert it properly because as Padone mentioned diffeo has issues with SSS and DLS which if i had to guess G8 or V8 textures dont have or if they do they arent as detailed or high res or whatever as bluejaunte or sublimelyvexed textures.
Iray in Daz works great but it is too much of a vram hog and then add Windows 10 and that kills what should be a great render engine. I have been moving stuff over to blender and it works well with diffeomophic plugin but it will not look as good as Iray. I have been teaching myself how to use Blender and it's node shader system works great but still not as easy as Iray in Daz studio. For now I just use daz studio Iray for main charcters and composite the rest via photoshop. I don't even try to do animation in daz iray anymore. Would like to see Opengl upgraded but everyone has given up on this software. Maybe Vulkan or Evee for daz studio would be great.
I have to add the disclaimer (as I have elesewhere) that I am not experienced with rendering in Blender - neither cycles not Eevee. So @Padone clearly has a jump start on me there. However, from my limited experience, to claim that Diffeomorphic conversion works out of the box would be a dubious claim at best. After following advice from @Padone and others I did not get close to the IRay quality with Diffeomorphic and Blender Cycles. Subjective, yes but try it yourself and see if you agree. I still find the Blender node system intimidating and I remain doubtful whether the investment in time or effort to learn it would be worth the potential gains. Right now my two priorities are a) to avoid dropping back to CPU which is a frequent and frustrating occurrence for me in DAZ Studio 4.12 and b) to render a scene quicker with similar quality. People claim that the out-of-core feature and the denoiser in Cycles (being so much better than IRay) suggest that both of my priorities may be met.
Okay, done more research on how Iray materials in Daz can be imported and rendered in Blender Cycles.
If anyone wants to entertain the idea of this feature in Blender, would like an opinion on the following proposal
From end users' point of view, the following changes will be made on how you use Blender for rendering Daz assets using Diffeomorphic import plugin:
https://cdn.discordapp.com/attachments/620726127450783771/655921319023607829/unknown.png
Regarding shaders created using Shader Mixer, only a subset of Shader bricks that are most commonly used will be replicated in this MDL integration.
This means only a fraction of Shader Mixer materials will be faithfully converted to Blender. The ones that aren't compatible will fall back to how Diffeomorphic currently converts those materials.
I plan to open source this custom Blender build for other interested developers to contribute
You and me both. I have tried exporting scenes to render in Vray, Maxwell and even Kerkythea which is free but it is such a hassle setting up materials. cycles may be a bit more effieient than IRAY, but since posers Superfly is a version of cycles, I'd rather go with something else.
Sounds interesting ... and very useful. I would prefer it to not be a custom build, but as long as it's usable with regular build installed it sounds great. Looking forward to it.
why a custom build? would also a plugin work in blender work?
Two main reasons:
Another long term goal I have is to customise the renderer further by adding more features to feed into my NPR engine later down the line, but I digress.
okay I see.
what about a pull request, adding your changes to the blender core,
I think forks should be always the last option
From the information I've been gathering, the core devs will only accept changes that fit their vision.
That explains why Blender Game Engine was deprecated in 2.8 release.
Also, they most likely won't accept PR merges from a nobody like me with no prior connections.
If I may ask, what makes you want this MDL feature to be usable with standard Blender release?
I thought most users here just want an alternative to Iray and don't care about most of the features that Blender provides
My fear is that at some point you'll lose interest in maintaining the Blender fork and we'll hang in the same version forever.
I'm also interested in using Blender features... better water and cloth simulation e.g.
If it's only the about the cylces render engine, why not write a cycles plugin for DAZ?
If writing a renderer plugin for Daz was as easy as writing a couple of script files.. hah
I'm not sure if you know of a renderer plugin called Reality. It allows full Daz integration to Luxcore renderer.
The developer for Reality recently open sourced the plugin and one of the reasons was that, it was too much maintenance effort keeping up with Daz updates.
By being totally separate to Daz studio, this eliminates the potential maintenance issue and also upfront development effort required.
You shouldn't have to worry about me abandoning the custom build cause of the following reasons:
Superfly is based on Cycles build that's at least a few years old. Since then, Cycles improved a lot and the following features can beat Iray when it comes to performance