Im having some issues with borders on rendered transparency I am using 3dsmax.
I am rendering out some 3d into sprites, they are rendered with a transparent bg however its apparent that the frames all have slight bordering around the actual 3d model of the 3dsmax environment background color (pink in this case).
Is there something I can do to avoid this happening?
Thanks
Replies
Will your sprites be used against a solid background color always or varying colors? If it's a constant solid color, just match that in 3DSMAXs background color in the renders and you don't have to bother with this issue at all.
Will give it a crack !
Either way, try finding this feature, render with and without to see the effect.
Good luck.
In case you are applying a texture with transparency :
- Make your diffuse a flat bitmap (RGB), and make the surrounding color around the sprite fairly dark
- Create a separate blanc and white image for transparency, also without alpha channel. Load that one in the transparency slot.
In case you are rendering something and want to make it a sprite :
- render against a dark background,
- render another black and white pass for he masking, and keep that pass separate for compositing
Easy, and impossible to fuck up!
EDIT. Unless you could possibly turn off Alpha all together and having the rendered therefor not considering premultiplying at all I guess. Not familiar with Max.
Could you post a picture of what you are trying to achieve. For instance, you could be trying to do sprites with 'solid' masking, meaning that a pixel is fully transparent or is not, but you end up fighting against the antialiasing of your renders?
Please post pictres of :
-your current result, broken between RGB and A passes
-an example of the type of sprite transparency you are after.
Kodde : The reason why I always separate RGB from A in two images in every transparency work I have to do (either compositing, or applying transparency to a texture) is to avoid exactly this kind of questions :P I don't want to battle against file formats or terminology, so I just screw that and work the easy way.
Not sure what you mean with background mixed with border pixels. When rendering sprite from 3D you dont want any antialiasing on the edges anyways so why would you get any color mixing? You lost me here.
I have cropped and zoomed in a bit into a portion of the image, in 3dsmax i have my environment bg set to pink (255, 0, 255) and have rendered out the character as PNG with alpha, as you can see the character has a border the same color as the background.
What I am after is nothing surrounding the 3d model, just the model itself rendered out with what I assume would be a hard transparency? (although will this leave a jaggy result?)
(hopefully that makes sense)
on the RGB image with the pink background, you need to have PURE pink on the edges, not a blend of colors.
I dont know how to explain it more hehe. If you do sprites work, you dont want gradual transparency, you want a on/off mask,
So obviously your source render shouldnt have antialiasing on its ege
For best results use scenario 1 with a known background color which you match in your 3d app. Otherwise consider one of the other two.
Either way imo it's better to educate people as well as giving them a fix.
EDIT. Well actually, probably pretty similar to scenario 2. But having 1-bit alpha is more file size efficient, so it's an option to consider.
It seems like we are confusing alpha blending like in compositing package, with sprite making.
For 3D sprites I think its simple really : 1 - render the cutout with anti aliasing off ; 2- render the 3D with shadows, fancy materials and so on with anti aliasing on, using a background color consistent throughout the game ; Mask 2 with 1.
right? Or I am missing something?
Judging from your screenshots I think your would benefit from trying it out, it seems like your have the "premultiplied" effect going on there.
Maybe Critter Crunch? even that one Im not sure.
Honestly it would cause way to much of an headache.
Maybe Braid?