Vray, after all these years, still have the same problems with alpha map in opacity, there is always a clipping occuring . here I’m using alsurface shader, and I get a nasty line in the opacity… on the left u can see the map.. and I’ll attach the map so you can test it.
ok here’s an update, if you use the invert function in mthe mtl editor of the bitmap, it fucks the alpha, making it having these jaggy edge. Otheriwse it’s ok if I i
zz0.p57uifg9o0fzznvert them in PS and save the image then use that one. But now, if I turn off the SSS mix in the alsurface, it renders perfectly, when I turn on the SSS, I get this NASTY liken… and even if I try to mix it at .99 it’s still nasty.What color transformation settings are you using for this map. Try inverse gamma of 1.0 (off)
Did you try Color space transfer function set to None or inverse gamma 1.0
Are you using a VrayBitmap to load the image?
I wouldn’t blame vray for this. Your map is 8 bit and as such cannot store a full range gradient. If you simply take your map into photoshop and gain up gamma/exposure you will see the same banding. This is what happens on raytracing level as well.
Keep in mind that in order to get absolute full range you have to use 32 bit full float, as 16 bit half float will still truncate the values
Ha! Good catch. Yeah 8bit textures or 8bit anything should be used very sparingly. Even though 8bits can easily represent the number of steps in a linear gradient that is 40 pixels wide, it doesn’t handle the distinct values near the edges very well if you have a Gaussian feather.
Another (additional) technique is to dither the ramp with noise. And use a larger texture with filtering in the render.
I would still check that the map is being interpreted as linear with the color transfer function, rather than having gamma applied. The fact that it looks different if you invert it in Max vs Photoshop makes me wonder if this is correct.
Trivia: I believe 16bit int gives you more discrete values in the range of 0-1.0 than 16bit float does (well, at least uniformly distributed, they give the same number of discreet values, but only about 1/4 of the discreet steps are between 0-0.5, not 1/2 as you might expect). 32bit float of course gives you over four billion distinct steps between 0-1.0, but likely over kill.
An example of 8bit with diffusion dithering below.
Obviously higher bit depths are better, as Morbid Angel points out above, but sometimes dithering is required even at higher bit depths if you are doing a hard color grade, or otherwise digging into the discreet values causing posterization as you demonstrated. It depends also on your texture filtering settings and your render settings.
Check it with the ALSURFACE materail with SSS fully on ( sss mix set to 1 ) . It won’t work correclty. The map I send you, regardless if it’s 8 bit, work’s perfectly in a standard vraymtl. There is a problem with alpha when usig ALSURFACE for years now..
So dithering might be a solution.
Try it with the ALSURFACE material with the SSS on , sss mix set to 1. It don’t work correctly.
Not seeing the issue here… Just slow render times.
See the attached scene. Perhaps you are doing something differently. This is using a non-dithered 16bit per channel PNG file as the gradient (included).
Test.zip (5.12 MB)
Did that test scene render with banding for you?
Note I set the color transformation to none.









