# New ReleaseD3D9Client Development

#### Ripley

##### Tutorial translator
Donator
...Just noticed that the Orbiter Sound is working without the link. So, the new version of 3.5 is online ?...
No. Dansteph hasn't publicly released his updated pack yet.

#### Cras

##### Spring of Life!
Donator
Just noticed that the Orbiter Sound is working without the link. So, the new version of 3.5 is online ?

I didn't think it was, but I do know the new version does not require the link to work.

#### David413

Donator
Beta Tester
Here is an interesting issue; when increasing the time acceleration above x10 the vehicle I using (the STA, V4.7) "disappears" and the "reappears" when I drop the time acceleration. I tried the same scenario with RC47, no problem, using RC48, the issue occurs.

Windows 7 machine, using the Nvidia graphics drivers if that helps.

Regarding documentation, I would recommend documentation regarding the VASI and PAPI lights at a minimum for folks to understand how to change their base cfg. files.

My 2 cents worth...

Dave

#### jarmonik

Beta Tester
Here is an interesting issue; when increasing the time acceleration above x10 the vehicle I using (the STA, V4.7) "disappears" and the "reappears" when I drop the time acceleration. I tried the same scenario with RC47, no problem, using RC48, the issue occurs.
I can reproduce the problem. Looks like it happens with every vessel in my case above x100. Must be related to the camera changes I made for RC48.
EDIT: Found and Fixed.

Last edited:

#### Ripley

##### Tutorial translator
Donator
...when increasing the time acceleration above x10 the vehicle I using (the STA, V4.7) "disappears" and the "reappears" when I drop the time acceleration...
Windows 7 machine, using the Nvidia graphics...
I am late on this, as it's already been fixed, but I did notice the same on XP with an ATI graphics card.

#### jarmonik

Beta Tester
We have a lift-off of D3D9Client R1

We have a lift-off of D3D9Client R1. Let's hope we get to the orbit. The D3D9Client project was started about a two years ago and it's now almost complete and stable. I have kept the changes to the source codes minimal so that most of the code sections and layout are exactly the same as with the D3D7Client. I did that mostly in a hope that it would be easier for Martin to join into the development. I don't know how much point there is to put efforts in the old DX7 engine, but it's not my call. But, so far, I haven't heard much from Martin.

Not everything has gone according to the plan but since we made-it this far I hope we get through the rest. It was somewhat my intention to convert the D3D9Client to use the DX11, after completing the R1, for more advanced features. But since it's already converted by a group of people, that plan is no longer so obvious. I don't know how many D3D11Clients there are in the making so I am going to wait and see since there are no rush. I don't know how this project is going to continue since my inspiration and motivation to work with this project is somewhat low at a moment. So far, the open source environment haven't proven very beneficial for the project, it allows the code to be ripped off but there is nothing to be ripped back so it works only in one way and not much motivation can be found from there.

One possible way to continue is to go to a closed source renderer which would include some core functions like a mesh class since it would need to be re-written anyway. A better implementation would allow a three times higher frame-rates in an environments those are including complex (i.e. large) meshes with a better shading techniques. Most of the client would still remain open.

I have no idea what's the status of the Orbiter Beta and I don't know when to expect a new versions or patches for the Orbiter. I suppose the remaining problems could be fixed from the client side although the wheel brake force issue would be very challenging. I don't think I am up-to the task. The entire surface base would need to be implemented in a similar fashion like the runway lights. I am pretty sure it would be better for a long run.

The surface management is problematic since everything is made for the DX7 and the requirements of DX9 and DX11 are somewhat different. Currently, the D3D9Client provides a surface emulator (a sort of), that has proven useful and there might be some tricks that might allow to improve that. Currently Orbiter Beta provides and has implemented an oapiCreateSurfaceEx() that allows more exact surface construction but unfortunately passing incorrect flags to the function will only confuse the client. Therefore, it's disabled at a moment to gain a better stability. I don't know what's the best course of action and the DX11 team has been pretty quiet about that as well.

Currently I have been planing to extend the Sketchpad interface so that users could convert the Sketchpad pointer into a more advanced interface that would allow to copy a rectangles, draw meshes and the orbiter scene it-self from a different perspective into a target surface. See ogci.h for a prototype description.

I have to give a big thanks for Kuddel for implementing the grapple point markers and window hooks. Without those hooks vessel force vectors and axies wouldn't be included in this release. Also a big thanks goes for Bibi Uncle for implementing the runway lights.

I'll sent some PM to Martin and we'll see if we could get a link to the Orbiter Site for the Client.

D3D9Client web site is located here http://koti.mbnet.fi/jarmonik/D3D9Client/
It's pretty primitive but it should do the job.

#### BruceJohnJennerLawso

##### Dread Lord of the Idiots
We have a lift-off of D3D9Client R1. Let's hope we get to the orbit. The D3D9Client project was started about a two years ago and it's now almost complete and stable. I have kept the changes to the source codes minimal so that most of the code sections and layout are exactly the same as with the D3D7Client. I did that mostly in a hope that it would be easier for Martin to join into the development. I don't know how much point there is to put efforts in the old DX7 engine, but it's not my call. But, so far, I haven't heard much from Martin.

Not everything has gone according to the plan but since we made-it this far I hope we get through the rest. It was somewhat my intention to convert the D3D9Client to use the DX11, after completing the R1, for more advanced features. But since it's already converted by a group of people, that plan is no longer so obvious. I don't know how many D3D11Clients there are in the making so I am going to wait and see since there are no rush. I don't know how this project is going to continue since my inspiration and motivation to work with this project is somewhat low at a moment. So far, the open source environment haven't proven very beneficial for the project, it allows the code to be ripped off but there is nothing to be ripped back so it works only in one way and not much motivation can be found from there.

One possible way to continue is to go to a closed source renderer which would include some core functions like a mesh class since it would need to be re-written anyway. A better implementation would allow a three times higher frame-rates in an environments those are including complex (i.e. large) meshes with a better shading techniques. Most of the client would still remain open.

I have no idea what's the status of the Orbiter Beta and I don't know when to expect a new versions or patches for the Orbiter. I suppose the remaining problems could be fixed from the client side although the wheel brake force issue would be very challenging. I don't think I am up-to the task. The entire surface base would need to be implemented in a similar fashion like the runway lights. I am pretty sure it would be better for a long run.

The surface management is problematic since everything is made for the DX7 and the requirements of DX9 and DX11 are somewhat different. Currently, the D3D9Client provides a surface emulator (a sort of), that has proven useful and there might be some tricks that might allow to improve that. Currently Orbiter Beta provides and has implemented an oapiCreateSurfaceEx() that allows more exact surface construction but unfortunately passing incorrect flags to the function will only confuse the client. Therefore, it's disabled at a moment to gain a better stability. I don't know what's the best course of action and the DX11 team has been pretty quiet about that as well.

Currently I have been planing to extend the Sketchpad interface so that users could convert the Sketchpad pointer into a more advanced interface that would allow to copy a rectangles, draw meshes and the orbiter scene it-self from a different perspective into a target surface. See ogci.h for a prototype description.

I have to give a big thanks for Kuddel for implementing the grapple point markers and window hooks. Without those hooks vessel force vectors and axies wouldn't be included in this release. Also a big thanks goes for Bibi Uncle for implementing the runway lights.

I'll sent some PM to Martin and we'll see if we could get a link to the Orbiter Site for the Client.

D3D9Client web site is located here http://koti.mbnet.fi/jarmonik/D3D9Client/
It's pretty primitive but it should do the job.

Would you care to outline the features for someone not so familiar with this project?

#### Cras

##### Spring of Life!
Donator
Awesome stuff Jarmonik.

Congratulations on reaching this milestone. The D3D9 client is absolutely essential in my book, I can no longer image flying in Orbiter without it.

#### blixel

##### Donator
Donator
Awesome stuff Jarmonik.

Congratulations on reaching this milestone. The D3D9 client is absolutely essential in my book, I can no longer [imagine] flying in Orbiter without it.

I just want to echo this sentiment. Your work is greatly appreciated. I will occasionally load up Orbiter with the standard graphics client so I can do something with Videnie orbit drawing, and the performance difference is beyond night & day. D3D9 client is so fast and smooth. I, too, can't imagine using Orbiter without it.

#### Bibi Uncle

##### 50% Orbinaut, 50% Developer
So far, the open source environment haven't proven very beneficial for the project, it allows the code to be ripped off but there is nothing to be ripped back so it works only in one way and not much motivation can be found from there.

In order to improve the open source development, a proper DVCS and an online repo would help a lot. When developing the runway lights, I had to rewrite some parts because I did not have the latest build. Therefore, source control is necessary, IMHO. I have a preference for Mercurial, coupled with CodePlex or BitBucket, but that's your choice.

Also a big thanks goes for Bibi Uncle for implementing the runway lights.

It was a pleasure to work with you! You have my profound respect for all the work you have done. :tiphat:

#### Ripley

##### Tutorial translator
Donator
Congratulations for this epic milestone, Jarmonik!
I have to agree with the others: for me there's no Orbiter without D3D9.

Let's hope Martin will "jump in", maybe he was only waiting for a mature R1.

Regarding "documentation", I wrote detailed instructions (and what-not) on my italian webpage.

Last edited:

#### dumbo2007

##### Crazy about real time sims
Firstly, amazing work Jarmonik

We do hope you will be around in the forums often because there is so much to learn in terms of the code in the D3D9 client for noobs in graphics engine programming like me

I am planning to integrate my collision detection code with the D3D11 graphics client as soon as terrains is ready. I especially want to do so for displaying collision meshes in sim and other features. It would be great to have you around to help accelerate up the steep learning curve . If you are looking for motivation, you can always work on terrains in the D3D11 client code , no ? Maybe a 64 bit build too, so more memory is available.

Let's hope Martin will "jump in", maybe he was only waiting for a mature R1.
+10

By the way are all the features in d3d9 also in the d3d11 client ?

Last edited:

#### aldarion

##### Member
possible bug

Is that normal?
I have 3 sets of different Force vectors and Axes.

D3D9 R1 for Orbiter beta
Orbiter beta P2

#### Attachments

• bug1.jpg
146.1 KB · Views: 50

#### N_Molson

Donator
Awesome, on the long run work !! :10sign:

#### IronRain

##### The One and Only (AFAIK)
Moderator
Donator
Great work and many thanks!

#### Evil_Onyx

##### Well-known member
Is that normal?
I have 3 sets of different Force vectors and Axes.

D3D9 R1 for Orbiter beta
Orbiter beta P2

I think it is showing XR2, XRpayload vessel and a cargo. I think it is normal.

#### IronRain

##### The One and Only (AFAIK)
Moderator
Donator
I do have a small issue althoug I don't know if it's discussed already.

When I click the button to automatically generate the dynamic links, everything looks normal, but it doesn't work. When I check the properties of the dynamic link, it's pointing to c:\config. My Orbiter is installed on D:\orbiter\Standaard.

I fixed it by creating the dynamic links myself, but I thought to let you know

#### Cras

##### Spring of Life!
Donator
I do have a small issue althoug I don't know if it's discussed already.

When I click the button to automatically generate the dynamic links, everything looks normal, but it doesn't work. When I check the properties of the dynamic link, it's pointing to c:\config. My Orbiter is installed on D:\orbiter\Standaard.

I fixed it by creating the dynamic links myself, but I thought to let you know

Same. The automatic dynamic links do not seem to be linking to the right folder. Doing it myself works.

Also, it might be related to me seeing a warning on the load up splash that it could not find Config folder in the server folder.

---------- Post added at 10:53 AM ---------- Previous post was at 09:57 AM ----------

I have found two bugs.

I found in RC47 and beyond that there is an animation issue with Shuttle Fleet's umbilical doors. After SRB sep, they appear closed. I never saw this in RC44 so it appeared somewhere in 45-47.

In R1, the moon is not rendered right when looking at it from Earth.

I didnt see this in RC47.

Hang on, I got a picture of the moon thing somewhere...

here it is!

Last edited:

#### Enjo

##### Mostly harmless
Tutorial Publisher
Donator
The Video dialog started appearing under Wine, therefore I'm able to run Orbiter with > 50 FPS under Linux. Kudos!

#### jarmonik

Beta Tester
Same. The automatic dynamic links do not seem to be linking to the right folder. Doing my myself works.
Also, it might be related to me seeing a warning on the load up splash that it could not find Config folder in the server folder.

Do you have the Orbiter installed on some other drive than C:
Do you see the warning even if you have manually created the links ?

Code to display the warning as simple as this. Any ideas what's wrong with it ?
Code:
char dataD[]={"Warning: Config folder not present in /Modules/Server/. Create a symbolic links."};

DWORD cattrib = GetFileAttributes("Modules/Server/Config");

if (cattrib!=0x410 && cattrib!=0x10) {
SetTextAlign(hDC, TA_CENTER);
}