M2/Rendering: Difference between revisions

From wowdev
Jump to navigation Jump to search
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 ? -