# How can I keep straight alpha during rendering particles?

Rencently,I was trying to save textures of 3D particles so that I can reuse the in 2D rendering.Now I had some problem with alpha channel.Some artist told me I that my textures should have unpremultiplied alpha channel.When I try to get the rgb value back,I got strange result.Some area went lighter and even totally white.
I mainly focus on additive and blend mode,that is:

ADDITIVE: srcAlpha  VS  1
BLEND:    srcAlpha  VS  1-srcAlpha


I tried a technique called premultiplied alpha.This technique just got you the right rgb value,its all you need on screen.As for alpha value,it worked well with BLEND mode,but not ADDITIVE mode.As you can see in parameters,BLEND mode always controlled its value within 1.While ADDITIVE mode cannot guarantee.
I want proper alpha,but it just got too big or too small consider to rgb.Now what can I do?Any help will be great thankful.
PS:If you don't understand what I am trying to do,there is a commercial software called "Particle Illusion".You can create various particles and then save the scene to texture,where you can choose to remove background of particles.
Now,I changed the title.For some software like maya or AE,what I want is called [straight alpha].

## 1 Answer

Additive mode for premultiplied alpha is just 1,1 because you have already multiplied the src colour by alpha, hence the name.

• Thanks.That's what the technique does,it do give me the right rgb color.I don't think they have noticed the final alpha value,cause if you aim to render particles on screen,alpha is usually not important.The correct alpha I thought is you can have rgb divide it and then multiplied it.The process should be reversible,and have no data lost. In fact,I set source alpha to 1 and srcalpha for additive mode.1 makes the alpha too big,while srcAlpha makes it small. – April Jul 9 '12 at 1:24