Sign in to follow this  

Sparklies...again

This topic is 4831 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi, i've noticed this artifacts in my scene after exporting from 3DMax, if you look at the pictures you'll see that most of them appear near the lines on the wall/ground. Those are faces detached from a mesh in max. It's not Z fighting and it shouldn't be any T-junction problem either. Any ideeas? Thank you. Artifact 1 Artifact 2

Share this post


Link to post
Share on other sites
well i guess it's not Z-fighting since i'm close, 24bit Depth Buffer, Close plane set at 1 and far plane it's close at about 150 (actually in the game will be at about 600 but makes no difference in this case). And my video card it's not overclocked. I'm using a Radeon 9000 DDR. Any ideeas? Thanks.

PS. sorry for the screen shots but i don't have anywhere else to put them. just open in a new window.

Share this post


Link to post
Share on other sites
It's really hard to tell by the screenshots, but are the yellow stripes part of the tunnel textures and part of the road or is the yellow stripe a seperate texture mapped onto geometry overlaid onto the road and tunnel sides.

It's hard to say why this might be happening without some more information to go on.

Share this post


Link to post
Share on other sites
Quote:
Original post by pasman
hi, i've noticed this artifacts in my scene after exporting from 3DMax, if you look at the pictures you'll see that most of them appear near the lines on the wall/ground. Those are faces detached from a mesh in max. It's not Z fighting and it shouldn't be any T-junction problem either. Any ideeas? Thank you.

Artifact 1
Artifact 2


I can't see your images so I'm taking a random shot in the dark here. Sparklies sometimes occur when you have multisampling enabled and the pixel shader is interpolating using center sampling to determine pixel locations. While this type of interpolation is correct for texture coordinates it isn't correct for things like colors or vertex normals, etc. If any of this sounds vaugly applicable to your situation, try enabling centroid sampling. In D3D this is an interpolant modifier in the pixel shader.

--Chris

Share this post


Link to post
Share on other sites
Well first of all, i'm using OpenGL, on an ATI Radeon 9000 no extensions though, latest drivers, no multisampling.

The yellow stripes were originaly part of the mesh, then from Max detached and with a different texture applied. I don't see why they wouldn't share the same vertices (or duplicated vertex since Max uses more UV's per vertex) since no other modifiers were applied. Any ideeas?

Share this post


Link to post
Share on other sites
mate the problem is pretty common, check out most quake3 maps that use curves where the curves met the non curved surfaces, cause of T-junctions.
the only way to repare it is to fix the model, the graphics api or radeon/nvidia aint the cause of the problem

Share this post


Link to post
Share on other sites
Hi,

Just some thoughts

1. Are you positive that the vertices are exactly the same, not accidently moved?

2. Are you using compression on the vertices in the file format?

3. What precision are you using for storing vertices?. Could you be losing precision when exporting, thus introducing small errors?

4. Just how long are the traingles along the edges of where the sparkles appear? It used to be (and maybe still is) considered pretty bad to use very long thin traingles, as they could cause precision issues (and others). Indeed I think its possible in these cases that even if exactly the same vertices are used to get slightly different renderering of the edges, and thus the white spots. - (Mind you this is all some vague recollection of talking with some 3D engineering guy years ago)

As most of the obvious causes for sparklies have been ruled out, perhaps its time to build some test cases to see what is going on.

So in Max, create a similar simple object, clone it and detach a section. Clone that and this time apply different textures as in the sample, etc. Build up a file of test cases, then load it into your engine. Check each version looking to see at which stage the sparkles are visible. Perhaps that will give you a bit more information on why its happening.

Cheers

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by pasman
i'm aware of the T-junction issue, but the faces are perfectly non-curved and using the same vertices or their duplicates


how are you ensuring that their positions are shared ? Did you clone the data yourself or did you let the artist/exporter deal with that ?

Do you feed that directly to the card? do you use different shader/fixed function between drawing calls ?

Share this post


Link to post
Share on other sites
My suggestion was to remove the stripes from your model and see if you still have sparkles.. if you do not have sparkles then the problem is somehow influenced by the yellow stripes.

Once this is determined, you can then add the stripes back to your model and tweak them until they work.

It would be a very easy way to rule out many possibilities. That is one of the key elements to problem solving.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I've had similar problems that I pinned to glBlend.
Seems a texture had a few 'transparent' defined pixels
at the border. Try turning off blending to see if that's
the case.

Good luck.

Share this post


Link to post
Share on other sites
Hard to tell without knowing what the geometry is.
One things to note is that max is not very accurate,
unless your verts are welded in max, verts can get
exported at slightly different positions because of this.
So selecting all verts in editmesh/vertex and weld
is often a good idea...

Share this post


Link to post
Share on other sites

This topic is 4831 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this