Any way to control calls to hook script? dt in tick-fct.?

The place to discuss creating, porting and modifying Celestia's source code.
Topic author
Stuffer
Posts: 67
Joined: 03.12.2008
With us: 15 years 11 months
Location: Stuttgart, Germany

Any way to control calls to hook script? dt in tick-fct.?

Post #1by Stuffer » 18.03.2009, 12:20

Hi

I have a hookup script reading values from a socket.
To repeat the reading/receiving process I used the tick()-function.
Is there anyway to control how often the tick-function is called from Celestia? Can I choose a particular dt to give to the tick()-function to achieve that?

Another thing occurs when Celestia connects to the server that writes the values onto the socket.
I start the server then I start Celestia.
Very soon Celestia connects to the socket, but if I insert a counter that counts the accesses to the socket this one starts to count only as soon as Celestia displays Earth (I write with print() ).
So there's a relevant delay between getting the first value and using it.
Also when I close the server Celestia counts further on for about 20 seconds and when this time is over the s/c using the rotation values from the socket freezes.
How can that be?
Is there any sort of Memory Celestia is writing into?
Or am I completely wrong here interpreting Celestia's behaviour?
Is this a usual behaviour of a socket connection?

I would really appreciate if anyone could help here since this delay is bad for real-time performance with a simulator:
Thanks in advance.
Stuffer
Win XP Pro x Core2Duo 2,1GHz x 2 GB RAM x NVidia Quadro FX 1500 256 MB

Topic author
Stuffer
Posts: 67
Joined: 03.12.2008
With us: 15 years 11 months
Location: Stuttgart, Germany

Re: Any way to control calls to hook script? dt in tick-fct.?

Post #2by Stuffer » 12.05.2009, 09:04

Hi,

is there any way to determine how often Celestia redraws the display? I would need this information in order to synchronize a socket connection to a real-time simulator.

I'm using the tick()-function. Is there a way to determine the time period dt?

Thanks for any answer.
--Stuffer
Win XP Pro x Core2Duo 2,1GHz x 2 GB RAM x NVidia Quadro FX 1500 256 MB

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Re: Any way to control calls to hook script? dt in tick-fct.?

Post #3by selden » 12.05.2009, 10:13

I'd suggest providing updated positions at your computer's screen's refresh rate.

Make sure that the graphics hardware is configured with Vertical Sync enabled. In the current Nvidia Control Panel, that setting is at the bottom of the "Manage 3D Settings" page. I don't know where it is in the display management software of other types of graphics hardware.

Even with that set, Celestia usually does not have a fixed refresh rate.

It tries to redraw its window as often as the host computer's screen is refreshed, but usually cannot because of the many calculations it has to make to determine the updated positions of objects. When it can keep up, Celestia redraws the screen at whatever refresh rate you've selected for your computer's display, and uses less than 100% of one CPU. (Celestia is single threaded and cannot take advantage of multiple cores.) Because of this, you should set the screen refresh rate as slow as you can. When it cannot keep up, Celestia redraws the screen as often as it can.
Selden

Topic author
Stuffer
Posts: 67
Joined: 03.12.2008
With us: 15 years 11 months
Location: Stuttgart, Germany

Re: Any way to control calls to hook script? dt in tick-fct.?

Post #4by Stuffer » 12.05.2009, 10:35

Selden,

thank you very much for your answer.
I'll give it a try as you proposed.

Is there any way to reduce the need of calculations that Celestia has to perform drastically? In a way that it has influence?

Stuffer
Win XP Pro x Core2Duo 2,1GHz x 2 GB RAM x NVidia Quadro FX 1500 256 MB

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Re: Any way to control calls to hook script? dt in tick-fct.?

Post #5by selden » 12.05.2009, 11:18

Stuffer wrote:Selden,

thank you very much for your answer.
I'll give it a try as you proposed.

Is there any way to reduce the need of calculations that Celestia has to perform drastically? In a way that it has influence?

Stuffer

Only by minimizing the number of things it has to draw. E.g. eliminate what you can from the field of view, turn down the limiting magnitude (i.e. reduce the number of stars) and disable as many rendering options as possible.

You can also monitor the fps that Celestia is providing by typing a ` (accent-grave). Its FPS is shown in the bottom left corner of Celestia's window.
Selden

Topic author
Stuffer
Posts: 67
Joined: 03.12.2008
With us: 15 years 11 months
Location: Stuttgart, Germany

Re: Any way to control calls to hook script? dt in tick-fct.?

Post #6by Stuffer » 28.05.2009, 11:22

Selden,

thank you very much.
The graphic card I am using only has a memory of 128MB (ATI FireGL V3100).
Could the frame rate be increased by a better graphic card?
Win XP Pro x Core2Duo 2,1GHz x 2 GB RAM x NVidia Quadro FX 1500 256 MB

Avatar
selden
Developer
Posts: 10192
Joined: 04.09.2002
With us: 22 years 2 months
Location: NY, USA

Re: Any way to control calls to hook script? dt in tick-fct.?

Post #7by selden » 28.05.2009, 13:29

Stuffer,

A faster graphics card will help somewhat, especially if you are looking at complex models and high resolution textures on a large screen with antialiasing enabled.

A faster CPU probably will help more, since it'll reduce the time required for Celestia's internal calculations.

A faster disk will help reduce Celestia's startup time and minimize the pauses seen when new objects come into view, since it'll take less time to load models and textures. These days, a larger disk improves loading performance because it reads more sectors in one revolution.

More RAM will help if you have many objects, since Celestia won't have to page to disk. This performance issue shows up as unpredictable pauses.
Selden

Topic author
Stuffer
Posts: 67
Joined: 03.12.2008
With us: 15 years 11 months
Location: Stuttgart, Germany

Re: Any way to control calls to hook script? dt in tick-fct.?

Post #8by Stuffer » 08.06.2009, 09:10

Thanks Selden,

I observed a display refresh rate of over 100fps. This occurred on a work stations with an ATI FireGL graphic card. I set the details as low as possible.
Actually I didn't find the Vertical Sync for my graphic card but I'm still wondering, is there a limit for the refresh rate?
Am I right to say that if it is activated, the refresh rate would not be higher than 60fps?

Is there a maximum size of a model that you would suggest? I got a model exported from CATIA V5 and it's very complex.
I think as CMOD it has several 10MBs. I tried to reduce it as far as possible but it still has a size of over 1MB.

Thanks
Stuffer
Win XP Pro x Core2Duo 2,1GHz x 2 GB RAM x NVidia Quadro FX 1500 256 MB


Return to “Development”