[HN Gopher] Learning Modern 3D Graphics Programming (2012) ___________________________________________________________________ Learning Modern 3D Graphics Programming (2012) Author : jasim Score : 59 points Date : 2022-12-28 20:10 UTC (2 hours ago) (HTM) web link (paroj.github.io) (TXT) w3m dump (paroj.github.io) | hactually wrote: | I'd recommend taking a look at either https://vkguide.dev or my | preferred https://vulkan-tutorial.com/ | | I remember learning "modern" OpenGL back in 2005 | dinkumthinkum wrote: | Did you have a time machine? OpenGL 3.3 came out in 2010. | bobharris wrote: | ThankYou. Are these the learnopengl.com of vulkan? | bmitc wrote: | If you were designing a new application from scratch, meant to be | cross-platform on Windows, macOS, and Linux, what 2D graphics | library would you use? I have been operating under the assumption | that Skia is that library but would like to hear thoughts. | | What about 3D? | | This is all assuming one wants something packaged and does not | want to write OpenGL or Vulkan code. | pak9rabid wrote: | Maybe check out QT? | overgard wrote: | https://vkguide.dev/ Might be a better alternative for 2022 | aappleby wrote: | Old graphics dev here who has mentored new hires in basic | rendering tech. | | Learn JavaScript+WebGL to the point where you can render simple | models with textures, shaders, and a basic camera controller. | | Then, if you enjoy it and want to go further, do the same but in | your favorite language + Vulkan. | bobharris wrote: | Inspiring. Thanks. | boppo1 wrote: | Once I've got some neat stuff, how do I find someone to pay me | money to work with these technologies? | aappleby wrote: | (Or WebGPU, I keep forgetting that one exists...) | pjmlp wrote: | No wonder, they are years away of doing 1.0 MVP. | bialpio wrote: | If all goes well, looks like it'll be shipping enabled by | default in Chrome M113 (scheduled to go out at the | beginning of May). | | https://groups.google.com/a/chromium.org/g/blink- | dev/c/VomzP... | _the_inflator wrote: | I agree. You can start with https://threejs.org/ to get things | rolling. | gfxgirl wrote: | Given that OpenGL is basically deprecated at this point this | arguably is no longer "modern 3D graphics programming" | | If you still want to learn OpenGL there's https://learnopengl.com | bmitc wrote: | Is OpenGL really deprecated? I know Apple wants to kill it, but | isn't there a _ton_ of software that is written on top of | OpenGL? | soup10 wrote: | a bunch of industry lobbyists that run committees decided to | kill it, the alternatives are worse for many applications | though | dinkumthinkum wrote: | Modern OpenGL is not deprecated on non-MacOS platforms and even | then there are shims for Vulkan. | mkl95 wrote: | OpenGL is not close to deprecation. It may be decades before | mainstream GPUs stop supporting it. The amount of non abandoned | software built on top of OpenGL that is not being migrated to | Vulkan is mindboggling. | pjmlp wrote: | Kind of, GL 4.6 is still much easier to deal with than Vulkan. | | Also it took a decade for good enough WebGL support, and WebGPU | is yet a year away to make its 1.0 release on Chrome, let alone | other browsers. | dinkumthinkum wrote: | Still much easier? They is a truly massive understatement. | synergy20 wrote: | This is also like 10 years old. OpenGL did not die easily, the | new replacements are at wars and I have yet to see an universal | API/library replaces OpenGL. | pjmlp wrote: | OpenGL was never universal on game consoles, despite urban | myths of support. | dang wrote: | Related: | | _Learning Modern 3D Graphics Programming_ - | https://news.ycombinator.com/item?id=7746192 - May 2014 (11 | comments) | | _Learning Modern 3D Graphics Programming_ - | https://news.ycombinator.com/item?id=3294840 - Nov 2011 (51 | comments) | | _Learning Modern 3D Graphics Programming with OpenGL 3_ - | https://news.ycombinator.com/item?id=2528740 - May 2011 (16 | comments) | synergy20 wrote: | all dead links? | | The one from 2012 seems great, in the meantime it is 10 years | old, is there newer version on the same topic somewhere else? | tmpburning wrote: | > > Learning Modern 3D Graphics Programming - | https://news.ycombinator.com/item?id=7746192 - May 2014 (11 | comments) | | > > Learning Modern 3D Graphics Programming - | https://news.ycombinator.com/item?id=3294840 - Nov 2011 (51 | comments) | | > > Learning Modern 3D Graphics Programming with OpenGL 3 - | https://news.ycombinator.com/item?id=2528740 - May 2011 (16 | comments) | | > all dead links? | | dang is a robot.. ChatGPT will soon take over. | dang wrote: | Those 'related' lists are mostly so people can look at the | old comment threads, which are not dead, and hopefully won't | be for a long time. | | archive.org has copies of most URLs that have been submitted | to HN over the years, and one of these days (years) we should | try to take advantage of that more formally. In the meantime | you have to look them up manually or write code to do that. | pjmlp wrote: | Not so modern after a decade. | | For OpenGL, there is DSA and SPIR-V support. | | And then there is Metal, Vulkan and DX 12, alongside NVN and | LibGNM/GNMX. | synergy20 wrote: | Every big players are running their own 3D graphic APIs these | days, wish they all agreed on something like Vulkan. | pjmlp wrote: | Khronos keeps not having an idea how to make APIs not full of | extensions and low level SDK tooling. | | Big players have always used their own 3D APIs since the dawn | of 3D graphics. | psychphysic wrote: | I don't think it's entirely khronos support as basically | each vendor what's to embrace, extend and extinguish it | constantly. | | CUDA is kind of winning it for nvidea. | pjmlp wrote: | Sure it is, not even LunarG's SDK is at the same level as | proprietary API SDKs in frameworks, debugging, IDE | integration, beyond the basics. | | CUDA is winning on compute exactly because of that as | well. | dinkumthinkum wrote: | You think the big players don't (didn't) use OpenGL, | Vulkan, DX, etc? | pjmlp wrote: | Sony definitely not, Nintendo to some extent after GX, | Apple only after adopting NeXTSTEP (QuickDraw 3D was | their thing), Microsoft alongside NVidia and AMD design | first for DX, then the features get ported into GL/Vulkan | as extensions,... | Animats wrote: | Yes. WGPU is often being used as a common layer to abstract | Vulkan, Apple's Metal, and Microsoft's DX12, which do pretty | much the same thing. | | Modern 3D graphics programming mostly abstracts to: | | - Load standard gLTF shaders into GPU. | | - Create mesh objects. Send to GPU. | | - Create texture maps. Send to GPU. | | - Create light objects. Send to GPU. | | - Create 4x4 transform matrices. Send to GPU. | | - Create objects referencing meshes, textures, and | transforms. Send to GPU. | | - Create camera transform matrix. Send to GPU. | | - Tell GPU "Go!". | | Beyond that, it's mostly special effects, such as atmosphere, | lens flare, etc. | | Most of the headaches today involve managing the memory in | the GPU, for which there are libraries. | andsoitis wrote: | The most popular modern graphics (GPU) APIs are DirectX 12 | (Microsoft), Metal (Apple), and Vulkan (Khronos Group). | | Targeting all three can be tough, hence WebGPU which lets you | write to a single API. Support on non-web runtimes have been | appearing as well, so you're not necessarily limited to the | browser (e.g. https://github.com/samdauwe/webgpu-native- | examples). | | Good read: https://surma.dev/things/webgpu/ | | Tutorial for learning Vulkan: | https://www.vulkan.org/learn#vulkan-tutorials | vegabook wrote: | worth mentioning that Vulkan is the only API that runs on all | three major platforms. Natively on Windows and Linux, via | MoltenVK on MacOS. | slimsag wrote: | Vulkan has a lot going for it these days, but IMO the problem | with its future is that (a) it's too verbose to use without | an abstraction on top and (b) vendors won't stop pushing | their native APIs as a competitive advantage (Microsoft still | pushing DirectX - often getting features a year or two ahead | of Vulkan, Apple is pushing Metal, GNM[X] from Sony, etc.) | | I think this means the future of graphics APIs is software | abstractions around the truly native APIs (DirectX, Metal, | etc.) - things like WebGPU, sokol_gfx, SDL's new GPU | abstraction, and Sebastian Aaltonen's stuff. | pjmlp wrote: | Middleware runs on more platforms, with more friendly | tooling. | slimsag wrote: | samdauwe's work is fantastic. We're using WebGPU in Mach | engine, and also have quite a large set of examples for how to | use WebGPU from Zig[0] that are pretty much standalone (only | use our engine for windowing/input), may be a bit easier for | folks to run (zero-fuss installation, you can cross compile | seamlessly to any OS, etc.): | | [0] https://machengine.org/gpu/ | pjmlp wrote: | Middleware is a better option, given consoles support, and | being the way studios have always dealt with multiple API | support. | AlbertoGP wrote: | Is "Middleware" the name of a graphics library? Or are you | talking in general, saying that using an intermediate library | is better than using the platform's API? | dinkumthinkum wrote: | Are you into graphics? Vulkan and DX 12 are not what you start | with to learn modern graphics programming. One thing, you | should realize by modern they mean use modern graphics pipeline | programming instead of an immediate mode API. So "Modern | OpenGL" is modern graphics programming and actually it is | sufficient for many cases but not for AAA real-time graphics | but learning DX11 or Modern OpenGL is the right place to start. | keepquestioning wrote: | Outdated. Learn VULKAN | synergy20 wrote: | are all big players supporting it? is there a good document. | | while this is all about graphics, I wonder how GPGPU will end | up in the future. OpenCL did not get much love, CUDA still | rules the market(leaves Intel's OneAPI and AMD's ROCm and the | legendary OpenMP etc in the dust). Apple's Metal does both | graphics and GPGPU, Vulkan is also said to do both graphics and | GPGPU, not sure about Microsoft's, does it even have a GPGPU | API considering it is the only player without its own hardware. | psychphysic wrote: | What really killed them (as in not CUDA) is no easy way to | use them. | | OpenCl pretty much broken on mesa so really amd is no better | than Nvidia on Linux. And Nvidia killing it with CUDA where | it works. ___________________________________________________________________ (page generated 2022-12-28 23:00 UTC)