Volumetric Light not showing through Mesh with RayTransparency

Hi,

i’m new to this forum. First of all, excuse my probably not-so-good english, i’m not a native speaker.

I registered here because i’m seriously stuck. My problem is as follows :
I’m trying to build a command bridge for a star wars starship. I set up a big holoprojector with a spotlight at the bottom to produce a cone of green volumetric light for a nice visual holoprojection-effect. On various command consoles, there are sheets of glass with a texture on them to produce the effect of holographic information on some kind of glass sheet. I set the glass RayTransparent and RayMirrored to provide the illusion of an actual sheet of glass. Everything is working and looking fine, but i want to animate a camera flight through the bridge later on, and the volumetric light of the big holoprojector is not showing through the glass sheets on the command consoles.
I guess this is a compositing problem, maybe because the volumetric light is rendered before the transparency of the glass sheet is rendered. So i tried everything i know with render layers, render passes and composition nodes. Now i am stumped. I have no idea how i can make a sheet of glass with a texture on it WITH the volumetric light visible behind it. Same problem for the sky-background with stars, i don’t want to use a skydome if i must not, so it would be nice to produce a star background just with the star feature of blender.

I am somewhat familiar with setting up composition nodes, render layers and render passes.

To outline my question, i want the following things to work smoothly together :

  • A sheet of glass with transparency, a semi-transparent texture on it and reflections of the scene
  • A volumetric light behind the sheet of glass that is actually showing BEHIND it.

I included a render of my test scene in this post, one can clearly see the volumetric light not showing up behind the sheet of glass. I also included the .blend of my test scene, so that you can check my settings. The second picture i included is a view of the whole command bridge with the spot light of the big holoprojector and the mountings for the glass sheets highlighted, so that you can imagine an animated camera flight through the bridge and visualize the problem when the glass sheets pass in front of the volumetric light or in front of the main viewscreen (in this case, the stars outside would be invisible too, i guess).
Thank you very much in advance for any advice on how to solve this problem, i’m getting sleepless nights of futile problem solving already :wink:

EDIT : I’m using Blender 2.49b

Attachments



HoloTest2.blend (304 KB)

Did you try the z transparent ?

Hi,

thanks for the answer. Yes, i did try the z transparent, but i’m not able to set up z transparency and reflections. Without reflections, i have a fully transparent sheet of glass that is working properly, the volumetric light is showing through etc., but the sheet of glass itself looks invisible instead of being out of glass. I think i need mirror reflections to fake the illusion of an actual sheet of glass, and the only possibility i know for this is ray transparency or environment maps - and i guess environment maps are a awful lot of work considering my setup of the command bridge.

I think your problem might be that you have 2 render layers. You have render layer 2 active, but it does not have Halo enabled. Try switching back to Render Layer 1.

Attachments

HoloTest3.blend (296 KB)

Don’t have Blender here with me to test, but I would think make three passes, one with no glass at all, but the volumetric visible, then another purely for the reflections in the glass, superimposed. Finally one with the 3d objects that are visible through the 3d screens, encased in black boxes, so that they are only visible ‘through’ the viewports. This one perhaps only an emit pass.

Combine (add, not mix) the three passes in the compositor, and you are done.

Things get more complex if you need the volumetric to reflect in the viewports, because then you have to use environment maps.

HTH.

Matt

Thanks for the suggestion, Atom. I am not sure if i fully understand your point, but i deactivated the check mark next to Render Layer 2, hopefully excluding it from the Render. I attached a picture of the settings of Render Layer 1, all relevant buttons are pressed, but it still produces exact the same effect as visible in my first post. Neither the volumetric light nor the star background are visible through the transparent surface.

My guess is that volumetric lights and the star background are computed BEFORE the ray transparency is computed, so when computing volumetric lights and the stars, the surface is not transparent yet in this render pass. I have no idea of how to circumvent this, but i think there must be a possibility related to composition nodes or render passes/layers.

As a side note - do you really think the Halo Switch on the Render Layers Tab has anything to do with this ? I thought it only relates to Halo materials, not to volumetric lights - this is at least how it is stated in the Blender Manual.

Unfortunately for me, there seems to be no single render pass which produces the volumetric light and the star background without the transparent surface blocking it. This can be seen in the second image i attached.

Any help is greatly appreciated, thanks for your time Atom.

EDIT : Thanks for your help too, travellingmatt. As stated above, i would love to break the image down to several passes, but i cannot pinpoint the pass that renders the volumetric without the glass. The only possibility i see at the moment is copying the whole scene to a second layer, deleting the glass on this layer, render both layers one after the other, then add it together as you described in the compositor. The problem with this is that it is not feasible in terms of rendering time for a full animation of the whole command bridge-scene later on.
My only comfort at this time is that the volumetric doesn’t need to reflect in the viewports :wink:

Attachments



You don’t need to copy everything to another layer. All you do is create a second ‘renderlayer’ that does NOT include the layer that your glass is on, and render that. The original renderlayer, you should just have to set halos to be excluded from the pass. Volumetrics in 2.49 are really halos, so can be removed easily enough.

In fact, the second layer only needs a halo pass, so you can turn everything else off. Make each pass separate a z-buffer, and use this to combine the two images so that the vlumetric halo appears behind the frame. Now render a reflection pass on another layer, and superimpose it.

Matt

Hi,

changed a few settings in the renderlayers, and made your materials recieve transparent shadows. Try this out.

Matt

Attachments


HoloTest2.blend (325 KB)

Thank you very much for your help Matt, you finally made my day. I succeeded in tweaking your settings, so that the actual “holographic” texture is visible again and mixed in without brightening something or otherwise destroying the image :wink: However, i’m finally able to produce the effect i wanted to. I attached a image of the final render.

If someone is interested in the exact settings, i attached a picture of the node editor and my render layers, too. If someone has an idea how to optimize my settings or method, i would highly appreciate it, as it takes quite some additional rendertime.

Again, thank you very much indeed for this solution, Matt.

Edit :
Layer 1 (not the render layer, the layers that display in the 3D Window) : This includes ONLY the plane that is transparent and has the holographic texture on it
Layer 8 : This layer has only the volumetric light on it
Layer 9 : This layer contains the lamp, the camera and the remaining objects.

Attachments