steve3d Posted October 14, 2011 Share Posted October 14, 2011 according to directx's document, alpha to coverage works with or without multisample, but I've checked the engine source, both directx10 and 11 needs multisample to enable coverage: codes in D3D10RenderState.cpp int alpha = (alpha_func != ALPHA_NONE && render->getAlphaTestLevel101() == 0 && engine.app->getMultisample()); same code also exists in D3D11RenderState.cpp, is that unigine must use multisample to enable alpha to coverage? or is there some other restrictions in unigine which makes alpha to coverage must enable multisample? I've googled some article it seems in opengl, alpha to converage need multisample to work, but in directx, it does work without multisample. Link to comment
steve3d Posted October 14, 2011 Author Share Posted October 14, 2011 check directx document: http://msdn.microsoft.com/en-us/library/windows/desktop/bb205072%28v=vs.85%29.aspx Link to comment
steve3d Posted October 14, 2011 Author Share Posted October 14, 2011 also there is alpha to coverage support in directx9: AMD's way to alpha-to-coverage http://developer.amd.com/gpu_assets/Advanced%20DX9%20Capabilities%20for%20ATI%20Radeon%20Cards_v2.pdf nvidia's way to alpha-to-coverage http://download.nvidia.com/developer/SDK/Individual_Samples/DEMOS/Direct3D9/src/AntiAliasingWithTransparency/docs/AntiAliasingWithTransparency.pdf Link to comment
frustum Posted October 14, 2011 Share Posted October 14, 2011 Alpha to coverage without multisampling looks ugly (huge transition area with dithering). Because of that they are disabled for non-multisampled renders. AMD and NVidia ATOC is used in the Direct3D9 render. Link to comment
steve3d Posted October 14, 2011 Author Share Posted October 14, 2011 yes, I just tried with that, alpha to coverage without multisampling, it is ugly, banding alpha effects :( Link to comment
Recommended Posts