N64® Functions Menu
|
al - Audio Library Functions
gDP - DP GBI Macros
gdSP - General GBI Macros
gSP - SP GBI Macros
gt - Turbo Microcode RDP
gu - Graphics Utilities
Math - Math Functions
nuSys - NuSystem
os - N64 Operating System
sp - Sprite Library Functions
uh - Host to Target IO
64DD - N64 Disk Drive
|
|
gDPSetCombineMode [macro]
Sets the color combiner (CC) mode.
Syntax
#include <ultra64.h> /* gbi.h */
gDPSetCombineMode(Gfx *gdl, s32 mode1, s32 mode2)
gsDPSetCombineMode(s32 mode1, s32 mode2)
Arguments
- gdl is the display list pointer.
- mode1 is the CC mode for the first cycle.
- mode2 is the CC mode for the second cycle.
Explanation
Makes detailed settings regarding the input sources to the CC. Although the CC mainly combines colors, it also performs post-color space conversion processing and sets chroma keying (currently unsupported) and LOD processes. These combination and setup processes are accomplished inside the CC by linearly interpolating various input sources. For information about input sources, see Section 12.6.1, "Color and Alpha Combiner Input Sources.
In 1-cycle mode, mode1 and mode2 must be set to the same mode. In 2-cycle mode, although the CC can execute linear interpolation calculations twice, texture and shading color modulation processes are usually executed in the second cycle.
The following tables show the modes that can be used in 1-cycle mode and 2-cycle mode. However, other original modes can also be defined and assigned as arguments. For example, when the color is (a-b)*c+d and the alpha value is (A-B)*C+D, you can set:
#define G_CC_MYNEWMODE a,b,c,d,A,B,C,D
For details, refer to Section 12.6.5, "Custom Modes," in the N64 Online Programming Manual.
Modes that can be used in one-cycle mode:
PR: Primitive color, SH: Shading color, EV: Environment color, T0: Texture color, T0A: Texture alpha, K4 & K5: Color conversion constants
G_CC_**** |
Top: Color definition
Bottom: Alpha definition |
Function |
I, IA, RGB & RGBA format modulated textures |
MODULATEI |
T0*SH |
Multiply texture color and shading color |
SH |
Output shading alpha |
MODULATEIA |
T0*SH |
Multiply texture color and shading color |
T0*SH |
Multiply texture alpha and shading alpha |
MODULATEIDECALA |
T0*SH |
Multiply texture color and shading color |
T0 |
Output texture alpha |
MODULATERGB |
T0*SH |
Same as MODULATEI |
SH |
MODULATERGBA |
T0*SH |
Same as MODULATEIA |
T0*SH |
MODULATERGBDECALA |
T0*SH |
Same as MODULATEIDECALA |
T0 |
MODULATEI_PRIM |
T0*PR |
Multiply texture color and primitive color |
PR |
Output primitive alpha |
MODULATEIA_PRIM |
T0*PR |
Multiply texture color and primitive color |
T0*PR |
Multiply texture alpha and primitive alpha |
MODULATEIDECALA_PRIM |
T0*PR |
Multiply texture color and primitive color |
T0 |
Output texture alpha |
MODURATERGB_PRIM |
T0*PR |
Same as MODULATEI_PRIM |
PR |
MODULATERGBA_PRIM |
T0*PR |
Same as MODULATEIA_PRIM
|
T0*PR |
MODULATERGBDECALA_PRIM |
T0*PR |
Same as MODULATEIDECALA_PRIM |
T0 |
RGB & RGBA format decal textures |
DECALRGB |
T0 |
Output texture color |
SH |
Output shading alpha |
DECALRGBA |
T0 |
Output texture color |
T0 |
Output texture alpha |
I, IA, RGB & RGBA format blended textures |
BLENDI |
(EV-SH)*T0+SH |
Use intensity texture to interpolate between environment color and shading color |
SH |
Output shading alpha |
BLENDIA |
(EV-SH)*T0+SH |
Use intensity texture to interpolate between environment color and shading color |
T0*SH |
Multiply texture alpha and shading alpha |
BLENDIDECALA |
(EV-SH)*T0+SH |
Use intensity texture to interpolate between environment color and shading color |
T0 |
Output texture alpha |
BLENDRGBA |
(T0-SH)*T0A+SH |
Use texture alpha to interpolate between texture color and shading color |
SH |
Output shading alpha |
BLENDRGBDECALA |
(T0-SH)*T0A+SH |
Use texture alpha to interpolate between texture color and shading color |
T0 |
Output texture alpha |
RGB & RGBA format reflection highlights and specular highlights |
REFLECTRGB |
EV*T0+SH |
Reflect environment color and shading color when performing reflection mapping |
SH |
Output shading alpha |
REFLECTRGBDECALA |
EV*T0+SH |
Reflect environment color and shading color when performing reflection mapping |
T0 |
Output texture alpha |
HILITERGB |
(PR-SH)*T0+SH |
Use intensity texture to interpolate between shading color and primitive color when highlighting |
SH |
Output shading alpha |
HILITERGBA |
(PR-SH)*T0+SH |
Use intensity texture to interpolate between shading color and primitive color when highlighting |
(PR-SH)*T0+SH |
Use intensity texture to interpolate between shading alpha and primitive alpha when highlighting |
HILITERGBDECALA |
(PR-SH)*T0+SH |
Use intensity texture to interpolate between shading color and primitive color when highlighting |
T0 |
Output texture alpha |
1-cycle color conversion process |
1CYUV2RGB |
(T0-K4)*K5+T0 |
Convert from YUV to RGB in 1-cycle mode |
SH |
Output shading alpha |
Others |
PRIMITIVE |
PR |
Output primitive color |
PR |
Output primitive alpha |
SHADE |
SH |
Output shading color |
SH |
Output shading alpha |
ADDRGB |
T0+SH |
Add texture color and shading color |
SH |
Output shading alpha |
ADDRGBDECALA |
T0+SH |
Add texture color and shading color |
T0 |
Output texture alpha |
SHADEDECALA |
SH |
Output shading color |
T0 |
Output texture alpha |
BLENDPE |
(PR-EV)*T0+EV |
Use intensity texture to interpolate between environment color and primitive color |
T0*SH |
Multiply texture alpha and shading alpha |
BLENDPEDECALA |
(PR-EV)*T0+EV |
Use intensity texture to interpolate between environment color and primitive color |
T0 |
Output texture alpha |
Modes that can be used for mode1 in 2-cycle mode:
PR: Primitive color, SH: Shading color, EV: Environment color, T0/T1: Texture color, LF: LOD coefficient
G_CC_**** |
Top: Color definition
Bottom: Alpha definition |
Function |
TRILERP |
(T1-T0)*LF+T0 |
Trilinear interpolation. Use LOD level to modulate texels from two bilerp tiles. |
(T1-T0)*LF+T0 |
INTERFERENCE |
T0*T1 |
Multiply colors of texels from two bilerp tiles |
If the tiles have different frequencies, interesting interference patterns can be produced by sliding the s,t coordinates. |
T0*T1 |
Multiply alphas of texels from two bilerp tiles. |
Modes that can be used for mode2 in 2-cycle mode:
The functions are almost identical to those in 1-cycle mode. mode2 mainly uses the combined RGBA color resulting from mode1.
CM: Output of first cycle, PR: Primitive color, SH: Shading color, EV: Environment color, T0/T1: Texture color
G_CC_**** |
Top: Color definition
Bottom: Alpha definition |
Function |
I, IA, RGB & RGBA format modulated textures |
|
MODULATEI2 |
CM*SH |
The same as 1-cycle mode |
|
SH |
|
MODULATEIA2 |
CM*SH |
|
CM*SH |
|
MODULATERGB2 |
CM*SH |
|
SH |
|
MODULATERGBA2 |
CM*SH |
|
CM*SH |
|
MODULATEI_PRIM2 |
CM*PR |
|
PR |
|
MOCULATEIA_PRIM2 |
CM*PR |
|
CM*PR |
|
MODULATERGB_PRIM2 |
CM*PR |
|
PR |
|
MODULATERGBA_PRIM2 |
CM*PR |
|
CM*PR |
|
RGB format decal textures |
|
DECALRGB2 |
CM |
The same as 1-cycle mode |
|
SH |
|
I and IA format blend textures |
|
BLENDI2 |
(EV-SH)*CM+SH |
The same as 1-cycle mode |
|
SH |
|
BLENDIA2 |
(EV-SH)*CM+SH |
|
CM*SH |
|
RGB & RGBA format reflection highlights and specular highlights |
|
HILITERGB2 |
(EV-CM)*T0+CM |
The same as 1-cycle mode |
|
SH |
|
HILITERGBA2 |
(EV-CM)*T0+CM |
|
(EV-CM)*T0+CM |
|
HILITERGBDECALA2 |
(EV-CM)*T0+CM |
|
T0 |
|
HILITERGBPASSA2 |
(EV-CM)*T0+CM |
|
CM *CM |
|
2-cycle color conversion operations |
|
YUV2RGB |
(T0-K4)*K5+T1 |
Perform YUV-to-RGB conversion post-processing of texels processed by the texture filter (TF) in the first cycle |
|
0 |
The alpha value is 0 |
|
Others |
|
PASS2 |
CM |
Output color calculated in the first cycle |
|
CM |
Output alpha calculated in the first cycle |
|
Cautions
The following internal macro can directly specify these input sources:
gDPSetCombineLERP
For details, see gbi.h.
See Also
gDPSetCycleType
gDPSetEnvColor
gDPSetPrimColor
gDPSetTextureLOD
Revision History
2/1/99 Completely rewritten.
|
Nintendo® Confidential
Warning: all information in this document is confidential and covered by a non-disclosure agreement. You are responsible for keeping this information confidential and protected. Nintendo will vigorously enforce this responsibility.
Copyright © 1998-1999
Nintendo of America Inc. All rights reserved Nintendo and N64 are registered trademarks of Nintendo
Last Updated April, 1999
|
|