4 ms·
Sadly, Vulkan is really painful way of learning graphics programming. Doing almost anything requires large amounts of boilerplate. Almost everything you need to
by deliciousturkey 3mo ago
Sadly, Vulkan is really painful way of learning graphics programming. Doing almost anything requires large amounts of boilerplate. Almost everything you need to do, for example to make shadows, requires just 10x more code than the technique fundamentally requires.
For learning graphics programming, in my opinion, writing software renderers is much more enjoyable path. Code is less, the code you write touches fundamental and not boilerplate. Downside is that code will be slower as you will lose HW acceleration.
- pjmlp 3mo agoNot necessarily, some folks advocate that with modern compute APIs we are better doing "software" rendering, but on the GPU. By the way, this is what renders like OTOY Octane do.
- deliciousturkey 3mo agoSadly you can't access RT cores with CUDA, you need to use a graphics API like Vulkan or D3D12. You can make a fast ray tracing based renderer using pure GPU compute, but it'll still be slower than using RT cores. And even with GPU compute, you benefit from HW acceleration with the HW texture unit.
- pjmlp 3mo agoNot everything is about ray tracing, and still it beats any software rendering, while being able to use mostly regular C++.
- deliciousturkey 3mo agoI would classify GPU compute based rendering as software rendering though. My original comment was written with that in mind. This is a semantic discussion though which is IMO not super important. If you do GPU-based software rendering, I would highly advice using RT instead of raster for visibility. It's simpler and likely also faster. But HW acceleration there also beats compute, in both, although you can achieve good results without acceleration too.