OpenGL可視化如​​何運行數週?


1

對於一個藝術項目,我需要使OpenGL可視化運行至少4週。這可能嗎?我幾乎可以選擇其餘的硬件和軟件。

3

Yes, of course. The duration it has to run for doesn't make much difference. Your Android smartphone's main GUI is OpenGL, and phones typically have an uptime longer than four weeks. Air Traffic Control centres might use OpenGL SC (the subset of GL for safety-critical applications) continuously for months or years.

If you do have free choice of software, OpenGL is probably not the thing you're concerned about. Artists often use Processing for art projects, because it's simple and lets you get to drawing stuff on the screen with minimal 'boilerplate' code. It's very nice for drawing maths-as-art: particle systems, L-systems, strange attractors, &c. For a 3D scene that's supposed to look like the real world, Unity 3D might be a good choice: it's a game engine that handles all the use of OpenGL or DirectX for you, so you can create the scene you want to draw without much programming.

If you have more recommendation- or opinion-based questions about what might be useful to look at, maybe drop into our chat room and be ready to tell us what kind of art project you're making.


5

Opengl doesn't care how long it has been running.

However there are a few other challenges with long running applications in general:

  1. memory leaks, both normal ones and opengl resources.

  2. lack of precision after incrementing a float to a big number. After 4 weeks your millisecond counter will be at 2.4 billion which is well beyond the point where integers cannot be expressed exactly in a single precision floating point number. Make sure that those numbers are wrapped down to a smaller value explicitly.


2

To make an application, OpenGL or not, run for extended time safety-critical applications are mostly built to restart on error, be it a driver bug, your application is broken, or hardware failure. If function during the downtime is required you need redundnacy. In your case maybe start multiple sessions of the same program, or even having dual computers running the same program outputing to the same display.

OpenGL is no different from other applications, BUT vendors optimize and test for certain kinds of customers. Your scenario is not common so be suspicious.