Emit Rendering Artifact Problem

I have a strange problem with rendering using the Emit property and getting some strange artifacts. I’m using Blender 2.49b 64-bit version. Admittedly, I’m new to Blender, so perhaps this is a “feature” rather than a “problem”, and perhaps there is a better way to do it.

What I’m doing is this: I’m making a large space station with many, many windows. Instead of modeling each one of a couple thousand windows, I’m making an object with an alpha pattern to “punch holes” in it for the windows, with another object behind it with the Emit property to provide light that shines through the windows.

For the most part, everything looks very good. The problem comes when I use a camera angle that puts one portion of the station over another portion that has these lighted windows. The edge of the overlapping portion has an artifact that looks as though the light emitted from the overlapped portion is shining on it as though there was no other object between them. The part of the overlapping portion with the artifact is line-of-sight between the camera and the emitting object. See the photo below (the artifact is enlarged in the pink box):
http://img842.imageshack.us/img842/6519/emitlightleaksample.jpg
In this example, the “mushroom” top of the station is partially overlapping the “stem” part of the hull. Where the edge overlaps the stem, there is the artifact. Note that it is not quite the width of the stem – that is because the emitting object inside the stem is slightly smaller in diameter. The length of the artifact exactly matches the diameter of the emitting object.

I could understand if the artifact only appeared where there were windows, but it’s acting as though the entire windowed object was not there. I’ve tried a number of variations, including turning on/off various settings like shadeless, raytrace enable, shadowbuffers, etc, on the emitting object, the windowed object, and the overlapping object. Nothing seems to make the artifact go away.

I’m supposed to be rendering an animation with this very soon, so prompt assistance would be greatly appreciated!

t is hard to tell what is going on without looking at the BLEND file.

I can’t post the starbase mesh itself since it is proprietary, but I will create a .blend file that does the same thing and post it.

Something I forgot to add: This problem also occasionally shows up where two objects intersect. Theoretically there should be no light leaking through the intersection, but this same emit artifact sometimes shows up along the “seam”. I rather suspect that this is not a feature. I’ll see if I can duplicate that in the file I post.

Well, it seems I may have found a bug in Blender 2.49b. The artifacting problem appears to occur only on either free edges (those not attached to adjacent faces) or edges of extruded faces (even if there are adjacent faces). Blender meshes that have not had faces deleted or extruded do not seem to exhibit this problem. However, I’m not certain if this is completely consistent, as I haven’t tried all the different types of meshes in all the different circumstances.

I discovered this while creating a sample .blend file to upload. I built a portion of a simple starbase using only Blender cylinder meshes, and could not get the problem to appear. Once I removed an end cap from a cylinder (actually just the center vertex of one end cap), the problem appeared. Even when I extruded a new end cap using the cylinder’s vertices, the problem stayed. Also, Preview doesn’t show this artifact, it’s only present in a full render.

I have attached the sample file I created as well as the alpha template. I didn’t create a sample of the intersection problem I mentioned in the previous post. However, every one of the intersections in my mesh that exhibit the problem were created using Extrude, so it’s very possible that they are a result of the same bug (if it is a bug).

Atom, take a look at the Blend file and see if you agree with my diagnosis. And BTW, thanks for your quick reply and desire to help.

Attachments

StarbaseArtifactTest.blend (208 KB)


I was able to suppress the artifact by enabling the ZTransp button in the rim’s material. I don’t know if it’s a bug but it’s in 2.53 as well.

An easier way to get this effect would be to use a texture mapped to effect the material’s emit value instead of it’s alpha value for the windows. No additional geometry would be needed and your render times would drop.

Oh by the way you forgot to pack the texture with the blend file. You can pack an image by clicking the button with an image of a wrapped gift that’s at the end of the image file name in the texture panel.

Oops I somehow missed that you attached the image to your post.

Thanks, JDep – I’ll try that when I get home.

I tried using a texture for the Emit value, but the result just didn’t look right. Among other things, the falloff as the windows go around the curve of the station didn’t work, and the result looked fake. Opening up the windows using the alpha value and lighting them from inside looked a lot better, and the falloff happened automatically so that I didn’t have to model that separately. Also, I was already using an alpha map to open up holes for the various shuttle docking bays (I was lazy and didn’t want to model them separately on this particular version of the model :smiley: ). It was just a simple matter to add the windows to the existing alpha map.

I usually don’t pack textures with the .blend files on works in progress, so that I can easily edit the textures. Plus, I often use the same texture files in different .blend files. This keeps file sizes down and makes image file management easier in this type of environment. I thought about packing the texture with the sample file I uploaded, but when I saw that I could easily upload multiple files, I did so. :wink:

Thanks again for your suggestion. I will let you know how it works on my model.

Well, that worked just fine on my model. It also eliminated the various intersection artifacts when I set Ztransp on the objects that were intersecting.

That seems like quite a kludge. It’s a good thing I’m not using Ztransp for anything else other than making windows. But it does seem to me like it’s a bug. The intersection problem alone strongly suggests “bug” because if Ztransp is not set, then no light of any kind should be showing through an intersection of two opaque objects.

If it didn’t take up so much rendering time, I might consider Radiosity instead of Emit. But since I’ll be rendering some complex animations with several high-poly models, I want to conserve as much rendering time as I can. I’ve already built another machine to help offload the rendering tasks, so once I set up the animations I’ll be splitting the render passes across three different boxes. Now that the Emit method is usable, I can finish the model and set up the animations.

Thanks again for your help in solving this problem, JDep!

You can use material nodes to get the falloff that you want. You would use a normal node to control the falloff of the emit value of the material. I’ve attached the file that you provided with this setup. You can control the falloff by altering the curve in the RGB curve node.

Attachments

StarbaseArtifactTest_new.blend (166 KB)