blonkm / rubiks-cube

WebGL Rubik's Cube
http://goo.gl/uDQH6U
MIT License
39 stars 10 forks source link

not showing cube on an old computer #51

Open bcube2 opened 9 years ago

bcube2 commented 9 years ago

I noticed this one week ago and it was confirmed today: on my very old computer the cube is not shown. PC, win 7, 32 bit. Under computer management - graphical adapters it only says "Standard graphical adapter with VGA resolution". Information about adapter:

Is there other solution than buying a new graphics card (or, better yet, new computer)?

P.S. both Werner´s, Lucas´ and Lars´ simulators are working on my old computer

Edit: it turned out to be browser issue: it works in IE 11 and does not work in FF 38 (my primary, other simulators tested in this one) and Chrome 23

blonkm commented 9 years ago

Short explanation: no. Longer explanation: the difference between this cube and e.g. Lars' Roofpig or Lucas' Twisty.js cubes is that they use a library called three.js (http://threejs.org/examples/). This adds overhead but with the advantage of being able to use either WebGL or Canvas. Using Canvas any browser can display the cube, but not use advanced lighting/shading etc. That's perhaps why their cubes also don't look that realistic. The java cube of Werner Randelshofer uses its own 3D lighting and shading code (quite elaborous and tremendous work).

I am really building this cube for my own site, and like it to be future proof, not past-proof. It has to be good looking.

However, I already have my tool called 'wpcube' for wordpress where I can instantly switch the type of cube used, so for me it won't be a big problem if this cube doesn't work. I can offer the user an alternative on the site. I am planning on integrating GLube into my wordpress plugin.

On Sat, May 23, 2015 at 2:03 AM, bcube2 notifications@github.com wrote:

I noticed this one week ago and it was confirmed today: on my very old computer the cube is not shown. PC, win 7, 32 bit. Under computer management - graphical adapters it only says "Standard graphical adapter with VGA resolution". Information about adapter:

  • chip type: NVIDIA
  • DAC type: 8 bit
  • bios system: chip rev A4
  • total available graphical memory: 128 MB

Is there other solution than buying a new graphics card (or, better yet, new computer)?

— Reply to this email directly or view it on GitHub https://github.com/blonkm/rubiks-cube/issues/51.

Michiel van der Blonk tel:+297-592-0952 info: http://about.me/michiel

bcube2 commented 9 years ago

Thank you for an explanation. You pretty much covered L&L cubes and Werner's java cube.

But what is the trick behind the fact that Werner's webGL cube is working too on my old computer in FF? I guess the answer is one more time "elaborous and tremendous work"?

blonkm commented 9 years ago

Difficult to say, perhaps it's more javascript related then. If you could Hit F12 to get a console and see if there is a javascript error that would be helpful.

On Sat, May 23, 2015 at 8:36 AM, bcube2 notifications@github.com wrote:

Thank you for an explanation. You pretty much covered L&L cubes and Werner's java cube.

But what is the trick behind the fact that Werner's webGL cube is working too on my old computer in FF? I guess the answer is one more time "elaborous and tremendous work"?

— Reply to this email directly or view it on GitHub https://github.com/blonkm/rubiks-cube/issues/51#issuecomment-104888870.

Michiel van der Blonk tel:+297-592-0952 info: http://about.me/michiel

bcube2 commented 9 years ago

I am giving you a report just as I obtained it after hitting F12. Hopefully it will be useful for you.

Error: WebGL: WebGL creation failed. rubiks.js:913:13 Error: WebGL: Refused to create ANGLE OpenGL context because of blacklisting. rubiks.js:913:90 Error: WebGL: Refused to create native OpenGL context because of blacklisting. rubiks.js:913:90 Error: WebGL: WebGL creation failed. rubiks.js:913:90 "Your browser supports WebGL, but initialization failed." rubiks.js:917:12 TypeError: gl is null rubiks.js:938:12

blonkm commented 9 years ago

Found this on http://www.html5gamedevs.com/topic/11939-nothing-works-but-all-demos-do/

go into about:config and set webgl.force-enabled to true

bcube2 commented 9 years ago

"go into about:config and set webgl.force-enabled to true"

when I did that, it gave me following report:

Error: WebGL: Error during ANGLE OpenGL init. rubiks.js:913:13 Error: WebGL: Error during native OpenGL init. rubiks.js:913:13 Error: WebGL: WebGL creation failed. rubiks.js:913:13 Error: WebGL: Error during ANGLE OpenGL init. rubiks.js:913:90 Error: WebGL: Error during native OpenGL init. rubiks.js:913:90 Error: WebGL: WebGL creation failed. rubiks.js:913:90 "Your browser supports WebGL, but initialization failed." rubiks.js:917:12 TypeError: gl is null rubiks.js:938:12

I fiddled with about:config and chrome://flags a bit, but did not manage to show the cube yet. The reason why Werner´s simulator works is still unknown to me (note: after you pointed out that applets are associated with java, I call JS version "a simulator", while java version "an applet").

Here is my current setting in ff:

bez nazvu

blonkm commented 9 years ago

It's most likely because of the antialias:true option. Anti-alias means to make smooth lines. I set it to true because I thought older browsers would just ignore it. But some video cards crash on this. I think I will make a new attribute 'data-legacy=true' which should try to prevent this and possibly other issues. Unless I am able to test for anti-alias, in which case it will be on if available.

bcube2 commented 9 years ago

As you already implied by "like it to be future proof, not past-proof.", I think it is better to focus on a scenario where a user will have newer browser and older computer components rather than to the case where he will have newer components but older browser.

Would you care about someone with over-prized computer with running IE6 on it? I know I would not...

Plus I have a theory that it might solve the "not showing on mobile devices" bug too...

"Unless I am able to test for anti-alias, in which case it will be on if available."

I am sorry, I am not following you. But I wish you good luck to fix this anti-alias problem.

bcube2 commented 9 years ago

Not sure if this information is helpful for you by any means, but on http://www.cubing.net/twisty.js/ I can see the cube no matter what renderer is selected. Interesting (for me) is the fact that if webgl is chosen, it does not react to the stage buttons (i.e. no matter what stage button I chose, the cube will be still looking the same). For svg and canvas it behaves as expected regarding stages. Animate Alg button works on my old computer for all thre renderers.

blonkm commented 9 years ago

The stages do work for me, so it's related to your graphics card or browser.

bcube2 commented 9 years ago

Hm. I am officially puzzled, since your simulator shows in IE => in other words graphics card supports it. It is not shown in FF (and Chrome), but with the same settings parameters (about:config regarding webgl for FF) and browser version (FF 38) it works on another computer...

On another computer the stages work for me as well for webgl renderer in case of Lucas´ simulator...

blonkm commented 9 years ago

Browsers have different ways to handle WebGL. It really depends on certain factors what things are left to the graphics card and how features are implemented, so WebGL will always be a bit unpredictable. Canvas and SVG are done entirely by the browser, so the implementations can be made exactly the same, even on different platforms and different hardware.

On Tue, May 26, 2015 at 3:04 AM, bcube2 notifications@github.com wrote:

Hm. I am officially puzzled, since your simulator shows in IE => in other words graphics card supports it. It is not shown in FF (and Chrome), but with the same settings parameters (about:config regarding webgl for FF) and browser version (FF 38) it works on another computer...

On another computer the stages work for me as well for webgl renderer in case of Lucas´ simulator...

— Reply to this email directly or view it on GitHub https://github.com/blonkm/rubiks-cube/issues/51#issuecomment-105420215.

Michiel van der Blonk tel:+297-592-0952 info: http://about.me/michiel

bcube2 commented 9 years ago

Oh, so the whole problem can be simplified to one question: is it worth to try to fix this somehow for (probably very small and still decreasing) number of computers, considering that these will die out in several months (years at most)? //rethorical question, no need to answer

blonkm commented 9 years ago

This could be related to #17 and #54