LO.

I'm looking at the register combiner extension at the mo, and I seem to understand it all, except what equations are done on the variables.

This is what the NV spec says, but it looks horrendously complcated.gcc1rgb = [ Argb[r]*Brgb[r], Argb[g]*Brgb[g], Argb[B]*Brgb[B] ]

gcc2rgb = [ Argb[r]*Brgb[r] + Argb[g]*Brgb[g] + Argb[B]*Brgb[B],

Argb[r]*Brgb[r] + Argb[g]*Brgb[g] + Argb[B]*Brgb[B],

Argb[r]*Brgb[r] + Argb[g]*Brgb[g] + Argb[B]*Brgb[B] ]

gcc3rgb = [ Crgb[r]*Drgb[r], Crgb[g]*Drgb[g], Crgb[B]*Drgb[B] ]

gcc4rgb = [ Crgb[r]*Drgb[r] + Crgb[g]*Drgb[g] + Crgb[B]*Drgb[B],

Crgb[r]*Drgb[r] + Crgb[g]*Drgb[g] + Crgb[B]*Drgb[B],

Crgb[r]*Drgb[r] + Crgb[g]*Drgb[g] + Crgb[B]*Drgb[B] ]

gcc5rgb = gcc1rgb + gcc3rgb

gcc6rgb = gcc1rgb or gcc3rgb

gcc1a = Aa * Ba

gcc2a = Ca * Da

gcc3a = gcc1a + gcc2a

gcc4a = gcc1a or gcc2a

Can anyone tell me what is going on here?

Then whats all this bit about?

if <portion> is RGB, out1rgb = max(min(gcc1rgb + cbiasrgb) * cscalergb, 1), -1)

if <portion> is ALPHA, out1a = max(min((gcc1a + cbiasa) * cscalea, 1), -1)

otherwise <portion> must be RGB and

out1rgb = max(min((gcc2rgb + cbiasrgb) * cscalergb, 1), -1)

If the <cdDotProduct> parameter is FALSE, then

if <portion> is RGB, out2rgb = max(min((gcc3rgb + cbiasrgb) * cscalergb, 1), -1)

if <portion> is ALPHA, out2a = max(min((gcc2a + cbiasa) * cscalea, 1), -1)

otherwise <portion> must be RGB so

out2rgb = max(min((gcc4rgb + cbiasrgb) * cscalergb, 1), -1)

If the <muxSum> parameter is FALSE, then

if <portion> is RGB, out3rgb = max(min((gcc5rgb + cbiasrgb) * cscalergb, 1), -1)

if <portion> is ALPHA, out3a = max(min((gcc3a + cbiasa) * cscalea, 1), -1)

otherwise

if <portion> is RGB, out3rgb = max(min((gcc6rgb + cbiasrgb) * cscalergb, 1), -1)

if <portion> is ALPHA, out3a = max(min((gcc4a + cbiasa) * cscalea, 1), -1)

Any help understanding this would be appreciated.

cheers,

Nutty

[This message has been edited by Nutty (edited 07-18-2001).]