Rendering flat(solid) colors on genesis

v-manv-man Posts: 0
edited December 1969 in Technical Help (nuts n bolts)

Hi, all

I m running into a problem that's driving me crazy and I can't figure it out. Basically I have a genesis model that is used as a cutout filter. For that I have marked certain areas of the body with certain solid colors. I followed some tutorial which said to set specular and diffuse to 0, and amp the ambient to 100% and then assign ambient colors. And that works fine if I use the lowest quality rendering setting (I think that's software render or something) in DAZ3D 4.6. For the example refer to pic 1 - you can see how body is in solid white, head is in solid green.

The problem starts when I try to use the high quality render feature (3Delight) - that's when the whole model suddenly turns black. (picture 2) with green eyes. Does anyone have any ideas what could be causing this. No settings between two images were changed, only the bar on the render quality window being raised from 1 to 4

daz2.png
552 x 475 - 22K
daz1.png
537 x 460 - 7K

Comments

  • Richard HaseltineRichard Haseltine Posts: 100,833
    edited December 1969

    In 3delight Ambient and Diffuse are multiplied together (which is logical, if you think of the ambient as simulating ambient light - a black surface will stay black however brightly it is lit). For this you want Diffuse 100% and white.

  • v-manv-man Posts: 0
    edited December 1969

    Hm, that makes sense, but when I tried it , it just ended up rendering the whole thing in gray color with shading (as in the pic)....

    daz1.png
    444 x 345 - 55K
  • JaderailJaderail Posts: 0
    edited December 1969

    For the Multi Zone Mat renders you wish to do there is NO reason to use the FULL 3Delight render engine unless you wish for the shading. If that is your goal only change the Diffuse in Surfaces Tab, then set to Matte as the Lighting Model in the Surfaces. This is what you get using the FULL render then.

    Help-002.PNG
    405 x 650 - 43K
    Help-001.PNG
    504 x 652 - 106K
  • JaderailJaderail Posts: 0
    edited December 1969

    Here is one Fully done closer to your First Image in the Full Render setting.

    Capture1.png
    503 x 652 - 107K
  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    I think the problem is elsewhere. Normaly for surface calculation ambiant and diffuse are not multiplied but rather added
    Color = Ambiant * ambiant strenght + Diffuse * Diffuse strenght + specular * specular stranght + reflection * reflection strenght and so on
    So for what you want put everything at strenght 0 and ambiant at 100 %

    Depending on the shader you use, the source of the problem may vary so it could be good to tell which shader is used

    If it's Ubersurface then make sure you have Ambiant Active on all surface

  • v-manv-man Posts: 0
    edited December 1969

    Jaderail said:
    For the Multi Zone Mat renders you wish to do there is NO reason to use the FULL 3Delight render engine unless you wish for the shading.

    The problem is - I need this filter to match pixel by pixel to the actual image that will be rendered. I have a post-processing app that will take the two images and use the filter one to cut out areas of the actual image. But it seems that there are small variations in pixels between the low-quality and high-quality render (probably due to different aliasing or something) that are enough to throw this off. (P.S. If you're wondering why I don't just hide the parts of the figure before rendering - I can't because that shows the inside of the part connected to it. For example, trying to hide forearm will show the inside hollow of the upper arm when the figure is facing you). So one thing I came up is with these masks for cutting the original image based on color and it works great as long as the renders match pixel-perfect between the mask and the actual image.
  • v-manv-man Posts: 0
    edited December 1969

    I think the problem is elsewhere. Normaly for surface calculation ambiant and diffuse are not multiplied but rather added
    Color = Ambiant * ambiant strenght + Diffuse * Diffuse strenght + specular * specular stranght + reflection * reflection strenght and so on
    So for what you want put everything at strenght 0 and ambiant at 100 %

    Depending on the shader you use, the source of the problem may vary so it could be good to tell which shader is used

    If it's Ubersurface then make sure you have Ambiant Active on all surface

    Yup, it's shader related... I just looked at the genesis model and it had "Multiple" as shaders. Then I looked at each of the surfaces and all of them except the eyes had some "onHumanSurface" shader. Eyes had dazDefault (and they are also the only thing in the original picture that actually had green color). If i change arms to dazDefault for example I can then get arms rendered in green , as the picture shows.

    Unfortunately it doesn't seem I can simply switch everything to dzDefault because there again seems to be slight diff in generated pixels in the final image, so if i try to run dzDefault rendered mask vs unmodified Genesis render the generated cutout is wrong. And if I try to render actual image with dzDefault I get some weird artifacts around legs (like texture seams or somethign like that). So I need to figure out why this onHumanSurface shader that makes it behave differently. Any ideas where to look for clues ?

    daz1.png
    475 x 447 - 9K
  • v-manv-man Posts: 0
    edited December 1969

    If it's Ubersurface then make sure you have Ambiant Active on all surface

    Just re-read this part of your post and this WAS it. What the heck... the surfaces did not have ambient active. But why does the low-quality render ignore this (and so does high-quality dzDefault) and renders my ambient color anyway, while onHumanSurface checks for it. Weird... But in any case this is resolved now - thanks everybody for your help !!!

  • Richard HaseltineRichard Haseltine Posts: 100,833
    edited December 1969

    The OpenGL render doesn't have access to uberSurface (which has only 3Delight code) so it substitutes the base shader instead (which does have a GLshaderLanguage version). As for the difference between the default shader and uberSurface, was there any displacement in use?

    Takeo.Kensei, in the default shader the Ambient is multiplied with the Diffuse (but apparently colour, not colour and strength) - that's why Poser materials that use Ambient to create a glow often don't work without editing in DS.

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    v-man said:

    If it's Ubersurface then make sure you have Ambiant Active on all surface

    Just re-read this part of your post and this WAS it. What the heck... the surfaces did not have ambient active. But why does the low-quality render ignore this (and so does high-quality dzDefault) and renders my ambient color anyway, while onHumanSurface checks for it. Weird... But in any case this is resolved now - thanks everybody for your help !!!

    I never use the DS quality preset but my guess is that the low quality is opengl render which doesn't read parameters on/off switch but only standard basic surface values. On high quality the complete shaders and light are evaluated by the 3delight render engine

    If you only need base ambiant color you can switch all your surface to DAZ default shader which doesn't have the switch and are enough to do the job

  • Takeo.KenseiTakeo.Kensei Posts: 1,303
    edited December 1969

    The OpenGL render doesn't have access to uberSurface (which has only 3Delight code) so it substitutes the base shader instead (which does have a GLshaderLanguage version). As for the difference between the default shader and uberSurface, was there any displacement in use?

    Takeo.Kensei, in the default shader the Ambient is multiplied with the Diffuse (but apparently colour, not colour and strength) - that's why Poser materials that use Ambient to create a glow often don't work without editing in DS.

    Ok didn't know that. I've just done the test and effectively the ambiant is multiplied by diffuse color but not diffuse strenght, so @v-man, if you use the default shader it may be good to put diffuse color at white (255,255,255) if getting the right diffuse color is important

Sign In or Register to comment.