Project D3D11Client Development

dumbo2007

Crazy about real time sims
Joined
Nov 29, 2009
Messages
675
Reaction score
0
Points
0
Location
India
Hey Asmi, that terrain looks awesome in the last pic :)

How far is it done ?
 

Proximus

New member
Joined
Sep 23, 2011
Messages
172
Reaction score
0
Points
0
Hey Asmi, that terrain looks awesome in the last pic :)

I have to agree, all the graphics clients and their developers are making a lot of orbinauts very happy and hopeful of orbiter's future. :thumbup:
 

Glider

Addon Developer
Addon Developer
Joined
Apr 12, 2008
Messages
226
Reaction score
0
Points
16
Location
Saint-Petersburg
Hey Asmi, that terrain looks awesome in the last pic :)

How far is it done ?
I'm not asmi, but may be I should comment it since asmi don't actually know about progress at my side in the last two months because he wasn't very active at that time. (so I was making changes in my local copy of source code)

Last two or so months I was working on updated terrain engine. I separated TerrainManager into 2 classes: TerrainClient (3D API independent part) and TerrainManager (depends on specific 3D API) and rewritten code for procedural generation part, added some code for fft-based water, converted depth-field trees from proland (which has GPL license), added code for rendering of things like rocks (instanced on random points low-poly meshes) and grass (billboards on the random points too) also was trying to convert openstreetmap xml files into client-readable format and was trying to find a way to implement rendering of openstreetmap's data in client (roads and buildings).

I think that these awesome depth-field trees (http://hal.inria.fr/docs/00/65/01/20/PDF/article.pdf) are best option for this client. (simple billboards have popping artifacts and looks very ugly from above, while meshes can quickly decrease fps to unplayable level even on very good hardware) They are very fast to render (you can have 100 000 in one frame with good fps on video card like 470gtx) and allows to have an image of same quality with an image rendered with high-resolution meshes if you aren't too close to them. The only drawback of this technique is high texture memory usage - authors use an array of 181 256x256 RGBA8 fully mip-mapped textures for each tree type and it means that 1 tree type consumes ~58 mb of texture memory. And it will be 2 times more if you have 2 tree types - but we can deal with it by reducing size of textures 128x128 which shouldn't affect quality when you have tree that covers less than 128x128 region on your screen. :) I wanted to implement these trees earlier but I didn't have a code for them to look at so I created that ugly mesh/billboard thing first. But now, when the source code of proland (which have these trees) are available I think that these trees should be implemented in the client. Currently this feature is fully coded but not debugged yet.

It should be possible to convert OpenStreetMap data into client-readable format. these planet dump files (which have size about 315 GB) are xml files which contain nodes(vertexes) ways(lines). It is possible to read ways, find only those you want to sort by tags (roads, buildings etc.) find nodes for them and create meshes with ways in tile local coords. Size of file in client-readable format shouldn't be more than few gbs with compression. Then it is easy to render them using geometry shader and linestrip primitives. I wrote a converter but amount of data is very large and my computer has too low amount of RAM (it is required for a stage when each of ways finds a coordinates for its nodes -> indexes of way nodes are "random" -> a lot of random-access reads which is possible to deal with only when data is in RAM. file with nodes has size of 27gb while I can't allocate more than 3gb -> very slow process) so this feature will be last to finish.

Tesselation of terrain also will be improved. In the previous version terrain used trianglelist/patchlist_3cp primitives with tesselation. It lead to ugly cracks in tile mesh when I tried to make tesselation factor variable. I "fixed" it by assigning constant tess. factor to all triangle edges. It made too tesselated mesh when it wasn't needed and decresed the fps. After reading some code of other projects it is clear that terrain tesselation must use adjacency information in hull shader to find correct tesselation factors on triangle edges that match between adjacent triangles.

Also previous version of terrain engine used normals computed in domain shader. It lead to very bad quality of terrain at low mesh resolution and too bad fps when quality was good and mesh resolution was high. The best was to deal with it is too use lower polycount mesh with precomputed per-pixel normal map.

Procedural generator and texture loader will be combined into one thing that loads textures and then can use shaders to add fractal noises on heightmaps, precompute normals and increase quality of textures and land cover maps. It will increase performace of procedural terrain since it will be GPU-based generator and should eventually allow SpaceEngine quality of terrains. (which btw uses GPU-based terrain generator) :)

Water will be made same way nvidia ocean demo does it.512x512 fft generated heightmap and 512x512 per-pixel normal map updated every frame using CS.(but with lower resolution of mesh, tesselation and better performace) :)

Rocks on the ground will be instanciated low-resolution meshes. nothing interesting here. grass/shrubs/bushes can be made same way but with billboards.

Right now I will go back to coding it to a working code. First updated version with core features (tile rendering, terrain client + terrain manager and texture generator/loader) should be available at the beginning of september. Other features will be completed after that.
 

Proximus

New member
Joined
Sep 23, 2011
Messages
172
Reaction score
0
Points
0
Thats some amazing work Glider, I had no idea terrain generation was goin to be this advanced or of such quality!

:tiphat:
 

fort

Active member
Joined
Mar 19, 2008
Messages
1,018
Reaction score
20
Points
38
Not a bug. You need to edit "Config\CSphere\bkgimage.cfg" file and add them there.

http://sourceforge.net/projects/orbitervis/files/Orbiter beta files/

According to the manner of each one will have updated Orbiter to do the tests with the betas, it is possible that the content of
Bkgimage.cfg be different.

100830 (P1).........22/08/11....24/08/11....29/10/2011....5/11/11

1-110822-100830 ---x
2-111029-100830 --------------------------x
3-111105-100830---------------------------------------x

4.........................110824-110822
5..........................................111029-110824
6.............................................................111105-111029

1 bkgimage.cfg 16/10/2010
2 bkgimage.cfg 30/08/2010
3 bkgimage.cfg 30/08/2010
4 bkgimage.cfg 16/10/2010
5 bkgimage.cfg nothing
6 bkgimage.cfg nothing


16/10/2010 cfg:

Visible (DSS2/Wikisky)|csphere\dds2
Hydrogen alpha (WHAM)|csphere\h_alpha
Far IR (IRAS)|csphere\iras
Microwave (WMAP 5-Year CMB Map)|csphere\wmap_ilc_5yr_v3_200uK_RGB

.../...

Microwave (WMAP 5-Year W Pol.)|csphere\wmap_band_polmap_r9_5yr_5_W_35uK_RGB_lines_v3
Microwave (Planck)|csphere\planck
Radio (Haslam)|csphere\radio
X-ray (ROSAT)|csphere\rass
Gamma ray (Fermi)|csphere\fermi

30/08/2010 cfg ( as the P1 version ):
Visible (DSS2/Wikisky)|csphere\dds2
Far IR (IRAS)|csphere\iras

1+4+5+6 > 16/10/2010 Bkgimage.cfg
3 alone : > 30/08/2010 Bkgimage.cfg
 
Last edited:

Ripley

Tutorial translator
Donator
Joined
Sep 12, 2010
Messages
3,135
Reaction score
409
Points
123
Location
Rome
Website
www.tuttovola.org
Hi D3D11 devs.

What about the creation of symbolic links with this client?
Will it be handled like in jarmonik's D3D9, where there is a button to be clicked in the interface (Video->Advanced->"Create symbolic links")?

Thanks.
 

asmi

Addon Developer
Addon Developer
Joined
Jan 9, 2012
Messages
350
Reaction score
0
Points
0
Location
Ontario
Hi D3D11 devs.

What about the creation of symbolic links with this client?
Will it be handled like in jarmonik's D3D9, where there is a button to be clicked in the interface (Video->Advanced->"Create symbolic links")?

Thanks.
Yes I can do that. I've added this to my todo list.

---------- Post added at 20:24 ---------- Previous post was at 15:53 ----------

UPDATE:

I've just uploaded a new build. Here is a changelog:
Code:
Upgraded project to VS2012
Linked additional libs statically to remove runtime dependencies
Added "Create Symbolic Links" functionality
Minor graphic tuning
Removed all DX object leaks
Enjoy!
 
Last edited:

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,668
Reaction score
796
Points
128
Great job asmi
 

BruceJohnJennerLawso

Dread Lord of the Idiots
Addon Developer
Joined
Apr 14, 2012
Messages
2,585
Reaction score
0
Points
36
Hello DXD11 team, recently got your client running on my computer, but the terrain I get is, somewhat... vanilla, I was wondering where I can download the heightmaps for the client, and how to install them?
 

asmi

Addon Developer
Addon Developer
Joined
Jan 9, 2012
Messages
350
Reaction score
0
Points
0
Location
Ontario

asmi

Addon Developer
Addon Developer
Joined
Jan 9, 2012
Messages
350
Reaction score
0
Points
0
Location
Ontario
So I've finally got some spare time to work on a project. Currently I'm working on shadows. I've decided to start with vessels, then I'll move on terrain and bases. For now, I'm implementing shadowing from Sun only, as shadows from beacons will have a serious negative impact on performance unless I figure out a way to do that without such a penalty. And below are some screenshots:
DG near ISS.jpg DGIV on orbit.jpg XR5 - deploying payload.jpg XR2.jpg
 

Cras

Spring of Life!
Donator
Joined
Apr 13, 2011
Messages
2,215
Reaction score
0
Points
36
Location
Los Angeles
Website
www.youtube.com
asmi those pics look amazing! When I get a chance, hopefully sometime this week, I will give the new build a test run.

:thumbup:
 

Hlynkacg

Aspiring rocket scientist
Addon Developer
Tutorial Publisher
Donator
Joined
Dec 27, 2010
Messages
1,870
Reaction score
3
Points
0
Location
San Diego
So I've finally got some spare time to work on a project. Currently I'm working on shadows. I've decided to start with vessels, then I'll move on terrain and bases. For now, I'm implementing shadowing from Sun only, as shadows from beacons will have a serious negative impact on performance unless I figure out a way to do that without such a penalty. And below are some screenshots:
View attachment 10751 View attachment 10752 View attachment 10753 View attachment 10754

Looking great. :tiphat:

Any chance of adding this feature to base cfg meshes as well?
 

asmi

Addon Developer
Addon Developer
Joined
Jan 9, 2012
Messages
350
Reaction score
0
Points
0
Location
Ontario
asmi those pics look amazing! When I get a chance, hopefully sometime this week, I will give the new build a test run.

:thumbup:
Thanks, Cras. There is no new build though yet - it's more of proof-of-concept now. I'm hoping to get it done by the end of the week.

Any chance of adding this feature to base cfg meshes as well?
What do you mean?
 

Hlynkacg

Aspiring rocket scientist
Addon Developer
Tutorial Publisher
Donator
Joined
Dec 27, 2010
Messages
1,870
Reaction score
3
Points
0
Location
San Diego
What do you mean?

Meshes loaded by a base config file.

As it stands lings like the LC39 launch towers and the VAB only cast shadows on the ground. Not on vessels or other base meshes.
 
Last edited:

SolarLiner

It's necessary, TARS.
Addon Developer
Joined
Jun 14, 2010
Messages
1,847
Reaction score
2
Points
0
Location
404 ROAD NOT FOUND
I've been waiting this for a while. Self-shadows ! I was like: :woohoo:
I can't wait for this feature to be released. Is shadows working on VC too ?
 

asmi

Addon Developer
Addon Developer
Joined
Jan 9, 2012
Messages
350
Reaction score
0
Points
0
Location
Ontario
Meshes loaded by a base config file.

As it stands lings like the LC39 launch towers and the VAB only cast shadows on the ground. Not on vessels or other base meshes.
Everything will cast shadows - vessels and bases. Infact if you'll look closely on one of screenshots - you'll notice that one vessel is shadowing another one (remember stations in Orbiter are vessels) :)

Is shadows working on VC too ?
I'm not sure it's really neccessary - because unless addon devs add some local lights inside VC all you'll see will be a dark screen instead of... well instead of everything that it supposed to be there - controls, buttons etc. :) And since some vessels already have VC textures with lighting painted on them (hello, Arrow freighter :hello:), adding real lighting will make this whole thing look really creepy. Let's see if any addon devs have anything to tell in this regard.
 

dumbo2007

Crazy about real time sims
Joined
Nov 29, 2009
Messages
675
Reaction score
0
Points
0
Location
India
Maybe VC lighting can be optional. So its possible to turn on/off the lights inside. :)
 

shacharm

New member
Joined
Sep 15, 2012
Messages
10
Reaction score
0
Points
0
Does anyone know how to turn off the overlay on the video and how to close the menu?
 
Top