Stoney Jackson wrote: >>C' = C0*C2 + C1*(1 - C2) >> >>C0 is incoming texture, C2 is blend color, C1 is previous stage.
> Example (for one pixel): > Unit 0: > C0 = red = 1,0,0,1 > C1 = transparent black = 0,0,0,0 > C2 = texture0 = 1 > then > C' = C0 = red [...] > > Now Unit 1 comes along: > C0 = green = 0,1,0,1 > C1 = C' = red = 1,0,0,1 > C2 = texture1 = 1 > then > C'' = C0 = green No, because it is done on each color separately. for ( tex = 1, with previous stage red) C''[R] = 1*0 + C'[R]*1 = C'[R]; C''[G] = 1*1 + C'[G]*0 = 1; C''[B] = 1*0 + C'[B]*1 = C'[B] = 0 (because blue is in next stage); for ( tex = 0.5 (half green) ) C''[R] = 0.5*0 + C'[R]*1 = C'[R]; C''[G] = 0.5*1 + C'[R]*0 = 0.g; C''[B] = 0.5*0 + C'[B]*1 = C'[B] = 0 (because blue is in next stage); I think it is exactly what you want. When blend =1 this means, copy instensity to given channel. If blend =0, means copy channel from previous stage. C' = C0*C2 + C1*(1 - C2) If C2 = 1, then C' = C0 (texture) if C2 = 0, then C' = C1 (previous stage) with C2 set separately for each channel by blend color. Artur =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".