# New ReleaseD3D9Client Development

#### Frankynov

##### Member
Hello !

Thanks for this excellent addon !!
I'm getting 10x (!!!) more FPS with my brand new Core i3 computer with Nvidia gts 450, in Windows 7 !

some of them can't be fixed without patching the Orbiter.
Could you point them in the list you showed in the last page ?
I hope it doesn't include amso. It's still a huge FPS hit, even with dx9 client.

Also, do you plan to add later the horizon haze and the new multilight from orbiter 2010 P1 ? :tiphat:

Best regards from belgium !

François

#### jarmonik

Beta Tester
Hi.
Just run the Orbiter_NG with the D3D9ClientBeta1 on a HighEnd GTX480 system with NVidia3DVision shutter glasses, and wow :thumbup: , 3D looks absolutely amazing with your DX client !!! Big thanks.
I didn't know it had a such feature. The 3D (stereo) must be provided by the drivers somehow. I really don't understand how it is even possible but it's good to know it's working.:lol:

I am very interested in supporting your great D3D9Client, and volunteer to do some testing with the 3D shutter glasses (, though I am not able to contribute some programming work). Let me know whether this would be of interest to you, and which channels to use for any problem reporting.
This is the right channel for reporting problems. I don't have such hardware so there isn't much I can do right now on that sector. I'll try to get the basics up and running at first.

---------- Post added at 00:42 ---------- Previous post was at 00:22 ----------

Could you point them in the list you showed in the last page ?
I hope it doesn't include amso. It's still a huge FPS hit, even with dx9 client.
The issues from 1 to 7 are somehow depended form the Orbiter or atleast solving them will need some cooperation.

Does the AMSO work in your computer under D3D9 or D3D7Client ? In my computer the meshes are looking like they are created by a random number generator. Also the GET timer in AMSO is reducing the framerates because it's written by GDI. A patch would allow to improve the rendering of the GET timer. The same issue exists in SSU.

Also, do you plan to add later the horizon haze and the new multilight from orbiter 2010 P1 ?
Horizon haze is already added and it's currently being improved by Poscik, as you can see from the screen shot above. Also, the multible light sources are already implemented but currently they are only effecting into a vessel objects and buildings but not ground or cloud layers.

#### DarkEnergy

Nice work! :thumbup: I am getting tremendously higher frame rates in this than I got in the D3D7 client (90-130 fps vs. 25 fps in space without v-sync).

Unfortunately, the frame rate drops to an almost unbearable 10 if the high resolution surface tile at Cape Canaveral comes into view of the camera at all. The D3D7 client took a hit as well when the surface is in view but by not nearly as much (maybe to 20-23 fps). It probably has to do with me having Windows Vista, or with my bad laptop graphics card, but I'm just letting you know.

#### rstr

##### Donator
Donator
I didn't know it had a such feature. The 3D (stereo) must be provided by the drivers somehow. I really don't understand how it is even possible but it's good to know it's working.:lol:

Yes, the NVidia 3D driver automatically renders every scene twice, for left and right eye, provides there is a DX9/10/11 environment - see developers section on http://developer.nvidia.com/object/3d_stereo_dev.html
It's not comparable with the old red/blue stereoscopic glasses,, as the shutter glasses transmit full color / full resolution images at 60 Hz (120 Hz monitor required).

Just ran the Orbiter ISS scenario, with the ISS popping right out of the screen while drifting before our turning blue marble earth. No comparison to the already fine pseudo-3D standard display in Orbiter. You wouldn't believe what a impressive sight this is real 3D is, unless you've seen the initial sequences of 3D movie Avatar with that space freighter drifting before Pandora. And all this just because of your D3D9 client for Orbiter-NG !!! Prompted me to become Orbiter donator second time again.

I'll prepare a bug report on next weekend.
So far just two simple hints which apply also to non-3D mode: changing spacecraft ends up in an empty white screen, and the DG4 cannot be seen. Are there some special hints on vessel class or DG4 ? (I'll try to duplicate this with a fresh no frills installation later)

Regards - Rob

Last edited:

#### deltawing777

##### New member
Very nice work. I have found this error on the buttons on the MFD's
Nvidia Geforce GTS 250

Im sure you already know about it. Here's a picture just in case

Last edited:

#### Frankynov

##### Member
Does the AMSO work in your computer under D3D9 or D3D7Client
Nope. I also get the 3d meshes "exploded", like your description. :facepalm:

Anyway, that's a lot of excellent job already done and I can't wait to see what you'll add later !

François

#### jarmonik

Beta Tester
Here is a new Beta.

- The glass cockpit button issue is "fixed". Looks like the Orbiter is leaving the z coordinate of vertices uninitialized.
- Particle stream offset issue during a pause is fixed.
- Some base lighting related issues are fixed.
- Higher level textures up to 14 are now implemented but the lvl 9 is the higest usable level.

Since there are some fundamental bugs those can't be directly addressed from the client and there are many addons those are just not working, there's probably no point in making an official release. And I think, I'll take a little break here.

Last edited:

#### Thorton

##### sense offender
Thanks for last beta!

Are you able to reproduce bug with not showing HUD and MFD in VC of default Atlantis and Shuttle Fleet?

Also did Martin say something to you about possibility of Orbiter patch release for your client?

#### jarmonik

Beta Tester
Are you able to reproduce bug with not showing HUD and MFD in VC of default Atlantis and Shuttle Fleet?
No. The HUD and MFDs are showing up properly in a stock atlantis, shuttle fleet and SSU. Does your D3D9ClientLog.html contain any errors ? What about other vessels, are the stock atlantis and shuttle fleet the only ones causing trouble ?

Also did Martin say something to you about possibility of Orbiter patch release for your client?
No. I have sent some e-mail but I haven't received any answer, which will most likely mean that he is busy with more important tasks at hand, which is perfectly understandable. So, we need to wait more appropriate launch window for the D3D9Client and it may take years in the worst case. Also the P2 can't be released just like that. The changes need to be tested with Orbiter Beta at first. Of course, the bugs could be easily fixed but the interface modifications would require a lot design work and thinking before they can be implemented. Also, It's not just the D3D9Client and the Orbiter, there is also OGLAClient and DX10 will most likely come in time.

I suppose the D3D9Client and DX10 could work without the surface/sketchpad interface modifications so they aren't vital, but they would give an addon developper beter control of the environment.

#### Axel

##### Drive Technician
The grafik looks mutch better, colors are stronger and objects seems to look sharper. But i miss follows:

-some textures are just white
-no atmospheric haze
-no transparent MFDs

But im looking forward, im sure you will fix it!

#### Poscik

-no atmospheric haze
Wait for my atmospheric haze. Two pics pasted earlier. I'll give a code to Jarmonik as soon as I find the time to complete scaling work.

#### Poscik

Here is pretty good article about atmospheric scattering:
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.html
I know that, I was trying to implement that, but it is OpenGL IMO. I haven't enough skills to code something like that even in DX9. It needs vertex shader. I have few sample programs with scattering written in C#(I think this is it). I can't reproduce any of them to C++. If you want, I'll send one for you.

#### Tschachim

Donator
Beta Tester
Hi Jarmo,

I just want to let you know that I still have a problem with the MFD size with Beta 2 (as with all other versions). A screenshot of the Delta-glider\Cape Canaveral scenario directly after loading is attached. It might be because of my rather ancient ATI X1600...?

Also, the shadow of an animated mesh of a vessel doesn't move according to the animation, see the attached screenshot, the shadow of the LC34 MSS is still at it's original position at the pad.

Cheers
Tschachim

#### Attachments

• 162.4 KB Views: 66
• 180.1 KB Views: 77

#### jarmonik

Beta Tester
Hi Jarmo,

I just want to let you know that I still have a problem with the MFD size with Beta 2 (as with all other versions). A screenshot of the Delta-glider\Cape Canaveral scenario directly after loading is attached. It might be because of my rather ancient ATI X1600...?

This could be a non-power of 2 texture issue. Based on a log file you posted earlier the ATI X1600 has a D3DPTEXTURECAPS_NONPOW2CONDITIONAL:

DirectX API documentation says:
D3DPTEXTURECAPS_NONPOW2CONDITIONAL:
If D3DPTEXTURECAPS_POW2 is also set, conditionally supports the use of 2D textures with dimensions that are not powers of two. A device that exposes this capability can use such a texture if all of the following requirements are met.

• The texture addressing mode for the texture stage is set to D3DTADDRESS_CLAMP.
• Texture wrapping for the texture stage is disabled (D3DRS_WRAP n set to 0).
• Mipmapping is not in use (use magnification filter only).
• Texture formats must not be D3DFMT_DXT1 through D3DFMT_DXT5.
If this flag is not set, and D3DPTEXTURECAPS_POW2 is also not set, then unconditional support is provided for 2D textures with dimensions that are not powers of two.
So, you could replace the following section from the MeshTech.fx
Code:
sampler Tex0S = sampler_state
{
Texture = <gTex0>;
MinFilter = NONE;
MagFilter = LINEAR;
MipFilter = NONE;
};
Currently these settings will cause failures in a renderings elsewhere. But, If this will fix the MFD issue then I will create a special renderer for the MFDs only.

If the above doesn't fix the problem with the MFDs then..

You could run the scenario under a debug level 5

1. Load a stock deltaglider scenario and switch into a glass cockpit view
2. Exit the simulation and launchpad.
3. Change the DebugLvl paramater form D3D9Client.cfg into a 5 (this will create debug information several megabytes per second)
4. Save the file and run the Orbiter using current simulation state
5. Exit immediately when the view appears.
6. Zip and attach the D3D9ClientLog.html into your post.

You could also measure the actual size of the MFD screen in a pixels from a screen shot.

#### jarmonik

Beta Tester
Maybe it's not so professional work, but it is a lot better than stock haze. Enjoy.
View attachment 6291
Did you upload the right file ? I get pretty bad moire effects when viewing the Earth from high altitude. Also, sunset and sunrise color effects aren't working.

Last edited:

Beta Tester

#### jarmonik

Beta Tester
Release Candidate 1

Ok, Here is a release candidate of the D3D9Client. There are a lot of small improvements here and there. But here is a list of greater improvements.

- Sketchpad is now using GPU acceleration when drawing into a backbuffer. This will fix the framerate impact caused by HUD. Also, screen annotations won't slowdown the system anymore. AMSO frame rate is improved a lot but the meshes aren't working.

- Some mipmap and high resolution tile issues are fixed. Lvl 14 should be working as well as in the inline engine.

- Experimental backbuffer multisampling is implemented. It can cause some rendering problems like MFDs not working in old style 2D panels. That bug should be possible to fix later. (Multisampling is automatically disabled when a simulation session is closed. Enable from Video Tab)

- Transparent glass cockpit is implemented.
- The shadow position bug should be fixed.
- Some exhaust clipping issues should be fixed.

Last edited: