Jump to content

  • Log In with Google      Sign In   
  • Create Account

[Resolved] Multisampling


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 Kaptein   Prime Members   -  Reputation: 2151

Like
0Likes
Like

Posted 06 June 2014 - 07:26 AM

Quick question,

is there any way to have multisampling not disturb the alpha channel?

 

I have tried disable any/all of the sample coverage states.

 



Sponsor:

#2 JohnnyCode   Members   -  Reputation: 219

Like
0Likes
Like

Posted 08 June 2014 - 08:06 AM

what multisampling? hardware multisampling or your own mutisampling?

 

If you are experiencing alpha bleeding, than antialising color and not alpha will still exhibit this artifat. You should perform all alpha logic before buffer gets multisampled.



#3 Kaptein   Prime Members   -  Reputation: 2151

Like
0Likes
Like

Posted 08 June 2014 - 01:08 PM

I was using alpha for depth, since it didn't have to be very precise. The problem is that I was getting "huge" rectangular artifacts.

So, I refactored some of the shaders and the renderer to not use alpha channel for depth, and now I'm using regular depth textures.

Depth texture is multisampled, and resolved properly (I double and triple checked every stage)

 

I'm still getting the artifacts:

You can see the greenish artifacts far away, but they are not limited to depth~=1.0

artifacts.png

Might as well add that I have implemented supersampling too, which looks/works like it should. And without both it also works.

I'm on Linux, so maybe it's a driver problem.

 

EDIT: Just tried my game on my Windows-partition, and the same thing happens. Except better fps.

Now I'm really stumped.

 

EDIT2: I disabled SSAO and went back to vertex-based shadows (not that SSAO worked well anyways), and it's still the same.

Must be related to the depth-textures, I guess.


Edited by Kaptein, 08 June 2014 - 05:16 PM.


#4 Kaptein   Prime Members   -  Reputation: 2151

Like
0Likes
Like

Posted 08 June 2014 - 08:19 PM

Well, that was a day wasted.

To the poor guys who come after me trying to do the same thing:

 

Keywords: OpenGL, Rectangle, Rectangular, Artifacts, Multisampling, RGBA16F

 

The multisampling artifacts go away when replacing GL_RGBA16F with GL_RGBA8. Guess I'm stuck with 8bits per channel, for now.



#5 JohnnyCode   Members   -  Reputation: 219

Like
0Likes
Like

Posted 09 June 2014 - 11:10 AM

in great distances, z depth values differ much more than in close distances for the neighbouring pixels, due to non linear division character of depth buffer. Weighting them means producing  a very "traveled" chaotic depth. The further the better for artifact to occur (it also depends on difference between the pixels themselfs, so it can occur closer if condition met).

 

But let me ask in first place, why do you weight/antialias the depth information? You might consider working with w depth, for the purpose?

 



#6 Kaptein   Prime Members   -  Reputation: 2151

Like
0Likes
Like

Posted 09 June 2014 - 01:57 PM

in great distances, z depth values differ much more than in close distances for the neighbouring pixels, due to non linear division character of depth buffer. Weighting them means producing  a very "traveled" chaotic depth. The further the better for artifact to occur (it also depends on difference between the pixels themselfs, so it can occur closer if condition met).

 

But let me ask in first place, why do you weight/antialias the depth information? You might consider working with w depth, for the purpose?

 

I was already doing depth textures at the time, so I just refactored some shaders. It didn't affect the result, because the artifacts still happened. Not to mention I measured the channels of every single texture at every stage to try to track the artifacts down to the root. It was just always in the colorbuffers from the very beginning.

And yes, I understand the problems with sampling different depths. It's not a noticeable problem for me after getting things working. My current issues are with render-ordering, and I don't know if I even want to solve these issues, since it means I have to sacrifice 50% of the potential early Z-culling, and probably too much frametime.

 

Anyways, I disabled absolutely everything except the terrain colorbuffer, and the artifacts still happened same as before. No change.

The only fix was to change the texture formats from RGBA_16F to RGBA8.

 

And I'm really not going to enter the "edge-smoothing" business. I'll leave that to the realtime JPG emulator people. I jest, but I really dislike "edge-smoothing" overall. Not that there's any alternative. sad.png


Edited by Kaptein, 09 June 2014 - 02:20 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS