Jaakko Hyvätti wrote:
A' = As + (1 - As) * Ad
R' = As * Rs + (1 - As) * Ad

Example:
As = 0.5
Rs = 0.8
Ad = 0
Rd = 0.2

R' = As * Rs + (1 - As) * Ad = 0.5 * 0.8 + 0.5 * 0.2
Presumably that should be Rd there (and above too)?
   = 0.5

   This is incorrect, the correct R' is obviously 0.8, because Ad = 0, and Rd
   should not affect the resulting colour at all! The solution is to compute
   the R' by weighing the Rs and Rd with their alphas relative to resulting
   alpha:

R' = As/A' * Rs + (1-As/A1) * Rd

R' = 0.5/0.5 * 0.8 + (1-0.5/0.5) * 0.2
   = 1 * 0.8 + 0 * 0.2
   = 0.8
Are you suggesting this as an extension which will be forever restricted to software rendering? I think it would be incredibly hard for a hw vendor to pick this up. Weighting sounds like an expensive operation, and maybe worse all graphic chips (well I can only guess...) do the alpha and color blend simultaneously, which obviously isn't going to work.

Roland


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to