seriously frustrating face normals problem

So I’ve done everything I can think of. The faces show fine in glsl mode, when transparency isenabled. But when I go to game mode “P” all of the face normals flip, but only if I have transparency enabled. If I turn off transparency it looks fine, but has not transparent windows. If I turn off both transparency in the materials tab, and alpha in the textures/influence tab the entire model loses colour.

I’ve gone through and fixed all of the faces in edit mode, by hand. I tried exporting it to obj and then importing it back in, thinking that the obj format wouldn’t transfer whatever was wrong in the file.

It’s a mess and I really am finally at a loss. If there is someone who has any idea, I’d love to hear from them.

…here is the .blend file if anyone wants to mess with it.
train_station1.blend

http://deathguppie.com/temp/screwed_up_normals1.png
http://deathguppie.com/temp/screwed_up_normals2.png
http://deathguppie.com/temp/screwed_up_normals.png

As soon as you hit Ctrl-N after A and see that half of the normals point different sides, you have a problem ;). Manually switching don’t help much. Try to separate parts until it works.

After separation process got to walls. When solidified, they look like this in edit mode:



No idea what causes this. Probably needs to be modelled again.

Add a separate material for your windows so you can turn off transparency for the rest of the building

train_station1a.blend

Attachments


Nope. I literally separated each part into planes so that every plane in each part was facing the same direction. Adjusted normals… nope that’s not the issue.

there is a bug.

The original file was a 2.49. I imported the object into 2.62. I have a copy of 2.49, when I set up transparency using 2.49 I get nothing… no transparency at all in the game engine. In 2.62 (or any 2.5+) the faces show through. Very often in the oddest fashion showing the texture of one of the internal wall materials on a separate object.

There is some information in this blend file that forces the game renderer to show only the inside of the faces.

…There is a bug.

Richard… holy hell… I’m laughing to myself as I write this… I just avoided the simple solution because I was so concentrated on the problem. Couldn’t see the forest for all of the trees so they say…

Thanks, I’ll just stop thinking about this now. :slight_smile:

Then again, i have a problem here, because i did take alpha back and switch off transparency before dismantling this.



Even removing material and adding new, default, does not help.

it may be a compatibility problem between 2.49 and 2.62!

not everything can upload nicely from 2.49!

and no more backward compatible anyway with Bmesh !

so do it only in latest SVN built for blender and stick with the file

sometimes Ctrl-N don’t do the right calculation for normals cause it depends on the order of the vertex for faces
so only way is to manually flip the ones that did not work properly !

salutations

Nope, this is something completely different…

Flipping the normals doesn’t do anything… manually individually… The problem is where blender thinks the face is… in front or behind other faces. If it was just a compatibility problem I could export it to obj and then import it. Also the problem exists in 2.49…

So no, it’s a bug.

There are issues with z-transparrency in the game engine. No need to do anything with face normals

If you just want to use a single material, for the station texture enable ‘Stencil’ in the Influence panel and in the Material / Game Settings set the Alpha Blend to ‘Alpha Clip’

train_station1b.blend

Attachments


Thanks for the tip… I seem to be able to make it work.

The glass has dirt on it that I like as part of the texture, and stencil kills that part of it. Well, anyway there is some good info in this thread.

I had the same bothering problem: my solution was applying all the edgesplit modifier (and other modifiers that i don’t remeber) to all the meshes. (maybe because the modifier change in a non predictible manner the normal orientation when the game engine play)
Remember: before applying the edgeplit modifiers check that the normal are right.