Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Graphics Issues
#2
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.

-[Unknown]
Reply


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

Forum Jump: