Celestia 1.7.0 Development Thread

The place to discuss creating, porting and modifying Celestia's source code.
Avatar
Lafuente_Astronomy
Moderator
Posts: 285
Joined: 04.08.2018
Age: 21
With us: 10 months 21 days
Location: Cebu, Philippines
Contact:

Post #421by Lafuente_Astronomy » 10.06.2019, 13:52

pirogronian wrote:The only think I can imagine is outdated OpenGL commands, which modern drivers don't perform efficently.

Pretty much. Is there a chance you can update the OpenGL commands to be up to date with the latest drivers?

Added after 1 minute 31 seconds:
And also, if done, will it greatly increase the performance of Celestia as a whole?
Official Administrator of the Celestia Discord Server.
Invite: https://discordapp.com/invite/WEWDcJh
If you don't have a Discord account, register here: https://discordapp.com/register
Have a blessed day.

pirogronian
Developer
Posts: 125
Joined: 05.01.2018
With us: 1 year 5 months
Location: Wrocław

Post #422by pirogronian » 10.06.2019, 13:57

Lafuente_Astronomy wrote:Is there a chance you can update the OpenGL commands to be up to date with the latest drivers?
onetwothree already is working on it.

Lafuente_Astronomy wrote:if done, will it greatly increase the performance of Celestia as a whole?
I have no idea.

john71
Posts: 427
Joined: 10.08.2016
With us: 2 years 10 months

Post #423by john71 » 10.06.2019, 14:28

pirogronian, I have multiple star barycenters orbiting a black hole, gas giants with many moons, the Earth-like moons have sometimes hundreds of spacecrafts around them + large cities on the surface.

pirogronian
Developer
Posts: 125
Joined: 05.01.2018
With us: 1 year 5 months
Location: Wrocław

Post #424by pirogronian » 10.06.2019, 14:33

john71 wrote:I have multiple star barycenters orbiting a black hole, gas giants with many moons, the Earth-like moons have sometimes hundreds of spacecrafts around them + large cities on the surface.

It would be useful to know exactly when lagging occurs: what kind of objects are in field of view (and their average numbers).

john71
Posts: 427
Joined: 10.08.2016
With us: 2 years 10 months

Post #425by john71 » 10.06.2019, 14:37

And very large textures, but dds types.

Added after 4 minutes 7 seconds:
pirogronian, The lagging occurs when there are a lot of objects in visible range and you change the view rapidly. It is not a "freezing", it is a very visible "lagging" of a lot of objects.

Added after 4 minutes 32 seconds:
It usually happens near planets with very high resolution textures (3 levels, 32k) and dozens of starships or space stations.

Topic author
onetwothree
Developer
Posts: 207
Joined: 22.09.2018
With us: 9 months 3 days

Post #426by onetwothree » 10.06.2019, 21:23

Lafuente_Astronomy wrote:And also, if done, will it greatly increase the performance of Celestia as a whole?

It depends on OS, video card and drivers used. On my old system with fullhd monitor I had ~40 fps on GNU/Linux with free drivers while on Win7 with proprietary drivers there were ~70 fps. Perf said that CPU was mostly occupied by memory coping functions. With modern OpenGL we can greatly decrease number of such copy invocations (not for star field however).

Avatar
Lafuente_Astronomy
Moderator
Posts: 285
Joined: 04.08.2018
Age: 21
With us: 10 months 21 days
Location: Cebu, Philippines
Contact:

Post #427by Lafuente_Astronomy » 10.06.2019, 21:30

onetwothree wrote:It depends on OS, video card and drivers used. On my old system with fullhd monitor I had ~40 fps on GNU/Linux with free drivers while on Win7 with proprietary drivers there were ~70 fps. Perf said that CPU was mostly occupied by memory coping functions. With modern OpenGL we can greatly decrease number of such copy invocations (not for star field however).

That's good to know. In this way, Celestia will be able to handle much more items better. With regards to star field, Janus was able to increase its size on some of his forks, so there must be another aspect of Celestia's programming that can be fixed to increase star field size.
Official Administrator of the Celestia Discord Server.
Invite: https://discordapp.com/invite/WEWDcJh
If you don't have a Discord account, register here: https://discordapp.com/register
Have a blessed day.

Janus
Posts: 378
Joined: 13.08.2016
With us: 2 years 10 months

Post #428by Janus » 10.06.2019, 22:45

What I reset was a limit designed to keep rounding errors in positioning from getting out of hand.
Changing the underlying limit requires doing positioning in double instead of single. DOUBLE replacing FLOAT to be exact.
Doing that is a lot of work.
There are places where bit sized variables are assumed, so all of those need to be switched.

I made a fork with DOUBLE in the database and starting on switching everything over, but I never got any feedback on it, so I dropped the work.
It will be several weeks, or maybe months, before I can start on Celestia again.
My current job is a massive P.I.T.A., teaching programmers and engineers to communicate.
Engineers have no respect for stack space, memory, explaining things that are implicit to them.
Programmers have no respect for units actually used in the field being used in the program, why the UI needs to be based on the actual machine, or explaining things that are implicit to them.
It would be faster to just do the whole job myself, but they need to be able to maintain it after I leave.
The pay is great though, even if I do feel more like a referee than anything else.


Janus.

Avatar
Lafuente_Astronomy
Moderator
Posts: 285
Joined: 04.08.2018
Age: 21
With us: 10 months 21 days
Location: Cebu, Philippines
Contact:

Post #429by Lafuente_Astronomy » 11.06.2019, 01:08

Janus wrote:made a fork with DOUBLE in the database and starting on switching everything over, but I never got any feedback on it, so I dropped the work.

Perhaps you can ask the devs to try that out and maybe it can be used in the development of Celestia 1.7.0
Official Administrator of the Celestia Discord Server.
Invite: https://discordapp.com/invite/WEWDcJh
If you don't have a Discord account, register here: https://discordapp.com/register
Have a blessed day.

pirogronian
Developer
Posts: 125
Joined: 05.01.2018
With us: 1 year 5 months
Location: Wrocław

Post #430by pirogronian » 11.06.2019, 06:43

john71 wrote:It usually happens near planets with very high resolution textures (3 levels, 32k) and dozens of starships or space stations.

Modern graphics engines optimizes multiple objects and complex meshes view by dedicated octrees. In Celestia octrees are only for stars and dsos. So, Celestia wll render all objects within current planetary system. At least I think so.

john71
Posts: 427
Joined: 10.08.2016
With us: 2 years 10 months

Post #431by john71 » 11.06.2019, 10:37

pirogronian, As I know Celestia won't load any textures or meshes if it does not "see" them. But the problem is surely not with the very large meshes or textures, because they work fine after loading them into memory.

The problem is with a lot of objects, orbits etc., which are simultaneously present.

So it should be an octree or an inner processing problem. Celestia is not able to use more CPU power to process more data.
:think:


Return to “Development”

Who is online

Users browsing this forum: 3 guests