Skip to content

N18: SeniorSKY #455 #466

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Feb 3, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added content/posts/newsletter-018/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 43 additions & 0 deletions content/posts/newsletter-018/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,49 @@ bringing more interesting crafting scenarios into the game.
[Antorum]: https://ratwizard.dev/dev-log/antorum
[@dooskington]: https://twitter.com/dooskington

### [SeniorSKY]

![SeniorSKY](3.png)
_Over the mountains in Slovakia_

[SeniorSKY]
is a flight simulator which uses Vulkan API, developed by [@pmathia0].

As an aerospace engineering student with many virtual flying hours in commercial
simulators under his belt, Peter has always been interested how things work under
the hood.

The development of SeniorSKY started as a hobby project during university
studies. Initially, Peter had been using C++ for development of the main
application. However, he later started experimenting with Rust language.
Rust was used back then only for some utilities, which, for example, converts
real-world heightmaps from DTED2 format into Khronos KTX2.

In winter of 2020, the decision has been made to port the whole SeniorSKY
application and associated utilities into Rust.

As mentioned before, SeniorSKY uses real-world elevation data with 1 arc
second precision and can render the whole globe with real dimensions.
The program uses some commonly known techniques to improve precision
of depth buffer and vertex data. During the flight, the terrain tiles are loaded
dynamically based on real GPS coordinates of airplane, with a decreasing
level of detail, based on distance from the camera. This is achieved using
a combination of a terrain-quad-tree and GPU tessellation.

SeniorSKY also implements basic rendering of sky, atmosphere and fog.

To be able to simulate a flight, SeniorSKY temporarily integrates 3rd party
flight dynamics engine called JSBSim. Meanwhile, development of own, custom
flight dynamics engine is already in progress.

The project serves Peter
as a playground to learn and implement various techniques, from real-world
globe, 3D terrain, through rendering of fonts, UI, up to the implementation
of custom physics and flight dynamics.

[SeniorSKY]: https://youtube.com/playlist?list=PLMmaJuk-D7iaObZyhyvc83tNwpx3ghzkY
[@pmathia0]: https://twitter.com/pmathia0

## Learning Material Updates

## Engine Updates
Expand Down