1Name 2 3 NV_blend_square 4 5Name Strings 6 7 GL_NV_blend_square 8 9Contact 10 11 Matt Craighead, NVIDIA Corporation (mcraighead 'at' nvidia.com) 12 Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com) 13 14Notice 15 16 Copyright NVIDIA Corporation, 1999. 17 18Status 19 20 Shipping (version 1.1) 21 22Version 23 24 Date: 1/14/2000 Version: 1.1 25 $Date$ $Revision$ 26 27Number 28 29 194 30 31Dependencies 32 33 Written based on the wording of the OpenGL 1.2.1 specification. 34 35Overview 36 37 It is useful to be able to multiply a number by itself in the blending 38 stages -- for example, in certain types of specular lighting effects 39 where a result from a dot product needs to be taken to a high power. 40 41 This extension provides four additional blending factors to permit 42 this and other effects: SRC_COLOR and ONE_MINUS_SRC_COLOR for source 43 blending factors, and DST_COLOR and ONE_MINUS_DST_COLOR for destination 44 blending factors. 45 46 Direct3D provides capability bits for advertising these additional 47 blend modes. 48 49Issues 50 51 None 52 53New Procedures and Functions 54 55 None 56 57New Tokens 58 59 None 60 61Additions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation) 62 63 None 64 65Additions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization) 66 67 None 68 69Additions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment Operations 70and the Framebuffer) 71 72 Two lines are added to each of tables 4.1 and 4.2: 73 74 Value Blend Factors 75 ----- ------------- 76 ZERO (0, 0, 0, 0) 77 ONE (1, 1, 1, 1) 78 SRC_COLOR (Rs, Gs, Bs, As) NEW 79 ONE_MINUS_SRC_COLOR (1, 1, 1, 1) - (Rs, Gs, Bs, As) NEW 80 DST_COLOR (Rd, Gd, Bd, Ad) 81 ONE_MINUS_DST_COLOR (1, 1, 1, 1) - (Rd, Gd, Bd, Ad) 82 SRC_ALPHA (As, As, As, As) / Ka 83 ONE_MINUS_SRC_ALPHA (1, 1, 1, 1) - (As, As, As, As) / Ka 84 DST_ALPHA (Ad, Ad, Ad, Ad) / Ka 85 ONE_MINUS_DST_ALPHA (1, 1, 1, 1) - (Ad, Ad, Ad, Ad) / Ka 86 CONSTANT_COLOR (Rc, Gc, Bc, Ac) 87 ONE_MINUS_CONSTANT_COLOR (1, 1, 1, 1) - (Rc, Gc, Bc, Ac) 88 CONSTANT_ALPHA (Ac, Ac, Ac, Ac) 89 ONE_MINUS_CONSTANT_ALPHA (1, 1, 1, 1) - (Ac, Ac, Ac, Ac) 90 SRC_ALPHA_SATURATE (f, f, f, 1) 91 92 Table 4.1: Values controlling the source blending function and the 93 source blending values they compute. f = min(As, 1 - Ad). 94 95 Value Blend Factors 96 ----- ------------- 97 ZERO (0, 0, 0, 0) 98 ONE (1, 1, 1, 1) 99 SRC_COLOR (Rs, Gs, Bs, As) 100 ONE_MINUS_SRC_COLOR (1, 1, 1, 1) - (Rs, Gs, Bs, As) 101 DST_COLOR (Rd, Gd, Bd, Ad) NEW 102 ONE_MINUS_DST_COLOR (1, 1, 1, 1) - (Rd, Gd, Bd, Ad) NEW 103 SRC_ALPHA (As, As, As, As) / Ka 104 ONE_MINUS_SRC_ALPHA (1, 1, 1, 1) - (As, As, As, As) / Ka 105 DST_ALPHA (Ad, Ad, Ad, Ad) / Ka 106 ONE_MINUS_DST_ALPHA (1, 1, 1, 1) - (Ad, Ad, Ad, Ad) / Ka 107 CONSTANT_COLOR_EXT (Rc, Gc, Bc, Ac) 108 ONE_MINUS_CONSTANT_COLOR_EXT (1, 1, 1, 1) - (Rc, Gc, Bc, Ac) 109 CONSTANT_ALPHA_EXT (Ac, Ac, Ac, Ac) 110 ONE_MINUS_CONSTANT_ALPHA_EXT (1, 1, 1, 1) - (Ac, Ac, Ac, Ac) 111 112 Table 4.2: Values controlling the destination blending function and 113 the destination blending values they compute. 114 115Additions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions) 116 117 None 118 119Additions to Chapter 6 of the OpenGL 1.2.1 Specification (State and State Requests) 120 121 None 122 123Additions to the AGL/GLX/WGL Specifications 124 125 None 126 127GLX Protocol 128 129 None 130 131Errors 132 133 None 134 135New State 136 137(table 6.15, page 205) 138 Get Value Type Get Command Initial Value Sec Attribute 139 ------------------------ ---- ------------ ------------- ----- --------- 140 BLEND_SRC Z15 GetIntegerv ONE 4.1.6 color-buffer 141 BLEND_DST Z14 GetIntegerv ZERO 4.1.6 color-buffer 142 143NOTE: the only change is that Z13 changes to Z15 and Z12 changes to Z14 144 145New Implementation Dependent State 146 147 None 148 149Revision History 150 151 None 152