Jump to content
Sign in to follow this  
cleggy

Finding problem faces in O2

Recommended Posts

I'm trying to track down this error in my addon log file:

Warning: p:\blx_ridgeback\blx_ridgeback_d.p3d:1.88669e-038 Face 1014, point 901, face points 901,900,888 - very small normal 0,0,0

For the life of me I can't find a way of identifying the face in O2.

If I go into face properties the far right hand column seems to list face numbers.

If I delete the whole object the face is part of I get the same error with exactly the same face number when I re-pbo.:confused:

To add to my confusion face point 888 (see above error) is on a different part of the model to points 901,900 and is in no way connected.

Am I just being an arse?

Share this post


Link to post
Share on other sites

Thanks for the replies. If the great and the good say 'ignore' then that should be good enough for me.:)

I have managed to eliminate these errors in the past (more by luck than judgement) - usually amounts to multiple points sharing the same space.

Still like to know if there's a way to pinpoint them with some degree of control though. This is the sort of thing that bugs the hell out of me...

Share this post


Link to post
Share on other sites
Still like to know if there's a way to pinpoint them with some degree of control though. This is the sort of thing that bugs the hell out of me

not sure if i am reading this right , if you mean pinpoint the face , theres an 02 script that will select the face by number , its in the doc folder on your pdrive

or

/*

Description:

This script select face by its index

Licensing Info:

Copyright © 2007 Bohemia Interactive.

This script is free software for any non commercial use; you can redistribute it and/or

modify as long as you include this licensing notice. This script is distributed

in the hope that it will be useful, but without any warranty; without even

the implied warranty of merchanitility or fintess for a particular purpose.

*/

if (this in ["options"]) exitWith {messageBox ["No options",0];};

facenum=o2InputBox ["",false,"Enter face index",""];

if (facenum=="") exitWith {-1;};

faceid=val(facenum);

if (isnil("faceid")) exitWith {-1;};

obj=getActiveObject this;

sel=newSelection obj;

sel selectFace faceid;

selectPointsFromFaces sel;

obj save (sel as "_current");

apologies if you mean pinpoint the error and fix , like others have said i dont think the error carries on into the game engine and is spammed like in the bin log

Share this post


Link to post
Share on other sites
not sure if i am reading this right , if you mean pinpoint the face , theres an 02 script that will select the face by number , its in the doc folder on your pdrive

Thanks Thromp, yes I just wanted a way to pinpoint the face in question.

Didn't know those scripts existed! Nice one.

Still gonna try and cure the errors tho'!..

Share this post


Link to post
Share on other sites

As well as the scripting method you can also select individual faces based on their index via the 'Faces>Face Properties' dialog as well. If you scroll across to the right in the dialog popup the last column is the face's zero based index.

Btw, the 'very small normal' is a warning, not an error as far as binarize is concerned. Although it doesn't 'hurt' the model i'd imagine reducing model anomolies to zero is good for any rendering pipeline.

The 'very small normal' warning stems from (mainly) where you have a polygon face in your LoD that has for one reason or another been 'squashed' into a straight line or the polygon is so small the verts may as well be situated all in the same spot.

Mainly you only get poly's like this when you bring geometry into O2 (or mlod.p3d format) from an external 3D app through importing.

Usually you can highlight them by using 'Faces>Degenerated Faces>Check' and 'Faces>Degenerated Faces>Repair'.

Then you can use either 'Points>Merge Near' to remove them or 'Points>Select Isolated' and then delete them. 'Select Isolated' & then 'Delete' is usually preferable because after you've run 'Faces>Degenerated Faces>Repair' they usually no longer belong to any polygons.

Cheers, Sy.

Edited by Synide

Share this post


Link to post
Share on other sites

Very useful info there Sy, thank you.

Mainly you only get poly's like this when you bring geometry into O2

Actually on this model I have imported geometry from Anim8tor because it has a 'lathe' feature. Will have to examine those bits more closely!

At the risk of being a pain and going on about something of little importance:

Is the 'warning' I posted telling me of one problem or three?

The reason I ask is that face 1014 has nothing to do with the 'face points' mentioned.

Share this post


Link to post
Share on other sites

If you select each component of the model and choose points\'merge near', I think you will be able to get rid of very small faces. However, it may also merge components you want to remain separate, (like doors, for instance), so you must be careful.

Share this post


Link to post
Share on other sites

Thanks for the suggestion Max.

Degenerated faces doesn't highlight anything I can see.

I think I'm making a 'mountain out of a molehill' really.

Even those ruddy ST errors wind me up because I don't know what they mean. I've learned to live with those tho'.:)

Share this post


Link to post
Share on other sites

--Cannot generate ST coordinates means that O2 is worried about generating a surface tangent coordinates for a face because the face has 0 area on the UV plane. I guess, as a result, the dx renderer will have difficulty resolving tangent space for the display of a normal map for that face. You can find those faces in the faces tool, selecting them, then opening the UV editor and transferring the selection from the 3d editor to the UV editor. Once you have located them you can just expand them on the axis they are squished a little and the errors should stop.

Edited by Max Power

Share this post


Link to post
Share on other sites

Max, your trying to drown me in terminology! :)

so would I be right in thinking:

a) any unwrapped face will generate an ST error? - that's OK I haven't unrapped the whole model yet.

b) a face created by a placed proxy will generate an ST error?

c) my UV map is probably a bit crap? - that's also OK because I'm only just learning how to unwrap curved surfaces

Thanks for attempting to educate me anyway!

Share this post


Link to post
Share on other sites

it is the result of faces on the UV having 0 area which usually occurs when faces get smuged in projection. For example, take a cube and project a texture from the top. All the side faces will have 0 area on the uv and will throw this error.

Share this post


Link to post
Share on other sites
Max, your trying to drown me in terminology! :)

so would I be right in thinking:

a) any unwrapped face will generate an ST error? - that's OK I haven't unrapped the whole model yet.

Like Soul Assassin said, any face with 0 area in the UV projection plane will generate the ST error.

b) a face created by a placed proxy will generate an ST error?

I think that a proxy should not have UV coordinates in the first place. If it has them I think you can delete them.

c) my UV map is probably a bit crap? - that's also OK because I'm only just learning how to unwrap curved surfaces

Sometimes it's not necessary for a face to have any area in the UV plane in order to look good. For instance, if this face has only one solid colour and no detail or variation, you can make the uv projection very small. O2 just doesn't like it because it messes with the way the machine calculates how to display a normal map.

Thanks for attempting to educate me anyway!

It's what we're in a community for :)

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×