Page 3 of 12
Re: System Features: Rings - truncated planet
Posted: Tue Aug 15, 2017 12:04 pm
by gsagostinho
Hi RockDoctor,
RockDoctor wrote: ↑Tue Aug 15, 2017 9:49 am
I'm guessing that my laptop doesn't have a shader (enabled), and this truncation of half of the planet is being done by the ring code trying to do things which it can't do. According to the System Info Applet (Fed25) I've got an "Intel® Bay Trail" graphics chip. Is that shader-capable?
These images show that the shader code isn't working. Could you please post the contents of your Oolite's log? I believe you can also check in that file if shaders are enabled for you or not.
Edit: if shaders are supported by your video card, you should have the phrase "Shaders are supported." on the beginning of your log.
Shouldn't the code detect if there's not a shader (whatever one of those is) and fall back to the code that was working in version 1.x of the add-on?
Well, this is one of many OXPs which require shaders. If your card is not capable of using shader, then the easiest solution is not to install it. All changes I've made in the current version (when compared to 1.x) are cosmetic, and if the problem is that your card cannot handle the shaders then you should have the same black plane intersecting the planet with either version 1 or 2. But if you are telling me that this same card was capable of handling version 1.x but has issues with the current 2.4, then the problem should be something else.
Re: System Features: Rings - truncated planet
Posted: Tue Aug 15, 2017 5:46 pm
by RockDoctor
gsagostinho wrote: ↑Tue Aug 15, 2017 12:04 pm
Edit: if shaders are supported by your video card, you should have the phrase "Shaders are supported." on the beginning of your log.
I've got the full logs zipped, but I'm about to travel for a couple of days, and not taking the laptop with me.
The first few lines of ~/.Oolite/Logs/Latest.log are
Code: Select all
Opening log for Oolite version 1.84 (x86-64) under Linux 4.11.9-200.fc25.x86_64 at 2017-08-15 01:38:58 +0100.
2 processors detected.
Build options: OpenAL, new planets.
Note that the contents of the log file can be adjusted by editing logcontrol.plist.
01:38:59.665 [display.mode.list.native]: X11 native resolution detected: 1366 x 768
01:39:00.369 [joystick.init]: Number of joysticks detected: 0
01:39:00.370 [rendering.opengl.version]: OpenGL renderer version: 3.0.0 ("3.0 Mesa 17.0.5"). Vendor: "Intel Open Source Technology Center". Renderer: "Mesa DRI Intel(R) Bay Trail ".
01:39:00.371 [rendering.opengl.extensions]: OpenGL extensions (226):(long list removed)
01:39:00.540 [rendering.opengl.shader.support]: Shaders are supported.
So, there should be shaders. (BTW, the complaints others have made about Moire fringing don't seem too bad to me.)
Boogie, boogisimo, boogisimos !
Re: [Release] System Features: Rings
Posted: Tue Aug 15, 2017 8:15 pm
by gsagostinho
RockDoctor wrote:
01:39:00.540 [rendering.opengl.shader.support]: Shaders are supported.[/code]
So, there should be shaders.
Ok, so in that case you should be able to run this OXP without any issues. The problem is something else then.
I've got the full logs zipped, but I'm about to travel for a couple of days, and not taking the laptop with me.
No problems, but without your full log it's impossible to know what's going on. The log would contain any error messages caused by a shader. So no rush, but once you are back please send me your full log.
(BTW, the complaints others have made about Moire fringing don't seem too bad to me.)
That's very nice to know! But now I am having issues understanding your problem, so are you able to see the rings in some circunstances? I thought you only saw that black plane intersecting the planet.
Cheers,
Gilberto
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:01 pm
by RockDoctor
gsagostinho wrote: ↑Tue Aug 15, 2017 8:15 pm
That's very nice to know! But now I am having issues understanding your problem, so are you able to see the rings in some circunstances? I thought you only saw that black plane intersecting the planet.
If you look at the screenshots I posted earlier, you'll see elliptical arcs of colour centred around something not-the-planet-centre. I don't know if that's the rings plotting in the wrong place. Overlaying that is the blackout-annular plane.
will try to figure out how to mail you the logs. My fickr account will probably object to non-image files.
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:06 pm
by Cody
RockDoctor wrote: ↑Wed Aug 16, 2017 11:01 pmwill try to figure out how to mail you the logs. My fickr account will probably object to non-image files.
Open a free Box account and host them there?
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:12 pm
by RockDoctor
gsagostinho wrote: ↑Tue Aug 15, 2017 8:15 pm
No problems, but without your full log it's impossible to know what's going on. The log would contain any error messages caused by a shader. So no rush, but once you are back please send me your full log.
Board's User-control-panel tells me I have no posted files (implying that I can post files ??), but I can't see how. My blog won't take non--images either. Need an email address?, or is there another technique?
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:13 pm
by gsagostinho
RockDoctor wrote:
If you look at the screenshots I posted earlier, you'll see elliptical arcs of colour centred around something not-the-planet-centre.
That's really nothing, that's the same I see here if I make a mistake in the shader code and it fails to load. Basically, if the shader is broken, then you can see the plane where the rings are "printed upon". Those alliptical arcs are really just artifacts of how this plane gets illuminated, nothing to do with the shader code.
will try to figure out how to mail you the logs. My fickr account will probably object to non-image files.
Dropbox could be an option, or you can also post it here as code (see the button on the form). I am interested in any errors involving this OXP or shaders in general, anything to do with GLSL.
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:17 pm
by RockDoctor
Cody wrote: ↑Wed Aug 16, 2017 11:06 pm
Open a free Box account and host them there?
URL for Box? (googling)
From
www.box.com : Starter £3.5 per user/month
I get enough spam from Dropbox on my phone to trust them like something I don't trust.
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:19 pm
by Cody
Copy and paste the log into a post, highlight it, and hit the Code button.
Free Box account
here - minimal sign-up, no hassle.
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:21 pm
by gsagostinho
@Cody thanks for the tips. Another option would be using some of these free services which saves text for "eternity" (allegedly), such as
Just Paste It.
Re: [Release] System Features: Rings
Posted: Wed Aug 16, 2017 11:29 pm
by RockDoctor
gsagostinho wrote: ↑Tue Aug 15, 2017 8:15 pm
No problems, but without your full log it's impossible to know what's going on. The log would contain any error messages caused by a shader. So no rush, but once you are back please send me your full log.
I hope this link dos it - ~/.Oolite/Logs/Latest.Log and Previous.Log in a zip file.
https://app.box.com/s/j06i2kvbt2exuisdnf4cn4laro67bhpk
(Incidentally, zip, is about 50kb, but the logs themselves around 3x max post size here.)
Re: [Release] System Features: Rings
Posted: Thu Aug 17, 2017 12:25 am
by phkb
Looks like the important bit is in the "previous.log" file.
Code: Select all
13:29:20.550 [shader.compile.failure]: ***** ERROR: GLSL fragment shader compilation failed for systemfeatures-rings.fragment:
>>>>> GLSL log:
0:80(26): error: no matching function for call to `pow(float, int)'; candidates are:
0:80(26): error: float pow(float, float)
0:80(26): error: vec2 pow(vec2, vec2)
0:80(26): error: vec3 pow(vec3, vec3)
0:80(26): error: vec4 pow(vec4, vec4)
0:80(19): error: operands to arithmetic operators must be numeric
0:80(12): error: operands to arithmetic operators must be numeric
0:80(12): error: operands to arithmetic operators must be numeric
0:89(6): warning: `r' used uninitialized
13:29:20.551 [shader.load.failed]: ***** ERROR: Could not build shader systemfeatures-rings.vertex/systemfeatures-rings.fragment.
13:29:22.828 [files.notFound]: ----- WARNING: Could not find texture file "systemfeatures-rings.png".
The thing is, I would have expected this error to be in both logs. It's like the shader compiled OK one time, but then failed on another.
Edit: (lightbulb) Unless, the shader code is only compiled if the player does a hold-shift-and-restart, otherwise the previous compiled (or in this case, uncompiled) version is in play.
Re: [Release] System Features: Rings
Posted: Thu Aug 17, 2017 7:42 am
by another_commander
The shaders are not cached. You can check this by changing any shader and running the game without Shift. The change is applied immediately. So not sure why the error is present only in one log, maybe the entire ring shader was not run at all in one case due to conditions applying to rings' appearance?
Anyway, the error seems to be this line here:
Code: Select all
float r = 0.15 + 0.05 * pow(sin(r2 * 20000.0), 8) + 0.4 * noise3; // smaller thin bands + noise (when closeup)
pow is invoked with two parameters, of which the second is an int, which is probably not casted to float by the glsl compiler. If this is the only error, then the fix could simply be
Code: Select all
float r = 0.15 + 0.05 * pow(sin(r2 * 20000.0), 8.0) + 0.4 * noise3; // smaller thin bands + noise (when closeup)
Try it and see if that makes the rings appear correctly again.
Re: [Release] System Features: Rings
Posted: Thu Aug 17, 2017 8:40 am
by RockDoctor
phkb wrote: ↑Thu Aug 17, 2017 12:25 am
Edit: (lightbulb) Unless, the shader code is only compiled if the player does a hold-shift-and-restart, otherwise the previous compiled (or in this case, uncompiled) version is in play.
I had been loading and unloading variants of the UPS Courier add-on previously, so there had been re-starts.
Re: [Release] System Features: Rings
Posted: Thu Aug 17, 2017 10:55 am
by gsagostinho
another_commander wrote:
Anyway, the error seems to be this line here:
Code: Select all
float r = 0.15 + 0.05 * pow(sin(r2 * 20000.0), 8) + 0.4 * noise3; // smaller thin bands + noise (when closeup)
pow is invoked with two parameters, of which the second is an int, which is probably not casted to float by the glsl compiler. If this is the only error, then the fix could simply be
Code: Select all
float r = 0.15 + 0.05 * pow(sin(r2 * 20000.0), 8.0) + 0.4 * noise3; // smaller thin bands + noise (when closeup)
Try it and see if that makes the rings appear correctly again.
Sigh. GLSL is such a pain, you make a mistake with types or range of values and a whole bunch of GPUs handle it as if nothing happen, just to find one that doesn't. Same story with those negative numbers inside of pow(), in theory the first argument of pow() should be always positive (that's the standard), but for some reason some drivers are written to also handle negative ones making troubleshooting absolutely maddening.
Anyway, thanks for spotting this, a fix is on its way. I will test on my ATI and Intel cards before updating it.