Linux playground

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
230
Reaction score
266
Points
78
Location
On my chair
Nice work !
I becomes better and better. But the OGLA client used is very old as we can expect some slight frame drops with detailed elevated terrain (eg. while moving the camera around the runway at KSC, the moving is not perfectly smooth). But curiously I have much less frame drops than with wine. But it is not as smooth as with the D3D9 client used on windows. I think it will be needed to rework the opengl client from scratch, but I am not skilled for that and I don't know who could invest some time in that.
Anyways and still, keep up this good work !
This has nothing to do with the old OGLAClient, this is a "new" OpenGL 3.3 client based on the D3D7 one (but still crappier than OGLA I reckon😅)
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
230
Reaction score
266
Points
78
Location
On my chair
You shouldn't belittle what you've done so far. That's one small step for you, one giant leap for the Linux Orbiter community.
lol, I'm not belittling, the OGL client is subpar ;)
Speaking of which, I would need some starting screenshots of the following scenarios on Windows with the git version of Orbiter to play the 5 differences game on them :
  • Demo/DG ISS Approach
  • XR2/On approach to ISS
  • Deltaglider/Cape Canaveral
  • NASSP/Apollo 11 - T - 30s, with the 2D panel scrolled down so that the checklist MFD is fully visible
Can somebody do me the favor?
Thanks in advance, it would help me a lot to work on the text size/alignment issue with the sketchpad
For reference they look like this :
Demo - DG ISS Approach.pngXR2 - On approach to ISS.pngDeltaglider - Cape Canaveral.pngApollo11 - T-30s.png
 

Jordan

Active member
Joined
May 13, 2010
Messages
136
Reaction score
80
Points
43
Location
Germany
lol, I'm not belittling, the OGL client is subpar ;)
Speaking of which, I would need some starting screenshots of the following scenarios on Windows with the git version of Orbiter to play the 5 differences game on them :
  • Demo/DG ISS Approach
  • XR2/On approach to ISS
  • Deltaglider/Cape Canaveral
  • NASSP/Apollo 11 - T - 30s, with the 2D panel scrolled down so that the checklist MFD is fully visible
Can somebody do me the favor?
Thanks in advance, it would help me a lot to work on the text size/alignment issue with the sketchpad
For reference they look like this :
View attachment 31363View attachment 31364View attachment 31365View attachment 31366

Here are the requested screenshots, except XR2 which I didn't install.
Screenshots
There is something unusual with Deltaglider Cape Canaveral.
 

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,051
Reaction score
632
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
Hi @Gondos,
Here I am again with my Orbiter Linux reports. They are few but I prefer to publish some reports to wait to have more available.

These are the bugs I found:

-The splash screen does not appear, I already tried it in all the scenarios. Maybe is because I have Intel integrated graphics? https://drive.google.com/file/d/1mgbwHs5Hgwwkz_AoaOxey_4f90hNc2E1/view?usp=sharing
-In the DeltaGlider S the SCRAM engine is heard despite not being active or being in space. SCRAM is also heard when I apply the hover engine. https://drive.google.com/file/d/1t6GVvIVgb2iGXS902nwpX0fYEG3LSxUS/view?usp=sharing
-In MapMFD the line and shadow of the terminator occupy the entire map. https://drive.google.com/file/d/1ZizYX_N-EPb1RB1pBCvLqvoWa05y5M4I/view?usp=sharing
-The DeltaGlider XR1's computer text flickers incessantly. https://drive.google.com/file/d/1LAXc4SoeHWk5AM-ktF85ZYsmATp6uSIt/view?usp=sharing

What I tried:
-DeltaGlider and DeltaGlider S
-Delta Glider XR1
-G42-200 StarLiner

Orbiter logs are attached.
---------------------------------------------------

One question, does the current graphical client support normalmaps?

I also have another question, can I move my orbiter_test folder to another linux pc? is it portable?


I have a suggestion, I think it would be nice, for the sake of compatibility, if @fred18's VesselBuilder and General Vehicle could be included. As far as I know it is open source software but I think one needs some permission to include it. I'm not sure, but maybe you can talk to @fred18. And if it can't I would like to know how to add and compile add-ons for Orbiter Linux directly from source.

By the way, I've been thinking about all the work that goes into porting the graphical client and sound, and making it compatible with ALSA, pulse, etc. I know almost nothing about programming but I realize that it is a very big job. Keep up the excellent work. In my case I will continue testing Orbiter Linux.
 

Attachments

  • orbiter_blink_text_log.txt
    5.7 KB · Views: 0
  • orbiter_MapMFD_log.txt
    4.4 KB · Views: 0
  • orbiter_splashscreen_log.txt
    4.3 KB · Views: 0

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
230
Reaction score
266
Points
78
Location
On my chair
-The splash screen does not appear, I already tried it in all the scenarios. Maybe is because I have Intel integrated graphics? https://drive.google.com/file/d/1mgbwHs5Hgwwkz_AoaOxey_4f90hNc2E1/view?usp=sharing
Hum, I see no reason for it to be related to integrated graphics. Are you sure the make install completed successfully?
-In the DeltaGlider S the SCRAM engine is heard despite not being active or being in space. SCRAM is also heard when I apply the hover engine. https://drive.google.com/file/d/1t6GVvIVgb2iGXS902nwpX0fYEG3LSxUS/view?usp=sharing
I think this is what the "Landed Wind" + "Air Conditioning" sounds sound like? The SCRAM sounds more like a turbine than white noise
-In MapMFD the line and shadow of the terminator occupy the entire map. https://drive.google.com/file/d/1ZizYX_N-EPb1RB1pBCvLqvoWa05y5M4I/view?usp=sharing
Yes, that's a known issue, I was hoping the switch to nanovg would fix that. There's probably some more work to make concave polygons behave properly...
That one should now be fixed :)
One question, does the current graphical client support normalmaps?
Not at the moment, it shouldn't be too difficult for someone knowledgeable to add it
I also have another question, can I move my orbiter_test folder to another linux pc? is it portable?
It should work if this is a similar distro with the correct packages installed
I have a suggestion, I think it would be nice, for the sake of compatibility, if @fred18's VesselBuilder and General Vehicle could be included. As far as I know it is open source software but I think one needs some permission to include it. I'm not sure, but maybe you can talk to @fred18. And if it can't I would like to know how to add and compile add-ons for Orbiter Linux directly from source.
VB contains a lot of Windows specific code for its user interface, it would require a large rewrite to make it work on linux
GV's license is not compatible with the GPL. I took a look at it when porting the Deepstar since its rovers use it ; it shouldn't be too difficult to port but I'd prefer working on a physically based vehicle mod
By the way, I've been thinking about all the work that goes into porting the graphical client and sound, and making it compatible with ALSA, pulse, etc. I know almost nothing about programming but I realize that it is a very big job. Keep up the excellent work. In my case I will continue testing Orbiter Linux.
AFAIC pulseaudio is a steaming pile of shit, I won't waste any time on it.
 

Sword7

Member
Joined
Mar 23, 2008
Messages
140
Reaction score
16
Points
18
Location
Gaithersburg, MD
VB contains a lot of Windows specific code for its user interface, it would require a large rewrite to make it work on linux
GV's license is not compatible with the GPL. I took a look at it when porting the Deepstar since its rovers use it ; it shouldn't be too difficult to port but I'd prefer working on a physically based vehicle mod

I found VesselBuilder on GitHub but can't find GeneralVehicle. VB is written in C++ but uses a lot of Windows function calls. It needs to being changed a lot for compatible with cross-platform libraries like Qt, GTK, Gnome, etc.

I also am looking some MFD modules for interplanetary, reentry, aerobrake, etc as open-source repos...

I looked into Orbiter's VSOP 87 and ELP 82 codes and noticed some code for velocity calculations that are not found in original VSOP 87 and ELP 82 packages from websites. Where did you find additional codes for velocity calculations? Yes, I noticed same codes from original VSOP 87 and ELP 82 codes but someone added some code for velocity calculations.
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
230
Reaction score
266
Points
78
Location
On my chair
I found VesselBuilder on GitHub but can't find GeneralVehicle. VB is written in C++ but uses a lot of Windows function calls. It needs to being changed a lot for compatible with cross-platform libraries like Qt, GTK, Gnome, etc.
GeneralVehicle's source code is provided along the binary module in the zip file.
I looked into Orbiter's VSOP 87 and ELP 82 codes and noticed some code for velocity calculations that are not found in original VSOP 87 and ELP 82 packages from websites. Where did you find additional codes for velocity calculations? Yes, I noticed same codes from original VSOP 87 and ELP 82 codes but someone added some code for velocity calculations.
Hum, what function exactly? I don't remember doing changes in these parts. Most likely Martin did some tweaking there...
 

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,051
Reaction score
632
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
Hum, I see no reason for it to be related to integrated graphics. Are you sure the make install completed successfully?

I think this is what the "Landed Wind" + "Air Conditioning" sounds sound like? The SCRAM sounds more like a turbine than white noise

Yes, that's a known issue, I was hoping the switch to nanovg would fix that. There's probably some more work to make concave polygons behave properly...

That one should now be fixed :)

Not at the moment, it shouldn't be too difficult for someone knowledgeable to add it

It should work if this is a similar distro with the correct packages installed

VB contains a lot of Windows specific code for its user interface, it would require a large rewrite to make it work on linux
GV's license is not compatible with the GPL. I took a look at it when porting the Deepstar since its rovers use it ; it shouldn't be too difficult to port but I'd prefer working on a physically based vehicle mod

AFAIC pulseaudio is a steaming pile of shit, I won't waste any time on it.
The splash screen still doesn't appear after a complete reinstall from scratch. It's not a major bug anyway, it's cosmetic, and probably works for other people.

The XR1's computer screen works perfectly now.

I will continue testing...
 

Sword7

Member
Joined
Mar 23, 2008
Messages
140
Reaction score
16
Points
18
Location
Gaithersburg, MD
GeneralVehicle's source code is provided along the binary module in the zip file.

Hum, what function exactly? I don't remember doing changes in these parts. Most likely Martin did some tweaking there...

OK, I got it and will look into zip file package.

Yes, Martin did that. That is same code (sigma equations) from VSOP87 package. I recongized that additional code is used with Calculus formula.

R = f(sum) = cos(term) for position
V = f'(sum) = -sin(term) for velocity

That is in Vsop87.cpp file.

Code:
    // term summation
    for (cooidx = 0; cooidx < 3; ++cooidx) { // loop over spatial dimensions
        for (alpha = 0; termlen[alpha][cooidx]; ++alpha) { // loop over powers of time
            pterm = term+termidx[alpha][cooidx];
            tm = termdot = 0.0;
            for (i = 0; i < termlen[alpha][cooidx]; ++i) {
                a        = pterm[i][0];
                b        = pterm[i][1];
                c        = pterm[i][2];
                arg      = b + c * t[1];
                tm      += a * cos(arg);
                termdot -= c * a * sin(arg);
            }
            ret[cooidx] += t[alpha] * tm;
            ret[cooidx+3] += t[alpha] * termdot +
                (alpha > 0 ? alpha * t[alpha - 1] * tm : 0.0);

        } // end loop alpha
    } // end loop cooidx

In ELP 82 code for moon (ELP82.cpp), several lines for velocity were added with same code from ELP82 package. I am figuring where velocity codes come from... dot variables is for velocity.

R = r[0]-r[2] is for position
V = r[3]-r[5] is for velocity

Code:
   r[0] = r[0]/rad + w[0][0] + w[0][1]*t[1] + w[0][2]*t[2] + w[0][3]*t[3] +
                      w[0][4]*t[4];
    r[3] = r[3]/rad + w[0][1] + 2*w[0][2]*t[1] + 3*w[0][3]*t[2] + 4*w[0][4]*t[3];
    r[1] = r[1]/rad;
    r[4] = r[4]/rad;
    r[2] = r[2]*a0/ath;
    r[5] = r[5]*a0/ath;
    cosr0 = cos(r[0]), sinr0 = sin(r[0]);
    cosr1 = cos(r[1]), sinr1 = sin(r[1]);
    x1       = r[2]*cosr1;
    x1_dot   = r[5]*cosr1 - r[2]*sinr1*r[4];
    x2       = x1*sinr0;
    x2_dot   = x1_dot*sinr0 + x1*cosr0*r[3];
    x1_dot   = x1_dot*cosr0 - x1*sinr0*r[3];
    x1       = x1*cosr0;
    x3       = r[2]*sinr1;
    x3_dot   = r[5]*sinr1 + r[2]*cosr1*r[4];
    pw       = (p1+p2*t[1]+p3*t[2]+p4*t[3]+p5*t[4])*t[1];
    pw_dot   = p1 + 2*p2*t[1] + 3*p3*t[2] + 4*p4*t[3] + 5*p5*t[4];
    qw       = (q1+q2*t[1]+q3*t[2]+q4*t[3]+q5*t[4])*t[1];
    qw_dot   = q1 + 2*q2*t[1] + 3*q3*t[2] + 4*q4*t[3] + 5*q5*t[4];
    ra       = 2.0*sqrt(1-pw*pw-qw*qw);
    ra_dot   = -4.0*(pw+qw)/ra;
    pwqw     = 2.0*pw*qw;
    pwqw_dot = 2.0*(pw_dot*qw + pw*qw_dot);
    pw2      = 1-2.0*pw*pw;
    pw2_dot  = -4.0*pw;
    qw2      = 1-2.0*qw*qw;
    qw2_dot  = -4.0*qw;
    pw       = pw*ra;
    pw_dot   = pw_dot*ra + pw*ra_dot;
    qw       = qw*ra;
    qw_dot   = qw_dot*ra + qw*ra_dot;
    // at this point we swap y and z components to conform with orbiter convention
    // r[1] <-> r[2] and r[4] <-> r[5]
    r[0] = pw2*x1+pwqw*x2+pw*x3;
    r[3] = pw2_dot*x1 + pw2*x1_dot + pwqw_dot*x2 + pwqw*x2_dot + pw_dot*x3 + pw*x3_dot;
    r[2] = pwqw*x1+qw2*x2-qw*x3;
    r[5] = pwqw_dot*x1 + pwqw*x1_dot + qw2_dot*x2 + qw2*x2_dot - qw_dot*x3 - qw*x3_dot;
    r[1] = -pw*x1+qw*x2+(pw2+qw2-1)*x3;
    r[4] = -pw_dot*x1 - pw*x1_dot + qw_dot*x2 + qw*x2_dot + (pw2_dot+qw2_dot)*x3 + (pw2+qw2-1)*x3_dot;
 

n72.75

Move slow and try not to break too much.
Orbiter Contributor
Addon Developer
Tutorial Publisher
Donator
Joined
Mar 21, 2008
Messages
2,694
Reaction score
1,352
Points
128
Location
Saco, ME
Website
mwhume.space
Preferred Pronouns
he/him
@Gondos, when you build NASSP against your Linux Orbiter build, how are you handling the winuser.h, SendMessage() calls that we have?
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
230
Reaction score
266
Points
78
Location
On my chair
Some more progress :
sunlight.png
Still some issues with what looks like color saturation though...
saturation.png
Edit: was clamping too early in the shaders so the light color was forced to white, now it really saturates, it will need some tweaking I guess
sat.png
 
Last edited:

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
230
Reaction score
266
Points
78
Location
On my chair
Added some crude tone mapping to alleviate saturation :
beacon.png
Also added support for light beacons. DG docked at sunset :
sunset.png
 
Top