Post Reply 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Graphics Issues
05-22-2013, 05:13 AM
Post: #2
RE: Graphics Issues
Well, I shouldn't say preround maybe. A better way to put it would be "don't convert colortest/alphatest values to float just to convert them back to integers again." Clearly there's something wrong, but I'm not sure what it is.

I suspect that the rounding (0.5) is not working correctly, but on my Android, it doesn't work correctly without it (at least for alphatest.) Maybe it needs to use even/odd rounding or something... ugh.

Do you have a compiler to test a few things? The trouble is, I don't have any games (that I know of) which this caused problems for, so it's hard for me to debug. If you (or someone reading this topic) can try things, this is the line to try a few variations of:

WRITE(p, "if (roundAndScaleTo255v(v.rgb) %s u_alphacolorref.rgb) discard;\n", colorTestFuncs[colorTestFunc]);

First off, does it change things to comment it out? That will confirm that it's incorrectly discarding when it shouldn't.

Next, what about:

WRITE(p, "if (floor(v.rgb * 255.0) %s u_alphacolorref.rgb) discard;\n", colorTestFuncs[colorTestFunc]);

If that does work, then it's a rounding issue. Another thing worth trying:

WRITE(p, "if (floor(v.rgb * 255.0) %s u_alphacolorref.rgb) if (roundAndScaleTo255v(v.rgb) %s u_alphacolorref.rgb) discard;\n", colorTestFuncs[colorTestFunc]);

If that works, it probably doesn't discard quite enough, but it could be a better situation than currently, and I think (?) it might not hurt performance for the common case.

Find all posts by this user
Quote this message in a reply
Post Reply 

Messages In This Thread
Graphics Issues - Denizen - 05-22-2013, 12:26 AM
RE: Graphics Issues - [Unknown] - 05-22-2013 05:13 AM
RE: Graphics Issues - Denizen - 05-24-2013, 12:05 AM
RE: Graphics Issues - [Unknown] - 05-24-2013, 12:58 AM
RE: Graphics Issues - Denizen - 05-24-2013, 02:59 PM
RE: Graphics Issues - Denizen - 05-26-2013, 12:08 AM

Forum Jump: