Filament may not be a good choice for Daz Studio
The main purpose of Filament project is for google can use 3D contents on mobile for VR, which doesn't request a good render result.
So, after some years' developing, Filament is still lack of a lot of features, and rejects some good features.
Which means, with Filament, Daz's realtime rendering will never as good as iClone or Eevee. Filament is not even as good as Cinema4d's OpenGL realtime renderer.
But, Daz Studio does need an open source real-time PBR rendering engine. So, if Filament is a not good choice, which one is?
Well, I did a search, turns out, there are not many choices for this. But, there is a good one!
WickedEngine: https://github.com/turanszkij/WickedEngine
It's a C++ cross platform game eninge, with some very good features, which Filament may never have.
* Screen space reflection (Filament rejects this feature)
* Voxel Global Illumination (A realtime GI, which is used by iClone, Unreal 5 and CryEngine)
* Realtime Ray tracing, path tracing (on GPU, not just reflection, also with shadow and AO)
* Area light
* Offer Both Deferred and Forward+ render pipelines.
(Deferred pipeline is used by all desktop games. Forward pipeline is used by mobile games.)
Well, it's a game engine with sound, bone, particle and so on. But with C++ API, you can only use it as a rendering engine.
-----
Everything is good to go. There is only one problem: Filament is backed by Google, and WickedEngine is created by one guy.
But, WickedEngine already has every good features for rendering, it reaches the best real-time rendering result on Desktop as Unreal, CryEngine and Eevee. Even if somehow WickedEngine stops development, you already get everything you need. So Daz Studio won't lose the real-time battle with Eevee or iClone.
But with Filament, nothing changes. Without Global Illumination and a good reflection, Daz Studio is still gonna lose this battle.
Comments
Well, I just find out, it support Windows and linux, but not mac for now.
But it also support Vulkan renderer, which is a cross platform standard like OpenGL. So make this project supporting Mac is possible.
I think it is better to get make it as a plugin, so Mac Users won't complain.
Filament wasn't mean to be an alternative to Iray for production renders. It's a PBR draw mode designed to provide an instant, real-time Viewport preview of your scene without having to wait for Iray to process anything.
yeah it runs rings around openGL
I use it to preview and rotate environment domes but please select another lesser draw mode when you decide to render
the ones getting crashes forget it is using your GPU
Filament also seems to borrow from Vulkan in some part. I do hope we'll be getting more features from the official standard, since not everything is implemented in Filament for Daz3D. That said the path from Daz to any other package is getting easier, for instance with Daz to Blender's Eevee.
There is a Daz Studio SDK that would allow integration with this renderer though, and the Daz filament implementation is on github, so a skilled programmer could perhaps look at the wickedengine and create a renderbridge.
if you want to suggest this to Daz you need to do so directly https://www.daz3d.com/help , though it is best to discuss things in the forum first with a feature request to try to make sure the idea works and to present it as coherently as possible.
offtopic but while potential developers are having a peeky peek
maybe someone could create an Effekseer plugin for DAZ Studio too
https://effekseer.github.io/en/
As a dev myself, one of the key considerations would be support. You don't want to be left in the lurch. So the older and more established it is the better. Personally don't know anything about Filament or Wicked Engine but Filament is Google isn't it?
There's a long list of things Google have started which have quietly disappeared later...
There is a whole loooong list here : https://killedbygoogle.com/
Yes but there's also a long list of things Google have started and continued on with. They just start a lot of things.
Irrelevant if they kill the thing you've committed to.
That's a looooong list... I guess you can't monetise everything....
As I understand Filament was supposed to be an alternative to OpenGL preview because it is fast and maybe even faster and relatively accurate.
but Daz totally failed in that task because you cannot use filament and iRay at the same time (maybe it could work if you have 2 GPU cards or an absurd amount of VRAM)
Even attempt to switch between those engines will likely cause a crash so you have to be extra careful to switch into OpenGL first.
I suspect that any other complex rendering engines may have similar problems because they use a Huge amount of VRAM and thus cannot work together with Iray and this is why they are quite useless for preview.
As I read the description of WickedEngine it is not rendering engine at all but rather a game engine(with lots of stuff like a physic simulator), so it is unclear how it would even fit here and how much tinkering it requires to make things work
In theory, it could be capable of replacing entire DAZ software.
The filament is not that bad either but Daz implementation lacks a lot of important functions for some unknown reason and this severely limits its use for final renders.
pity someone cannot compile us some shaders at least
https://google.github.io/filament/Materials.html#compilingmaterials/shadervalidation
That's literally true of anything you haven't developed yourself, including iRay.
I don't know how you came up with that idea but that doesn't seem right at all. I'm using a GeForce RTX 2060 with 6Gb of video memory and 16Gb of computer memory total and I have absolutely no problem at all with using Filliament as engine in the viewport while also using iRay as the main render engine.
For me, a preview,if it's 30% accurate or 60% accurate or 80% accurate to the final Iray render is all pretty much irrelevant. You place objects and you pose them in your scene prior to rendering, and whether you're 30% or 80% accurate to the final render doesn't really matter does it? The important stuff once that's all done is what you see in the final render in terms of materials and reflections and shadows and all of that. That's where you need real accuracy, to see if the materials and shadows and reflections and transparencies. And that is only accurate with the final render. And unfortunately, those are also the things that require 5 minute renders.
Now if any of these preview methods could get 90+% accurate to the final Iray render, then we're talking. But you always have to do an Iray preview to see how it will look. At least I do.
So yeah, I suppose it's nice to have a more accurate preview, but how much does it really matter? And let's face it, every rendering method is a shortcut, designed for different purposes. So it's just a matter of which shortcut works for your particular purposes.
So I'm kinda waiting for a preview that's like 90% of an Iray final render with realtime response in navigating the scene. And the ultimate will be that PLUS the abilitiy to move and pose objects in real time, and also not to bog things down when you have something like a Point At in the scene. But I'm not holding my breath.
It is quite relevant when in opengl viewport you cannot even properly see the positioning and when you turn on final iray render you notice that your characters are either floating on the ground or half of their shoe is rushed into the floor, or you see that there is a gap between things that are supposed to be touching each other. with certain textures, surfaces get so horribly dark that you may be unable to see what is going on in the viewport entirely. even if it is not entirely accurate it is also nice if you can at lest approximately estimate colors of your objects to have some clue on how dark or shiny they are without trying all that on iray
and it happens that many genesis models have very different skin darkness so when you put different characters on one scene that look like black and white.
finally working with the nicer image is much more pleasant by itself rather than looking at something that hurts your eyes for all hour
It is a mystery how you escaped that but it seems to be a pretty common problem. and I have it as well which prevents me from using filament entirely
my suspicion why you did not face it so far is that you are probably rendering very simple scenes with very small VRAM requirements although it is also prety strange how you can fit anything decent into 6GB especially if you use windows 10
In case this is helpful to someone...
What I do in all my scenes is to automatically add 4 distant light sources, coming from north, south, east and west (every 90 degrees). Below is an image. And in the texture shaded view, which I use often, those lights provide illumination on all sides so you can see everything. You can set their illumination to almost zero so they don't affect the final render, but the texture shaded view shows the lights very bright independent of that. I even made a script that adds these to the scene and puts them in a group, so that I can turn them all off by turning off the group. It helps me a lot to see everything in the scene from all angles, as well as get a good idea of surface colors, etc.
Oooppsss... forgot to include the image...
It can be imported into a project as a lib, so it can be used as a rendering engine. I tried that by setting a C++ project in windows, works very well.
Well, it is a game engine, so it comes with bones, sound, realtime physics. But you don't need that, just don't use them.
Hardly a mystery. You seem to be overlooking a very important issue here: the engines don't work side by side at the same time at all. They don't have to.
The moment you start rendering then the main viewport (basically every option within Daz Studio) becomes inaccessible because the program is busy rendering the image, you can't use other options anymore when the rendering process is active. This automatically implies that the viewport process also stops running no matter what engine you've been using (filliament, the commonly used texture shaded renders and even the wire renders) implying that whatever resources it has been using now gets freed in favor for the main render engine. All you're left with at that point is an image shown in the viewport but that doesn't require any resources, just like you don't need a render engine to display the image you generated with rendering.
The engines don't work side by side at the same time at all, they're simply taking turns so to speak.
As for the complexity of my scene... 5 actors ranging from Genesis 1 (2x), Genesis 3 (1x) and Genesis 8 (2x) either using a rather static backdrop as well as within a mansion I recently purchased. I'd say that's decently complex.
I tend to agree, Filiment is designed (at this phase) to be a better "at work" render than the standard shader, it gives a better working impression of your work, but not as 'heavy as trying to work with the full iRay load. I also thought I read that they are continuing to work it (filiment pbr), tweak it, for future improvement. Perhaps they are looking for ways to introduce a full, robust PBR option alongside iRay.
Final thought... Daz has never tried to break the market as a full CG force... they have from the start been a steady force as the premier place for upcomming cg artists to make their 'bones' and learn a broad spectrum exposure of the array of crafts. I've seen this from DS's infancy and been a avid supporter (if not quiet)
you can use filiment to better levels by adjusting the options provided in render and tone mapping .. do a iray render, cancel at any point and those options appear. Then adjust exposure (up) until you get closer to the iray tone and light fall of iray. it makes working with a lot of the finer adjustments easier than having to iray render, go back, tweak, render ,,, etc. Basically filliment allows you to work more realistically (to final render) with out the oppressive drag of doing the same work under iRay shading full time.
Does anyone know where is the filament plugin codes? I want to try to integrate my own custom render engine to daz3d but there is no sample code for this on the SDK.
Basically, you have to export the scene into a obj, then render that obj in your own render engine and show rendering result in your own window. That's most third part render engine does.
I am still no closer to solving the transparency issues, not through lack of trying as an end user
adding thickness and reversing normals doesn't help
adding dithering to texture maps doesn't help
I suspect it uses translucency for cutout opacity not masking but of course I have no coding skills and can only play with the shaders provided, in Unreal a masking brick will fix such issues but I am limited to the bricks and nodes DAZ has provided us in Shader Mixer and nothing I connect up does anything to improve it.
We need someone to create a brick that masks from scratch which I certainly cannot do.
posting here (as been conveniently necrorisen) as a few people who might be able to do so are in this thread, maybe the emissive (or at least an ambient glow shader that can be used with a point light) as well.
Filament is good for exactly one thing, as far as I'm concerned. Fast renders of BGs meant for post-work.