Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use modern OpenGL #26

Open
v1993 opened this issue Jan 2, 2019 · 5 comments
Open

Use modern OpenGL #26

v1993 opened this issue Jan 2, 2019 · 5 comments
Assignees
Labels
Priority: P4 Low priority T: Enhancement New feature or request

Comments

@v1993
Copy link
Member

v1993 commented Jan 2, 2019

Is your feature request related to a problem? Please describe.
If we want to make it possible to port cubosphere to mobile world, using OpenGL 3.1+ is simply a requiment.

This will be huge work, and lua shaders will be just gone, but it is just required.

Describe the solution you'd like
Replace Fixed Pipeline with Programmable one, i.e. GL shaders + VBO.

Describe alternatives you've considered
There are two of them:

  1. Throw out cubosphere and write cubosphere 2.0 from int main. Looking at all arhitecture flaws and problems, it is probably a right way…
  2. Just ignore entire problem and use OpenGL 2.0.

Additional context
Nope.

@v1993 v1993 added the T: Enhancement New feature or request label Jan 2, 2019
@v1993 v1993 self-assigned this Jan 2, 2019
@ghost ghost pinned this issue Jan 21, 2019
@ghost ghost unpinned this issue Jan 21, 2019
@qwertychouskie
Copy link
Member

Actually, for best compatibility for older Android devices, GLES 2 support is important.

@ghost
Copy link

ghost commented Mar 31, 2019

Personally, I'd go with rewriting the whole thing. It would be more rewarding than putting it off until OpenGL 2 is basically dead (or later).

The old PC in my bedroom won't like it either way.

@v1993
Copy link
Member Author

v1993 commented Apr 1, 2019

@cddepppp256 Yeah, I completely agree with you. To achive better compatiblity with mobile devices (which have very limited shader support) and overall portability across modern ones I seriously think about using vulkan. It also will be very useful for me personally to learn it.

@qwertychouskie
Copy link
Member

The number of Android devices that support Vulkan is quite small (https://www.quora.com/What-kind-of-Android-devices-are-compatible-with-Vulkan). Honestly for supporting the most devices OpenGL ES 2.0 is necessary at least as a fall-back renderer. OpenGL ES 3.0 will also run on a decent chunk of devices, but just because a device supports the API doesn't mean it is powerful enough to run a full-fat rendering engine.

In short, the quickest way to get Cubosphere running on the most devices is to tweak the current renderer to also support OpenGL ES 2.0.

P.S. I just had a crazy idea: Cubosphere using WebAssembly and WebGL, running in a browser :)

@v1993
Copy link
Member Author

v1993 commented Apr 2, 2019

@qwertychouskie Tweaking for OpenGL 3.0 is very, very hard to do. You can try, but overall work is so tedious that I'm not going to do it at all. I don't think that modifying such overall bad designed project that much is good idea, honestly.

As for Vulkan, there are libs which allow using it with OpenGL as backend.

@qwertychouskie qwertychouskie added the Priority: P4 Low priority label Apr 24, 2019
@v1993 v1993 mentioned this issue Apr 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Priority: P4 Low priority T: Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants