New Release D3D9Client Development

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
Kuddel, nice work. Looks like the misplaced line causing the multi-threading error was responsible for a tile appearance problems. Tiles seems to render fine now. :thumbup:

Should we create a new vPlanet2 visual class for a planets having new tile format and atmosphere ? Or should we keep everything packed in vPlanet ? Having them in the same class might allow to mix old and new formats, like new surface with old cloud layer.

Regarding your visitor comment, I suppose having a .lib instead of .cpp for the OGCI works for me. The interface isn't meant to be D3D9 specific but that's unlikely a problem if the linking is done with GetProcAddress().
 

kuddel

Donator
Donator
Joined
Apr 1, 2008
Messages
2,064
Reaction score
507
Points
113
Kuddel, nice work. Looks like the misplaced line causing the multi-threading error was responsible for a tile appearance problems. Tiles seems to render fine now. :thumbup:
You're welcome ;)

Should we create a new vPlanet2 visual class for a planets having new tile format and atmosphere ? Or should we keep everything packed in vPlanet ? Having them in the same class might allow to mix old and new formats, like new surface with old cloud layer.
I have no preferences here. But can't we take the best of both worlds?
Main parts in vPlanet class additionals in a derived vPlanet2 class?
You only have to decide at instantiation time what class to create (if that's feasible).
But anyway, I fully support what you decide :thumbup:

Regarding your visitor comment, I suppose having a .lib instead of .cpp for the OGCI works for me. The interface isn't meant to be D3D9 specific but that's unlikely a problem if the linking is done with GetProcAddress().
I think I'll skip the idea. As nice as it was, it was not worth the (possible) problems when the user builds a debug or release build bringing up very strange linker warnings that no one can decipher...

/Kuddel
 
Joined
Dec 24, 2014
Messages
2
Reaction score
0
Points
0
For some reason I can't make the D3D9 client work in my Orbiter installation. Upon activating the module after launching orbiter_ng.exe an error message would appear:
GSqXISz.png


"orbiter.exe-entry point not found: The procedure entry point ?oapiCreateFont... could not be located in the dynamic link library Orbiter.exe."

When loading a scenario, it loads in server mode (no graphics client). The error message appears again if I attempt to restart the program.

The DX9 runtimes are up-to-date and the GPU is an Intel HD Graphics 3000.
OS is Windows 7 Home Premium 64-bit.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
For some reason I can't make the D3D9 client work in my Orbiter installation. Upon activating the module after launching orbiter_ng.exe an error message would appear:

"orbiter.exe-entry point not found: The procedure entry point ?oapiCreateFont... could not be located in the dynamic link library Orbiter.exe."

When loading a scenario, it loads in server mode (no graphics client). The error message appears again if I attempt to restart the program.

The DX9 runtimes are up-to-date and the GPU is an Intel HD Graphics 3000.
OS is Windows 7 Home Premium 64-bit.

Sounds like the client isn't compatible with the Orbiter version you have. You need Orbiter 100830. (i.e. Orbiter 2010-P1)
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
D3D9Client R15 Beta 2 for Orbiter 2010-P1

Here is a new release of R15. There are a lot of changes to the R14, so, this version should be tested pretty well before we can make it a recommended release and copy the changes to the Orbiter Beta Client.

Beta 1:
- Shuttle Fleet animation issue should be fixed.
- Diffuse particle effects adjusted.
- Removed SM 2.0 shaders (i.e. DirectX 9.0c required now on).
- Cleaned up and optimized some shader codes to run faster.
- Proof of concept implementation of client interface and (DockingCamera MFD in sample folder)
- Experimental geometry instancing implementation.

I think the geometry instancing is the biggest feature in this release. Although, I am somewhat disappointed to the performance boost it's giving. So far, I have measured about +10-20% boost to the frame rate when I was expecting something like +50-70%. Of course, this can be a hardware dependent.

The instancing allows to render a multiple mesh-groups with a single draw call to the DirectX, reducing the draw call count down to one third. A small problem is that the rendering order of the mesh-groups are changed a bit, so, this can cause problems with some meshes. There are work-a-rounds for these problems but I am not sure if the 10-20% is worth the trouble. If that's the best it can give.

Currently:
- Normal maps must be disabled when testing instancing.
- Some virtual cockpit elements like MFDs are not yet working with instancing.
- Shadows are not yet rendering correctly.


- Normal Mapping, Shadows, MFDs and other things should be now fully operational with the instancing implementation.
- Virtual Cockpit reflections are disabled due to some bad unintended reflections from a windows.
- I have measured overall frame-rate boost from all optimizations of +40% to +90% compared to R14.
- The instancing will make some changes to rendering order of a mesh groups but it seems to be able to maintain the order pretty well when it counts something. I haven't noticed any problems so-far.

The instancing implementation is now pretty much finished, looking into the Orbiter Beta client next...
.
 

Attachments

  • D3D9ClientR15-Beta2.zip
    862.6 KB · Views: 93
Last edited:

Mayo2017

New member
Joined
Dec 28, 2014
Messages
1
Reaction score
0
Points
0
Kiitos jarmonik! Virtual cockpit reflections sure do look better without the extras.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
D3D9Client Beta 10 forRev 9.

I have noticed some odd kind of LOD flickering. Not sure where it comes from but it's definitely not present in Beta 8 for rev 8.

Here's a new build of the client. Martian atmosphere should be now working, some visual adjustments are still required.

High resolution texture packs 10_23 and 10_24 are required to produce the flicker issue.

Can someone test if the flickering occurs with D3D7Client. The inline engine seems to be working fine.
 

Attachments

  • D3D9ClientBeta10-forRev9.zip
    671.3 KB · Views: 69
  • Himalayas In Flight.scn
    2.8 KB · Views: 15
  • Flicker.png
    Flicker.png
    472.2 KB · Views: 73
  • No-Flicker.png
    No-Flicker.png
    449.1 KB · Views: 71
Last edited:

fort

Active member
Joined
Mar 19, 2008
Messages
1,017
Reaction score
20
Points
38
Can someone test if the flickering occurs with D3D7Client. The inline engine seems to be working fine.
.orbiter2015_rev9
.D3D9ClientBeta10-forRev9
.EarthLo.zip 542.978 ko
.Latest high resolution texture packs 10_23 and 10_24
.new and first install
.all parameters by default
.XPSP3
.ATI Radeon HD 5450
.Full screen 1024 768 coulour depth 32 60hz
.Himalayas In Flight.scn

Not in D3D7 and not in D3D9 here.
 
Last edited:

kuddel

Donator
Donator
Joined
Apr 1, 2008
Messages
2,064
Reaction score
507
Points
113
Can someone test if the flickering occurs with D3D7Client.
InlineClient : no flicker
D3D9Client : flicker (cloud 'tiles' flicker or 'shadow' disappears)
 

Attachments

  • flicker02.jpg
    flicker02.jpg
    177.4 KB · Views: 48
  • flicker01.jpg
    flicker01.jpg
    184.2 KB · Views: 48
Last edited:

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
It looks like the environmental mapping (i.e. Reflections) are causing the LOD flickering of some tiles. I think we can disable the reflections for now, until we have the basics in a better shape.
 

Cras

Spring of Life!
Donator
Joined
Apr 13, 2011
Messages
2,215
Reaction score
0
Points
36
Location
Los Angeles
Website
www.youtube.com
I noticed now that the latest version, the R15 beta 2 comes with planet glow tuned down to 0.700. Was planet glow tweaked in a recent version that requires it, because I had it over 1.000 going back to as recently R12.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
I noticed now that the latest version, the R15 beta 2 comes with planet glow tuned down to 0.700. Was planet glow tweaked in a recent version that requires it, because I had it over 1.000 going back to as recently R12.
Yes, it's tuned down a bit. It just doesn't feel right that the planet glow is as bright as a direct sunlight. I suppose we would need some kind of visual effect to create an impression of brighter sunlight.
 

jroly

Donator
Donator
Joined
Jan 26, 2014
Messages
404
Reaction score
1
Points
18
The new client for 2010 works really well.

For 2015 Beta dx9 client, the elevation does not work on Moon and Mars and if you open a scenario on one of those planets it crashes.
 

Cras

Spring of Life!
Donator
Joined
Apr 13, 2011
Messages
2,215
Reaction score
0
Points
36
Location
Los Angeles
Website
www.youtube.com
Brighter sunlight, that is a good point. There is that texture on the Hangar that gives the sun a larger appearance, but brighter sunlight is something that might need to be looked at it.

I just used 1.2 or around there, just so the planet glow sort of resembles what should be because the Earth does appear to be bright in orbiter, and it gets tricky when trying to compare to photographs since we are talking about apertures and the like, and when trying to chase some of those iconic shuttle bay pictures you end up with earth producing as much if not more light on the vehicle as the sun. It is a tricky thing to nail down I am sure.
 

NOMAD

Member
Joined
Aug 10, 2009
Messages
111
Reaction score
1
Points
18
A quick look on my laptop with jarmonik's D3D9ClientBeta10-forRev9.

https://www.dropbox.com/s/um8ygxyvt0ktvep/Orbiter 1.png?dl=0

https://www.dropbox.com/s/ooeh8jwexerr7wf/Orbiter 2.png?dl=0

https://www.dropbox.com/s/lb6v62ktpzqqzdz/Orbiter 3.png?dl=0

https://www.dropbox.com/s/b8dh3yvz5ps8xpb/Orbiter 4.png?dl=0

https://www.dropbox.com/s/e85b1xt32o1k1ua/Orbiter 5.png?dl=0

https://www.dropbox.com/s/r4vpufvo4i9hucw/Orbiter 6.png?dl=0

https://www.dropbox.com/s/26i3jtpyhvwde61/Orbiter 7.png?dl=0

The frame rate looks good, FPS is 70 on average. Sometimes FPS drops significantly especially when I move around the view with my mouse. At the beginning of the simulation, the frame rate is also very low (Maybe Orbiter is still loading some files).

My laptop spec:
CPU: Intel i5 2450M
RAM: 8GB DDR3
Video Card: HD 7650M

Anyway, it is amazing, thanks jarmonik.
 

Marg

Active member
Joined
Mar 20, 2008
Messages
482
Reaction score
66
Points
28
4th picture features not as good view as in orbiter inline client. I really like new water colors made by Martin. View during broad daylight above Florida is great. Main problem within inline client is the sun (lack of glare) and some atmosphere effects (orbital sunrise, sunset). "Space Engine" features good effects of glare.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
We really haven't focused much efforts in the Orbiter Beta client yet. So far, we have translated what Martin has created for the D3D7 reference client to use DirectX 9. Of course, there is an atmospheric rendering experiment and some features from the P1-Client. Also the recent work with the P1 Client, especially the shadow instancing is laying a better ground for a future work (mainly for a vessel self-shadowing).

I have never tried the Space Engine but if I have understood correctly it's like a Celestia. There's not much point comparing the Orbiter and the Space Engine since, in the Orbiter we need to maintain a playable frame rate with a medium "weight" laptop and there are a number of add-on compatibility issues those need to be considered when ever we try to create something new. It would be easier to create new features without compatibility constraints.

I think the biggest concern and the challenge is the implementation of light (The sun-light and the local light sources). That's one reason why a virtual cockpit light sources are not yet operational. If the local light sources are improved somehow like making light computations in a per pixel basis with a reduced and optimized number of light sources. It could cause compatibility issues compared to the inline engine. Also, a use of a baked lights (pre computed light) could be a solution in some special cases in a complex environments. But that solution would be potentially incompatible with the inline engine.

Sun glare would be nice but I am not artist and I don't have a proper software to do it. So, that task falls to someone else. Also, with a Sun glare I don't mean those circular or octagonal lens flares.

Also, we could improve Lunar and Martian landscape rendering with surface micro textures and randomly placed rock formations.

There's one report that Mars and Moon are not working in beta client. They are working fine here, so anyone else having problems with them in Beta 10 for rev 9 ?
 

Marg

Active member
Joined
Mar 20, 2008
Messages
482
Reaction score
66
Points
28
"improve Lunar and Martian landscape rendering with surface micro textures and randomly placed rock formations".
yes, I second that... micro textures + random rocks would be very good thing (at least on the Moon and Mars).
About "space engine" - it is made in OpenGL, so it's another realm.
 

SiameseCat

Addon Developer
Addon Developer
Joined
Feb 9, 2008
Messages
1,699
Reaction score
1
Points
0
Location
Ontario
Here is a new release of R15. There are a lot of changes to the R14, so, this version should be tested pretty well before we can make it a recommended release and copy the changes to the Orbiter Beta Client.

Beta 1:



- Normal Mapping, Shadows, MFDs and other things should be now fully operational with the instancing implementation.
- Virtual Cockpit reflections are disabled due to some bad unintended reflections from a windows.
- I have measured overall frame-rate boost from all optimizations of +40% to +90% compared to R14.
- The instancing will make some changes to rendering order of a mesh groups but it seems to be able to maintain the order pretty well when it counts something. I haven't noticed any problems so-far.

The instancing implementation is now pretty much finished, looking into the Orbiter Beta client next...
.
The R15 beta 2 seems to cause problems for SSU. Some of the displays only work when the camera is zoomed in; at large FOV, the original texture is shown. I've attached screenshots showing how the displays change depending on the FOV.

All the affected displays use oapiBlt to copy the digits onto a VC texture.
 

Attachments

  • 40FOV.jpg
    40FOV.jpg
    226.8 KB · Views: 32
  • 30FOV.jpg
    30FOV.jpg
    199.6 KB · Views: 27
  • 20FOV.jpg
    20FOV.jpg
    151.1 KB · Views: 29
Top