I try to implement something called Opacity Shadow Mapping by which it
is possible to calculate shadows of semi-transparent
objects. In order to do this, I have to render the scene several times
with special clipping parameters. After rendering,
I will read back the resulting alpha values from the color buffer. But
unfortunately, all alpha values are one. I am using
the blending equation GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA. My
question: How can I render the scene and
get back different alpha values at different positions? To get more
precisely: When I render a quad textured with a bitmap
that has an alpha value of 0.6, I want this 0.6 appear in the color
buffer again. When I render this scene again with another
quad lying over the other, I want the two alpha values properly
accumulated and stored again in the color buffer.
Any help will be appreciated,
Please log in or register to post a reply.
if you look at the scene, make sure that the quads do have an alpha of
0.6. ie. see if you can see through them. If that’s OK, then it’s a
problem in the reading process.
Sorry, that’s not my problem. I know how to texture transparent objects,
but I want this alpha value in the framebuffer and I
have no idea how to do this. The alpha values in the framebuffer are
contstantly one after the rendering process.
well, that’s not the problem.. Do the colour values get read right?
I read the values from the framebuffer with
All alpha values turn out to be 1.
How are you rendering the screen? Are you sure you are rendering
Btw, read up on ‘glReadBuffer()’ to specify the buffer you want to read
Yes, I’m sure that I am rendering transparent objects, the color values
are all fine blended together.
I am using glReadBuffer(GL_BACK) to read from the back buffer (I’m
using double buffering).
There is no alpha buffer from where I can read the intermediate alpha
Hmm, I see where the problem is…
I tried a demo program using GLUT. When I initialize GLUT with
GLUT_RGBA and especially with GLUT_ALPHA,
it works. Unfortunately, I am not using GLUT, but Trolltechs Qt OpenGL
component. I have to look for an
equivalent option there.
Hmm :rolleyes: . When I read the help menu concerning the problem you
had, the help menu did not say anything about GLUT. But anyway
congratulations :) .