Darkstar2
|
|
Reply #30 Posted on: May 26, 2014, 09:00:15 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
That's exactly it I don't think it's GPU related BTW, yes I put the code exactly where you told me to. and again, it had no effect. you know why ? Because it has nothing to do with the problem. Will post a screenshot later on.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #31 Posted on: May 26, 2014, 09:04:56 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Did you round up or round down, and did you try additionally adding pixel offsets to the rounded values?
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
Darkstar2
|
|
Reply #32 Posted on: May 27, 2014, 02:35:47 am |
|
|
Joined: Jan 2014
Posts: 1238
|
Say what you want but the problem is with ENIGMA.
1) Nothing wrong with my hardware. I never had this shit happen to me in any 2D game, 3D game, or whatever.
2) It has NOTHING to do with blurriness, everything is sharp that is not the issue. The issue is the fucking pixel vertical line on scrolling that I did not use to have and text that is displayed wrong, NOT BLURRY, but rendered wrong. I already posted a screen shot in the past, you too, so it can't only be card related.
3) It's no use testing gl model view and d3d projection ortho no combination works. I tried all the combinations suggested even my own even sweeping through the entire possible range, no combination bloody works. If I find a setting that works in fullscreen it won't in windows and etc. having swept all the combinations.
4) void AddVertex(gs_scalar x, gs_scalar y) { vertices.push_back(x); vertices.push_back(y); vertexStride = 2; what the fuck am I supposed to do with this ? more offsets as in x+=0.5f; y+=0.5f ? did change fuck all, same shit. Tried other numbers.
You mean to tell me that everything works fine on your end without any need for offsets in the glmatrix ? I thought you said otherwise back when I reported it the first time.
ENIGMA is completely useless to me now until I find a solution for at least text.
If I take the same bkg_clouds and load it as a sprite and have it scroll (non tiled) across the screen, I don't see any lines. It only happens with H tiled backgrounds, and I haven't even tried V tiling too to see if this affects V scrolling......... 1) Cannot render text properly ! 2) Cannot do scrolling background. 3) Though I had figured out how to fix it but did not work. Only thing I could emulate a fix was to subtract 1 to the code with cloudswidth but that was simply an overlapping pixel, that is rubbish and still does not fix text and not a proper way to do things When using normal code for room scrolling / background, etc it glitches now like crazy.
you are telling me that studio does this, O RLY? Because as much as GMS is dog's shite, it has never had scroll glitching or text artifacting. I will try this with gaystudio tomorrow morning with my new set of drivers.
what if the problem is in the font rendering or sprite/background handling or deeper in the graphic system ?
If I have time I will make a video showing the display sweep through all possible combinations for you to see and believe we have ourselves one giant steaming hot pile of turd, and I honestly exhausted all my tests I don't know what more I could try or do.
Guess I have to forget about scrolling...... and text, no way...... a game without text lol. not gonna happen. or I could just say the fuck with it I don't care if the game won't display properly for all......... but that's not me. I cannot swallow this shit that everyone with NVIDIA cards will not be able to run a game compiled with ENIGMA...........rather the game will not render properly and look like shit! WTF.... no way, this can't be happening.
What seem to work with scrolling is setting display resolution 1:1 with room width room height, but only works for full screen, windowed = glitchy scroll ( lines).
vertices.push_back(x+0.5f); vertices.push_back(y+0.5f); or variations of that have no effect no visual difference no nothing. because this is not what is causing the issue.
|
|
« Last Edit: May 27, 2014, 03:20:29 am by Darkstar2 »
|
Logged
|
|
|
|
Goombert
|
|
Reply #33 Posted on: May 27, 2014, 03:48:18 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
1) Nothing wrong with my hardware. I never had this shit happen to me in any 2D game, 3D game, or whatever. All I know is, you updated drivers which exacerbated the behavior in ENIGMA and you did not appear to have tested Studio or Unity or anything else, or even an empty OpenGL application. This obviously doesn't affect other 3D games because half pixel alignment is not relevant to anything except an orthographic projection, and you obviously haven't experienced it in any other 2D game because whatever game it was uses proper half pixel alignment as suggested by Microsoft or others, which is what we are trying to do for ENIGMA. 2) It has NOTHING to do with blurriness, everything is sharp that is not the issue. The issue is the fucking pixel vertical line on scrolling that I did not use to have and text that is displayed wrong, NOT BLURRY, but rendered wrong. I already posted a screen shot in the past, you too, so it can't only be card related. I'm sorry, but I simply can not deduct what you mean by wrong, other than that you now have the vertical line for the scrolling backgrounds, I do not know what you mean by wrong in the context of text rendering. Which is very easy for you to take a picture of. 3) It's no use testing gl model view and d3d projection ortho no combination works. I tried all the combinations suggested even my own even sweeping through the entire possible range, no combination bloody works. If I find a setting that works in fullscreen it won't in windows and etc. having swept all the combinations. Ok, you told me that already, I wasn't telling you to test anymore combinations there, I was telling you test rounding in the ModelStruct. what the fuck am I supposed to do with this ? more offsets as in x+=0.5f; y+=0.5f ? No, I told you to round x and y before they are pushed into the vector using cmath or w/e. And if that didn't work, I told you to then try offsetting the ROUNDED value starting with a full half pixel (0.5,0.5) You mean to tell me that everything works fine on your end without any need for offsets in the glmatrix ? I thought you said otherwise back when I reported it the first time. Yes, if I remove all offsets in everything, my graphics driver displays everything in OpenGL perfect whether in FS or windowed, I only have problems with Direct3D. what if the problem is in the font rendering or sprite/background handling or deeper in the graphic system ? You're being dramatic, I gave you a solution as low-level in the engine as possible, rounding every 2D vertex to a full pixel. If I have time I will make a video showing the display sweep through That is not necessary, I simply asked for a screenshot of how text rendering is behaving since you updated drivers. vertices.push_back(x+0.5f); vertices.push_back(y+0.5f); Or you could try doing what it was that I actually suggested. vertices.push_back(round(x)); vertices.push_back(round(y)); and... vertices.push_back(round(x)+0.5f); vertices.push_back(round(y)+0.5f); That also works for me and makes vertices round consistently on all hardware.
|
|
« Last Edit: May 27, 2014, 03:49:55 am by Robert B Colton »
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
TheExDeus
|
|
Reply #34 Posted on: May 27, 2014, 05:50:14 am |
|
|
Joined: Apr 2008
Posts: 1860
|
Or you could try doing what it was that I actually suggested. vertices.push_back(round(x)); vertices.push_back(round(y)); and... vertices.push_back(round(x)+0.5f); vertices.push_back(round(y)+0.5f); He could also try: vertices.push_back(round(x+0.5f)); vertices.push_back(round(y+0.5f)); For me everything works fine on Nvidia for now. Will test it at evening with even newer driver (Nvidia released it yesterday or something). There has been a problem with texture coordinates in text though for a while. I think LGM packs them too tightly and so lines from other characters are sometimes visible (rarely though and only in certain fonts). Especially when interpolation is on. I think we should try adding texture atlas and while doing that rewamp most of the texturing for more consistent results.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #35 Posted on: May 27, 2014, 06:44:39 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
The interpolation I was already aware of, having interpolation on for fonts may be desired in some cases as well, and can be simply solved by adding padding parameters to any font functions. However, yes, I wish we did have the texture paging implemented, but I am afraid to do it.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
Darkstar2
|
|
Reply #36 Posted on: May 27, 2014, 12:22:35 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
So we are all on the same page here, I will upload new screenshots to show exactly what I mean. There is one easy way to solve the scrolling glitch in FS, is to do 1:1 resolution. Making a room size a valid screen resolution then in create event of a controller object setting: OscrW=display_get_width(); OscrH=display_get_height(); display_set_size(room_width, room_height); and in an end game event display_set_size(OscrW, OscrH); But for text it's impossible have not found any way. Will try the rounding thing though this won't have any effect, since I already manually swept all ranges. I don't see what rounding up or down will do more, it will just fall on some of the same ranges I hit already. Regarding NVIDIA, indeed, there is a new driver out this morning, it is the 337.88. Prior to 335 (with 314) I did not have any scrolling glitch, I really don't know what happened. and it worries me that my game would have inconsistent looks based on people's drivers, with functionality so basic! I intend to use 1:1 and fullscreen for most of my games anyway, in worst case where we cannot resolve the scrolling glitch. But now text is the harder one to tackle. There is another way using custom font resources and a custom script but that would increase the size of games and would take time. Here are the screenshots, I don't need to comment them as they are self explanatory, no complaints with sharpness, the problem is the dots, vertical and sometimes horizontal lines around letters. Despite sweeping projection ranges they only shift but never disappear. I zoomed these images for better viewing. Be it small or large same shit all around. I tried with other fonts same, so it's not a specific font. but all. Here is even big text !
|
|
« Last Edit: May 27, 2014, 01:27:53 pm by Darkstar2 »
|
Logged
|
|
|
|
Darkstar2
|
|
Reply #37 Posted on: May 27, 2014, 01:28:39 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
I edited post above to add screenshots and more information. BTW these are results with the push vertex changes. I really feel this has nothing to do with the above nor the scrolling issue...... I even tried completely commenting out the vertex push lines and adding all kinds of insanely weird values and absolutely no visual change. I have something else to try. And Robert, I have tried exactly as suggested with the push vertices that's what I did...... Has no visual effect, anything I put as value changes nothing, the text is still displayed bad. vertices.push_back(round(x+0.5f)); vertices.push_back(round(y+0.5f));
This does not work, whenever I use round I get compile errors. Graphics_Systems/OpenGL1/GLModelStruct.h:260:35: error: conversion from 'double' to 'const value_type {aka const VertexElement}' is ambiguous vertices.push_back(round(x+0.5f)); vertices.push_back(round(y+0.5f)); ^ Graphics_Systems/OpenGL1/GLModelStruct.h:260:34: note: candidates are: vertices.push_back(round(x+0.5f)); vertices.push_back(round(y+0.5f)); ^ In file included from Graphics_Systems/OpenGL1/GLmodel.cpp:17:0: Graphics_Systems/OpenGL1/GLModelStruct.h:138:2: note: VertexElement::VertexElement(long unsigned int) VertexElement(unsigned long v): d(v) {} ^ Graphics_Systems/OpenGL1/GLModelStruct.h:137:2: note: VertexElement::VertexElement(gs_scalar) VertexElement(gs_scalar v): f(v) {} ^ In file included from d:\enigma\enigma\mingw32\include\c++\4.8.2\vector:64:0, from Graphics_Systems/OpenGL1/GLModelStruct.h:41, from Graphics_Systems/OpenGL1/GLmodel.cpp:17: d:\enigma\enigma\mingw32\include\c++\4.8.2\bits\stl_vector.h:901:7: error: initializing argument 1 of 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = VertexElement; _Alloc = std::allocator<VertexElement>; std::vector<_Tp, _Alloc>::value_type = VertexElement]' push_back(const value_type& __x) ^ In file included from Graphics_Systems/OpenGL1/GLmodel.cpp:17:0: Graphics_Systems/OpenGL1/GLModelStruct.h:260:70: error: conversion from 'double' to 'const value_type {aka const VertexElement}' is ambiguous vertices.push_back(round(x+0.5f)); vertices.push_back(round(y+0.5f)); ^ Graphics_Systems/OpenGL1/GLModelStruct.h:260:69: note: candidates are: vertices.push_back(round(x+0.5f)); vertices.push_back(round(y+0.5f)); ^ In file included from Graphics_Systems/OpenGL1/GLmodel.cpp:17:0: Graphics_Systems/OpenGL1/GLModelStruct.h:138:2: note: VertexElement::VertexElement(long unsigned int) VertexElement(unsigned long v): d(v) {} ^ Graphics_Systems/OpenGL1/GLModelStruct.h:137:2: note: VertexElement::VertexElement(gs_scalar) VertexElement(gs_scalar v): f(v) {} ^ In file included from d:\enigma\enigma\mingw32\include\c++\4.8.2\vector:64:0, from Graphics_Systems/OpenGL1/GLModelStruct.h:41, from Graphics_Systems/OpenGL1/GLmodel.cpp:17: d:\enigma\enigma\mingw32\include\c++\4.8.2\bits\stl_vector.h:901:7: error: initializing argument 1 of 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = VertexElement; _Alloc = std::allocator<VertexElement>; std::vector<_Tp, _Alloc>::value_type = VertexElement]' push_back(const value_type& __x) ^ mingw32-make.exe[1]: Leaving directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL' mingw32-make.exe: *** [Game] Error 2
I believe I know why this error, so I just added a line above the code x=round(x); y=round(y); and below vertices.push_back(x+0.5f); vertices.push_back(y+0.5f); NO changes. I also removed the 0.5f, I tried other numbers, no visual change. The only changes I make in the source code that has any visual effect is the d3d project ortho, it simply shifts the artifacts, but no range whatsoever eliminates them. The rest of the tweaks have no visual effect be it on text or scroll glitch.
|
|
« Last Edit: May 27, 2014, 02:49:43 pm by Darkstar2 »
|
Logged
|
|
|
|
TheExDeus
|
|
Reply #38 Posted on: May 27, 2014, 04:51:16 pm |
|
|
Joined: Apr 2008
Posts: 1860
|
I believe I know why this error, so I just That actually didn't do what I posted, it does what you did before. This would do what I posted: x=round(x+0.5); y=round(y+0.5); vertices.push_back(x); vertices.push_back(y); But I also don't think that would change much, because the screenshots you posted show something very peculiar. The first screenshot has two intensities, meaning there are different alpha channels in the texture. If you have AA set to None (as that is for the default font anyway), then you shouldn't see that. I just tested on my nvidia 660ti with newest drivers and the text is slightly buggy with default font in GL1 and GL3 (almost like before, maybe slightly worse). DX9 looks fine with default font. With a custom font GL1, GL3 and DX9 looks fine. So I cannot replicate your problems with an nvidia card and newest drivers. Can you also try downloading the newest ENIGMA installer and try that from scratch? It's possible you have changed something somewhere previously and that causes the problems now. I don't really have much ideas on what causes this for you.
|
|
|
Logged
|
|
|
|
Darkstar2
|
|
Reply #39 Posted on: May 27, 2014, 05:06:39 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
No I know enough about it now not to mess anything I shouldn't touch, and I keep backups of the cpp I touch.
BTW, I tried everything suggested even the first time Robert suggested I did try it, even the rounding thing, and yes even what you posted.
BTW, I just updated the latest drivers 337.88 from NVIDIA, released today. When updating drivers I do a clean install. I use driver sweeper (driver uninstall) in safe mode and clean all traces of NVIDIA driver / profiles, etc.
Then I use NVIDIA's official installer set to clean mode.
So far 337.88 works great, and works like version 314 I was using. The text is buggy, however I am able to find the proper offsets to display text properly in both FS and window, something I could not do in 335.xx from March. Weird. By that I mean the d3d projection ortho. The push vertices settings has absolute no visual effect.
Could this whole problem be caused by incomplete OpenGL textures or something not done right in ENIGMA's code ?
I have more tests to do now to see if I can find working values scrolling glitch. So far I am trying with 0.375, 0.375 d3d_projection_ortho and tested with many font sizes, down to size 5 full screen and window and all is well. when I get back home later I will try the rest and we can finally agree on what works for all of us.
If so I will have to re-test all the ranges given to me by Robert. Hopefully we can resolve this steaming pile of shite soon enough and move on to the next pile lol. These are the 337.88 drivers DEFAULT, I will try to see somehow if there is a setting in the driver that might cause this.
Also I'm wondering if ENIGMA used OGL1.4 instead of 1.1 would it help matters ?
//update: Updated: May 27, 2014: 6:35PM ET
I have clean installed recent NVIDIA drivers 337.88 released yesterday and with those I am able to find working ranges.
So after testing, I have found those to work with window, full screen, proper text, and no border problems, no scrolling glitches.
0.25,0.25 for d3d projection ortho
and 0.125, 0.125 for GL MODEL VIEW
Subject to change of course if new issues are discovered with other driver revisions or specific games.
This tested with default font and with declared fonts, anywhere ranging from size 5 to size 50, bold, no bold, AA no AA (all 3 levels). full screen, window, etc.
Tested at different screen and room resolutions from 640x480 up to 1920x1080.
0.375, 0.375 + 0.375, 0375 did not quite work for me Robert.
Oh and the 0.25, 0.25 and 0.125,0.125 combination that works for me now with the latest drivers, I randomly picked to re-test from your list. I did not test the entire ranges you gave me so I stopped at the one that worked and you mentioned works for you. If you want me to test the other ranges I will do so when I get back later tonight. but since they both work for us maybe we should stick to those.
|
|
« Last Edit: May 27, 2014, 06:08:20 pm by Darkstar2 »
|
Logged
|
|
|
|
Goombert
|
|
Reply #40 Posted on: May 27, 2014, 10:26:41 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
No those do not work for me and exhibit the scrolling artifacts.
These work for me, please try these ones: 0.375,0.375 and 0.175,0.175 0.175,0.175 and 0.375,0.375 0.1875,0.1875 and 0.1875,0.1875
0.175,0.175 and 0.175,0.175 0.275,0.275 and 0.175,0.175 0.175,0.175 and 0.275,0.275 0.6,0.6 and 0.4,0.4 0.4,0.4 and 0.6,0.6
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
Darkstar2
|
|
Reply #41 Posted on: May 27, 2014, 10:31:00 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
No those do not work for me and exhibit the scrolling artifacts.
These work for me, please try these ones: 0.375,0.375 and 0.175,0.175 0.175,0.175 and 0.375,0.375 0.1875,0.1875 and 0.1875,0.1875
0.175,0.175 and 0.175,0.175 0.275,0.275 and 0.175,0.175 0.175,0.175 and 0.275,0.275 0.6,0.6 and 0.4,0.4 0.4,0.4 and 0.6,0.6
Off to testing those I mentioned 0.25, 0.25 + 0.125, 0.125 because you said in a previous post that all these worked for you.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #42 Posted on: May 27, 2014, 10:38:16 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
I never said it worked for me, you can quote me on it. Try each of these combinations and report the behavior: 0.25,0.25 and 0.125,0.125 0.125,0.125 and 0.25,0.25 0.375,0.375 and 0.375,0.375 0.125,0.125 and 0.375,0.375 0.25,0.25 and 0.375,0.375 0.375,0.375 and 0.25,0.25 0.375,0.375 and 0.125,0.125
Once you tell me which ones work for you we can choose one of them that works for me too, and we'll go with it. I said once you tell me which ones work for you, I would test those and pick one that works for me as well. In my next consecutive post I listed only the ones that worked for me.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
Darkstar2
|
|
Reply #43 Posted on: May 27, 2014, 11:06:52 pm |
|
|
Joined: Jan 2014
Posts: 1238
|
This is what you wrote ...Also please try 0.25,0.25 for the projection and 0.125,0.125 for the model view matrix, and then vice versa. Let me know how each one performs, because all of those work for me.
Also something is very strange here, I have finished testing each new range you gave me, most worked fine, but when I came back to one of them, it did not work, I did not change anything but put back values I already tested. I gone through all the settings again, this time text is all bad, no scrolling issues, but text bad and visually identical in ALL offsets, when they worked before - I changed nothing else. Could it be possible ENIGMA is not properly flushing or clearing buffers or something I will restart computer and test again. and yes I tried reinstalling a clean new ENIGMA install same bloody shit!
|
|
« Last Edit: May 27, 2014, 11:18:22 pm by Darkstar2 »
|
Logged
|
|
|
|
Goombert
|
|
Reply #44 Posted on: May 27, 2014, 11:33:13 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
All I can say is I was lying, I can not tell you if I was being negligent or not. You have to keep your eyes focused quite a bit to notice the scrolling glitch.
At any rate no it has nothing to do with buffers of any sort, just tell me which of those values I just listed work.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
|