VOGONS


First post, by vlbastos

User metadata
Rank Newbie
Rank
Newbie

Hello again. I've been asking for some features in the last posts, but now I want to try doing things myself. The problem is that I don't know where to start 😅

I spent a few years "programming" with LotusScript/VisualBasic, I have a good programming logic notion, I could learn a new thing or two, would love to try adding all sorts of enhancing features to dgVoodoo2.

I know it's not easy, please don't mock me for asking. I just need something to get started, which tools, maybe some youtube videos for dummies. Directions, in reality.

I have some ideas and goals I would like to try to achieve. Thinking of making a fork of dgVoodoo2 and, for starters, adding FSR 1.0 to it.

Reply 1 of 3, by Dege

User metadata
Rank l33t
Rank
l33t

Yes, it's not easy but I think you should start with learning some C/C++ first.
C++ versions have many iterations by today and it evolved into an overcomplicated bloated language which is not even a language anymore but a framework in my opinion because of the std library that became de facto part of nowadays C++. (If I want to be snarky, you'd better not even add two numbers without std or some other template magic if you don't want experts making fun of your code. 🙄)

I'd recommend C++ '03 first, it's old enough to relativaly easily learn its features and it's also enough for programming Win32 or COM like DirectX.
(dgVoodoo itself is mostly C++ 03, except internal D3D12 codes where I use variadic templates and lambdas).

And, if you focus on dgVoodoo then there is DX12 which is not an easy API (as an extra, I think it even requires some minimal Win32 knowledge at least). Not ideal for beginners, so first I'd recommend understanding the classic GPU pipeline without all modern fancy shaders and features (e.g. DX9 level pipeline, transformations, etc.). If it's done then I could recommend D3D12 samples themselves to study. "Hello Triangle" and such that demonstrates rendering simple polygons with simple shaders. (Shaders require HLSL but that's not that complicated, a C-like language with vector types). Basically that's what needed for the dgV D3D12 presentation hook addon. When 2 triangles, forming a quad, are drawn with some pixel shader then you just have to experiment the shader itself. 😀

Reply 2 of 3, by vlbastos

User metadata
Rank Newbie
Rank
Newbie

That's excellent, thank you Dege! I always wanted to start learning these things, but never knew where to start. Thanks to you, I have my starting point now. It will take a lot of time, but I always loved 3d techniques and such, always wanted to do this kind of stuff. Someday I'll start looking at dgvoodo2/shader sources and will actually understand something, then it's where the fun will begin! 😀

Reply 3 of 3, by Dege

User metadata
Rank l33t
Rank
l33t

Btw, once one of my new colleagues wanted to learn into 3D rendering and graphics API's but he was completely beginner.
He told me that he had read a lot of tutorials and looked into various samples, OGL and other stuff but they weren't satisfying, didn't make a great progression. So he asked me where I had learnt from and what I could recommend for him.
I regretfully told him that I cannot really recommend anything, in fact most of my 3D/API knowledge is coming from the DirectX SDK documentation, a lot of theory and math along with the corresponding 3D API implementation is documented there (like the old DX9 offline docs). Later he happily told me that he looked into it and found it very cool, how well things were explained in that doc and that alone worthed more than anything other previously, for understanding the basic things, concepts and getting in picture with the 3D rendering at all... 😀