how can I create a transmission filter with say 40% of transmission and therefore 60% absorption? I want to create a rectangular glass plate which I want to place in the beam of a source. My planned set-up should contain a point light source at the origin, the mentioned filter at z=10 (normal of filter parallel to z axis) and a detection sreen at z=20 (normal of screen parallel z axis). The illumination on the screen should (if all works) contain a rectangular area with less light. Is it possible to make this?
No, opengl is a real time rasterizer, not a raytracer.
Try POVRay for example.
how can I create a transmission filter with say 40% of transmission and therefore 60% absorption?
assuming you don’t need a ray tracer,
you can hack this effect with blending:
BlendFunc( SRC_ALPHA, ONE_MINUS_SRC_ALPHA )
with the alpha per-vertex and/or in a texture to reflect your transmission values.
It certainly possible to handle this type of transmission with OpenGL, there’s no need to resort to ray tracing.
However, it requires fairly advanced techniques if you want it to handle dynamic scenes in the general case. It requires per fragment lighting computations, a shadow mapping implementation and rendering to texture which are all fairly advanced topics. It’s certainly possible though.
If you only need it to work in this specific scene you can just use an alpha blended projected texture containing the filter. Check google for tutorials and come back here and ask questions if there’s something you don’t understand.