Project D3D9 to Vulkan

kash01

Well-known member
Joined
Aug 31, 2016
Messages
63
Reaction score
204
Points
48
Hello everyone,

creating this thread for orbiter vulkan migration.
everyone is invited to chip in.

Currently ill be posting periodically my progress. i'm just putting pieces together. beginner coder, but want to do it right so it'll take time.


idk if the thread is necessary, mods can delete if theres a better place to post these updates and talk
 

Attachments

  • Screenshot (33).png
    Screenshot (33).png
    240 KB · Views: 43
Have a question, for orbiter to be fully 64 bit what doo we need? i know theres some problems with saturn moons, is there any way way to overcome/rewrite them? if a rewrite is needed, has anyone done the theoricall study? im wlling to put my free time effort to it, evem rewriting whole moons but i lack the knowledge on deep space, so a theorical study would be helpful to dive in. Is it just the moons or else too?
 
Last edited:
idk if the thread is necessary, mods can delete if theres a better place to post these updates and talk
On the contrary I think it's an excellent idea, especially since I believe @jarmonik may have also begun looking into this project as well, so it would be a good idea to have somewhere to coordinate development.
for orbiter to be fully what doo we need?
I think you a word 😅 64-bit? Yes, a rewrite / reimplementation of some CELBODY code will be needed, since we don't have sources for them, though that is I think a slightly different workflow from the renderer. The next release version will probably be x64 only, though, so it's sufficient to focus only there for Vulkan development, IMO.
 
Hi @kash01, I am super interested in helping out as well. I've been doing my research on the code base and @jarmonik's work for baked vc.

From my quick look and based on the work @jarmonik is doing, it looks like our best bet may be to try to get some code merged in such a way that we don't touch the current renderer. That way we can start contributing to portions of the newer vulkan renderer. As far as I understand, the code is pretty intertwined so there is some effort required there.

I would love to see the code progress you've made though, I have time over the holidays to hopefully contribute :)

I am on discord as well, if you'd like to chat there (a bit quicker/easier)
 
Hi @kash01, I am super interested in helping out as well. I've been doing my research on the code base and @jarmonik's work for baked vc.

From my quick look and based on the work @jarmonik is doing, it looks like our best bet may be to try to get some code merged in such a way that we don't touch the current renderer. That way we can start contributing to portions of the newer vulkan renderer. As far as I understand, the code is pretty intertwined so there is some effort required there.

I would love to see the code progress you've made though, I have time over the holidays to hopefully contribute :)

I am on discord as well, if you'd like to chat there (a bit quicker/easier)
Cheers, i'll get in touch with you asap i feel like i've laid founding infrastructure. at the moment code is just pure mess, as im just a beginner programmer but im making some progress at last. I'll clean the code, organize and try to document it too. I spent past two days just getting earth textures to load correctly, with all the culling mess and much more haha.

Currently only working scenarios are the ones without delta glider, idk why(lua)? I'm testing using shuttle iss resuplly scenario. I cant promise when but i'll defintley get in touch with you, my plan is to lay foundations, have clean code,and then let the community build on it. It is in no way professional kind of work as i started by looking at every single d3d9 and trying to just make it work in vulkan.

Current progress: Was able to load texture, clouds and debug the culling, somewhow earth is oval shape, fov maybe
 

Attachments

  • Screenshot (85).png
    Screenshot (85).png
    229.8 KB · Views: 35
Cheers, i'll get in touch with you asap i feel like i've laid founding infrastructure. at the moment code is just pure mess, as im just a beginner programmer but im making some progress at last. I'll clean the code, organize and try to document it too. I spent past two days just getting earth textures to load correctly, with all the culling mess and much more haha.

Currently only working scenarios are the ones without delta glider, idk why(lua)? I'm testing using shuttle iss resuplly scenario. I cant promise when but i'll defintley get in touch with you, my plan is to lay foundations, have clean code,and then let the community build on it. It is in no way professional kind of work as i started by looking at every single d3d9 and trying to just make it work in vulkan.

Current progress: Was able to load texture, clouds and debug the culling, somewhow earth is oval shape, fov maybe
I don't know anything about Vulkan, but I do know a little about OpenGL. It might be an aspect ratio issue.

Have you tried resizing the window?

And by the way, good luck with the project; it's excellent for keeping Orbiter up-to-date with the latest technologies. Unfortunately, I think my machine is no longer compatible with Vulkan; I should check for sure. Because if my machine becomes compatible with Vulkan, I might be able to help you port the code to Linux.
 
On the contrary I think it's an excellent idea, especially since I believe @jarmonik may have also begun looking into this project as well, so it would be a good idea to have somewhere to coordinate development.

I think you a word 😅 64-bit? Yes, a rewrite / reimplementation of some CELBODY code will be needed, since we don't have sources for them, though that is I think a slightly different workflow from the renderer. The next release version will probably be x64 only, though, so it's sufficient to focus only there for Vulkan development,Great, yah
Great, yes i meant 64 bit haha, corrected. Good, well, lets hope for best.
 
Make sure you stay aware of the following graphic client issues:

 
I don't know anything about Vulkan, but I do know a little about OpenGL. It might be an aspect ratio issue.

Have you tried resizing the window?

And by the way, good luck with the project; it's excellent for keeping Orbiter up-to-date with the latest technologies. Unfortunately, I think my machine is no longer compatible with Vulkan; I should check for sure. Because if my machine becomes compatible with Vulkan, I might be able to help you port the code to Linux.
Yup, you were right, it was cuz of aspect ratio. now its back to nice sphere haha, yes, definitly making orbiter work natively on linux would be fantastic. just wanna get the foundations right and reach a workable mvp and then will hand everything to the community.

Currently fighting with this haze ring, have tried much but not getting it right, so will tackle it in the end. But i got higher res textures to work fine though luckily.
 

Attachments

  • Screenshot (97).png
    Screenshot (97).png
    393.5 KB · Views: 30
  • Screenshot (110).png
    Screenshot (110).png
    660.1 KB · Views: 29
Celestial Sphere Progress
 

Attachments

  • original d3d9.PNG
    original d3d9.PNG
    618.2 KB · Views: 37
  • Capture3.PNG
    Capture3.PNG
    1.1 MB · Views: 34
  • Capture2.PNG
    Capture2.PNG
    1.2 MB · Views: 36
  • Screenshot (1).png
    Screenshot (1).png
    1.1 MB · Views: 33
  • Capture4.PNG
    Capture4.PNG
    1 MB · Views: 33
  • Capture5.PNG
    Capture5.PNG
    1.1 MB · Views: 33
Just a question: Will you be implementing ambient occlusion and proper reflections?
 
Just a question: Will you be implementing ambient occlusion and proper reflections?
At the moment my goal is to have in vulkan what we currently do in d3d9, especially the foundations. Then in future i think it'll be ready to develop on and re-do some stuff. At the moment, this is very much experimental running in 64bit with some patches i applied to orbiter sim. I think for us to develop whole any new features, orbiter will have to run completly in 64x.

I really want to see volumetric clouds one day.
 
Wow, your progress on the project is going at warp speed!
It looks beautiful, it really does look like a blue marble.
ya, was lucky to have some days off, will be back to job soon so progress will take a hit.

As the work goes on, i really hope orbiter 64x is near, would help a lot for testing.
 
At the moment my goal is to have in vulkan what we currently do in d3d9, especially the foundations. Then in future i think it'll be ready to develop on and re-do some stuff. At the moment, this is very much experimental running in 64bit with some patches i applied to orbiter sim. I think for us to develop whole any new features, orbiter will have to run completly in 64x.

I really want to see volumetric clouds one day.
Well, as long as the reflections gets done properly (in the D3D9Client, they're not, only one source of reflections for all of them, leading to incorrect behavior of reflective surfaces).
 
Back
Top