Scirra / Construct-bugs

Public bug report submissions for Construct 3 and Construct Animate. Please read the guidelines then click the 'Issues' tab to get started.
https://www.construct.net
107 stars 83 forks source link

3Dshapes show seams #7900

Closed F3der1co closed 6 months ago

F3der1co commented 6 months ago

Problem description

3Dshapes show seams where the quads meet, this seems to be caused by smooth filtering as it goes away with nearest filtering.

Attach a .c3p

SeamsBug.zip

Steps to reproduce

  1. run preview

    Observed result

    seams appearing depending on the angle, you can look through to the bg color. It can sometimes be more and less visible image

Expected result

no seams

More details

This makes a game look bad/artifacty especially if there is a large difference between the color/texture of the shape vs the background. Maybe a 1 pixel overlap like the 9patch could be considered.

Affected browsers/platforms:

First affected release:

System details

View details PASTE HERE
AshleyScirra commented 6 months ago

Strange - this seems to only happen in low quality fullscreen mode. It seems fine in high quality mode. The 3D shape faces are rendered exactly adjacent with no gap and so the GPU rasterizer ought to not have any gap between them. So I have no idea why a seam is occurring in this case, so unfortunately this might not be feasible to solve.

F3der1co commented 6 months ago

Strange - this seems to only happen in low quality fullscreen mode. It seems fine in high quality mode. The 3D shape faces are rendered exactly adjacent with no gap and so the GPU rasterizer ought to not have any gap between them. So I have no idea why a seam is occurring in this case, so unfortunately this might not be feasible to solve.

It is still there with fullscreen quality high, but as the seam is 1 pixel it will be a lot less visible!

F3der1co commented 6 months ago

image from my game with fullscreen quality high

AshleyScirra commented 6 months ago

You're right, it does happen in high quality fullscreen mode, it's just harder to spot.

It does however significantly reduce if you set the downscaling quality to "high". This makes me think it's a variant of the seams you can get from mipmapping, but when applying to mipmapping with depth in 3D: the seams come from sampling the edges of the texture on a downscaled mipmap, and downscaling quality "high" helps mitigate that by adjusting the spritesheets.

I don't think there's any better solution - it's just one of many, many extremely complicated things that come up if you start to go down the road of a 3D engine, which is why I'm reluctant to go further along that road...