9 votes
Accepted

Does premultiplied alpha give order independent transparency?

Premultiplied alpha itself does not give you order independent transparency, no. This page talks about how it can be used as part of an order independent transparency solution however: http://casual-...
Alan Wolfe's user avatar
  • 7,751
7 votes
Accepted

How does the Painter's Algorithm handle transparency?

The common way to render transparent polygons in a rasterizer is by use of Alpha Blending, which basically combines the colour of the supposedly transparent pixel with the colour of the background at ...
Christian Rau's user avatar
7 votes

Blur with alpha transparency

Two suggestions: If your data is from an image you are displaying on a standard monitor, the chances are it is (or you are implicitly assuming that it's) in sRGB format. This means that the colour ...
Simon F's user avatar
  • 4,171
6 votes

What causes blobby edges with alpha testing?

Let's consider the simplest case, where our texture is 2x2, with alpha values $a_{0,0}, a_{1,0}, a_{0,1}, a_{1,1}$. With bilinear filtering, the alpha at $uv$ coordinate $(x,y)$ is lerp(lerp($a_{0,0}$,...
TomKern's user avatar
  • 251
6 votes
Accepted

Please help me understand what happens as an image is faded to black in order to time-step particle fading

The basic equation for alpha blending is as follows: $$ c_\text{final} = c_\text{source} \cdot \alpha + c_\text{dest} \cdot (1 - \alpha) $$ Here, $c_\text{source}$ is the color of the thing being ...
Nathan Reed's user avatar
  • 24.7k
5 votes
Accepted

Why is this not a proper solution to handling transparency in deferred rendering?

PaulHK is right in what he said: you have to consider that there may be more than 2 transparent objects behind each other. Also, the idea of deferred shading is to render the geometry only once to be ...
Tare's user avatar
  • 1,541
5 votes

Does premultiplied alpha give order independent transparency?

From the proof of premultiplied alpha blending, there is an assumption that "the operator must respect the associative rule." So, it may lead to confusion of the order of process. Since this is not ...
Woohyun Kim's user avatar
4 votes

Does premultiplied alpha give order independent transparency?

Alan, Jim Blinn's compositing article also explains why premultiplied is the correct way to do any filtering of transparent images.
Simon F's user avatar
  • 4,171
4 votes
Accepted

Are there tricks for getting proper sort ordering on particle systems?

First option should be to make all particles able to go through the same pipeline. Perhaps with an uber shader. That way you can batch them all. Positive ieee floating point numbers can be sorted ...
ratchet freak's user avatar
3 votes
Accepted

Benefits of Clustered Shading vs Tiled Shading?

Both Unity's "Deferred shading rendering path" and "Legacy Deferred Lighting Rendering Path" work only for opaque surfaces. They both rely on a very similar set of passes: Render the opaque objects' ...
bernie's user avatar
  • 820
3 votes

How does the Painter's Algorithm handle transparency?

I would like to add that Painters' algorithm can be run from front to back with transparency provided your blending operations are associative. I would recommend reading Jim Blinn's "Compositing, Part ...
Simon F's user avatar
  • 4,171
3 votes
Accepted

Hard Shadows with Dielectrics/Transparency

"Refracting the shadow ray" is really the wrong mental model to use to think about this. After all, shadow rays are not real things; light rays are. Shadow rays are only used to test for ...
Nathan Reed's user avatar
  • 24.7k
3 votes
Accepted

using default depth buffer in off-screen framebuffer

Is it possible to bind default framebuffer's depth buffer to another framebuffer? First, you "attach" images to framebuffers. You "bind" objects to the context; you "attach" objects to other objects. ...
Nicol Bolas's user avatar
  • 9,697
3 votes
Accepted

Avoid having an opaque and transparent variant of each pixel shader

You can use a threshold set through a constant buffer to clip pixels (ie an alpha test): ...
Nathan Reed's user avatar
  • 24.7k
3 votes

Additive blending with weighted-blended order independent transparency

I have worked with this specific formula for the OVER operator but not with additive blending. I'll use the paper's nomenclature in the following discussion: $$ C_f = \frac{\sum_{i=1}^{n}C_i \cdot w(...
bernie's user avatar
  • 820
3 votes

Only show opaque objects behind transparent objects

The simplest solution is to do three passes: Render opaque meshes to a buffer (front-to-back, depth read/write on) Render translucent meshes to another buffer (front-to-back, depth read/write on) ...
Syntac_'s user avatar
  • 561
3 votes
Accepted

In what order to apply lighting and translucency?

When blending multiple layers, physically the "right" thing to do is calculating lighting on each layer separately, then composite the lit layers together. This way, for instance, you can have a ...
Nathan Reed's user avatar
  • 24.7k
2 votes

Equivalent of Fresnel law for determining transmitted/diffuse split

Physically, the origin of diffuse light is subsurface scattering, which happens continuously as light travels through a material. So, the proportion of transmitted light depends on the thickness of ...
Nathan Reed's user avatar
  • 24.7k
2 votes

Is it possible to override or disable blending per pixel

You seem to be using additive blending against its purpose. Additive blending is supposed to represent light from multiple sources being combined. It is not physically possible for one source of light ...
Nicol Bolas's user avatar
  • 9,697
1 vote
Accepted

How is HTML Alpha-Blending Different than GIMP?

I've discovered that GIMP (as of v2.10) has a new set of "default" blending modes which is what I used for creating my images. If, using the two images, I blend them using "legacy ...
Brian White's user avatar
1 vote

Create a transparent PNG

Like the color values, transparency is a piece of information that needs to be stored in an image. A quite common data representation is RGB with the channels red, ...
wychmaster's user avatar
  • 1,233
1 vote

OpenGL transparency - object behind is not rendered

It depends on the order of rendering. When first rendering the object which is far away and then rendering the closer object, the transparency will work. Otherwise when first rendering the close ...
Thomas's user avatar
  • 1,111
1 vote

How to draw depth-based volume in real-time

The issue is that an extra depth pass won't cut it. You may need an arbitrary number of extra depth passes. Just imagine the volume between two sinusoidal surfaces, you would have infinitely many ...
lightxbulb's user avatar
  • 2,083
1 vote

Why is this not a proper solution to handling transparency in deferred rendering?

A fundamental assumption of deferred shading is that there will be only one surface, and therefore only one depth, at a given pixel. An effect that contradicts that assumption will require some sort ...
Julien Guertault's user avatar
1 vote

Are there tricks for getting proper sort ordering on particle systems?

Sort the particles by Z each rendering cycle using an algorithm such as bubble sort which is good when element changes position in small steps. If the perspective does not change much the errors would ...
Andreas's user avatar
  • 359
1 vote

Alpha blending between two overlapping semi-transparent shapes

I used Stencil Buffer to fixing your problem , you need a way for checking overlapping two or more shapes ...
Seyed Morteza Kamali's user avatar
1 vote

Volumetric raycasting with transparent rasterized geometry

This is called "deep shadow mapping" and deep compositing. Sadly invented long before you had this ideas yourself); Now you are talking about implementing this idea specifically on a given ...
user18490's user avatar
  • 656
1 vote

Only show opaque objects behind transparent objects

Disclaimer: I haven't actually tested this but it seems feasible. I agree with trichoplax that what you want could possibly be expressed more clearly but, assuming I've understood correctly, would ...
Simon F's user avatar
  • 4,171
1 vote
Accepted

How to store > 256 transparency values in textures?

A normal argb image has 8 bits per channel and therefor 32 bits per pixel, the size of an integer. That's why it's stored in an integer a lot of the times. Floats are also 32 bits. Something that ...
bram0101's user avatar
  • 1,595

Only top scored, non community-wiki answers of a minimum length are eligible