M2/Rendering: Difference between revisions
Jump to navigation
Jump to search
m (→Blending Modes) |
m (→Blending Modes) |
||
Line 128: | Line 128: | ||
| ONE | | ONE | ||
| ONE_MINUS_SRC_ALPHA | | ONE_MINUS_SRC_ALPHA | ||
|} | |||
=== Fog Modes === | |||
Because blending modes adjust how color is applied during a draw call, fog color often has to be modified accordingly. The following fog modes were taken from Mists of Pandaria (build 15662). | |||
{| class="wikitable sortable" | |||
|- | |||
! Fog Mode | |||
! Action | |||
! Blending Modes | |||
|- | |||
| 0 | |||
| Disable fog logic in shader | |||
| - | |||
|- | |||
| 1 | |||
| ? possibly: use fog color without changes ? | |||
| <tt>Blend_Opaque</tt>, <tt>Blend_AlphaKey</tt>, <tt>Blend_Alpha</tt> | |||
|- | |||
| 2 | |||
| Override fog color to <tt>0x000000</tt> (black) | |||
| <tt>Blend_Add</tt>, possibly: <tt>Blend_NoAlphaAdd</tt> | |||
|- | |||
| 3 | |||
| Override fog color to <tt>0xFFFFFF</tt> (white) | |||
| <tt>Blend_Mod</tt> | |||
|- | |||
| 4 | |||
| Override fog color to <tt>0x808080</tt> (half white) | |||
| <tt>Blend_Mod2x</tt> | |||
|- | |||
| 5 | |||
| ? submerged camera related ? | |||
| - | |||
|- | |||
| 6 | |||
| ? liquid plane related ? | |||
| - | |||
|} | |} |
Revision as of 19:09, 27 November 2016
Blending Modes
Wrath of the Lich King and Cataclysm do not use separate alpha blending. Later expansion clients likely do use separate alpha blending.
Blend_BlendAdd was added after Cataclysm.
Values for functions match OpenGL, but each has a D3D equivalent.
Mode | Blending Enabled | Src Color | Dest Color | Src Alpha | Dest Alpha | |
---|---|---|---|---|---|---|
0 | Blend_Opaque | Disabled | ONE | ZERO | ONE | ZERO |
1 | Blend_AlphaKey | Disabled | ONE | ZERO | ONE | ZERO |
2 | Blend_Alpha | Enabled | SRC_ALPHA | ONE_MINUS_SRC_ALPHA | ONE | ONE_MINUS_SRC_ALPHA |
3 | Blend_Add | Enabled | SRC_ALPHA | ONE | ZERO | ONE |
4 | Blend_Mod | Enabled | DST_COLOR | ZERO | ? | ZERO |
5 | Blend_Mod2x | Enabled | DST_COLOR | SRC_COLOR | ? | SRC_ALPHA |
6 | Blend_ModAdd | Enabled | DST_COLOR | ONE | ? | ONE |
7 | Blend_InvSrcAlphaAdd | Enabled | ONE_MINUS_SRC_ALPHA | ONE | ONE_MINUS_SRC_ALPHA | ONE |
8 | Blend_InvSrcAlphaOpaque | Enabled | ONE_MINUS_SRC_ALPHA | ZERO | ONE_MINUS_SRC_ALPHA | ZERO |
9 | Blend_SrcAlphaOpaque | Enabled | SRC_ALPHA | ZERO | SRC_ALPHA | ZERO |
10 | Blend_NoAlphaAdd | Enabled | ONE | ONE | ZERO | ONE |
11 | Blend_ConstantAlpha | Enabled | CONSTANT_ALPHA | ONE_MINUS_CONSTANT_ALPHA | ? | ? |
12 | Blend_Screen | Enabled | ONE_MINUS_DST_COLOR | ONE | ONE | ZERO |
13 | Blend_BlendAdd | Enabled | ONE | ONE_MINUS_SRC_ALPHA | ONE | ONE_MINUS_SRC_ALPHA |
Fog Modes
Because blending modes adjust how color is applied during a draw call, fog color often has to be modified accordingly. The following fog modes were taken from Mists of Pandaria (build 15662).
Fog Mode | Action | Blending Modes |
---|---|---|
0 | Disable fog logic in shader | - |
1 | ? possibly: use fog color without changes ? | Blend_Opaque, Blend_AlphaKey, Blend_Alpha |
2 | Override fog color to 0x000000 (black) | Blend_Add, possibly: Blend_NoAlphaAdd |
3 | Override fog color to 0xFFFFFF (white) | Blend_Mod |
4 | Override fog color to 0x808080 (half white) | Blend_Mod2x |
5 | ? submerged camera related ? | - |
6 | ? liquid plane related ? | - |