[HN Gopher] Learn computer graphics from scratch and for free
       ___________________________________________________________________
        
       Learn computer graphics from scratch and for free
        
       Author : theusus
       Score  : 142 points
       Date   : 2025-12-28 11:08 UTC (11 hours ago)
        
 (HTM) web link (www.scratchapixel.com)
 (TXT) w3m dump (www.scratchapixel.com)
        
       | yunnpp wrote:
       | The website has come a long way, a good reminder for Santa to
       | drop a donation.
       | 
       | Computer graphics needs more open education for sure. Traditional
       | techniques are sealed in old books you have to go out of your way
       | and find; Sergei Savchenko's "3D Graphics Programming Games and
       | Beyond" is a good one. New techniques are often behind
       | proprietary gates, with shallow papers and slides that only give
       | a hint of how things may work. Graphics APIs, especially modern
       | ones, make things more confusing than they need to be too. I
       | think writing software rasterizers and ray tracers is a good
       | starting point; forget GPUs exist.
       | 
       | Also, slight tangent, but there doesn't seem to be any contact
       | method here other than Discord, which I find to be an immediate
       | turn-off. Last time I checked, it required a phone number.
       | 
       | The donations page could use a link directly from the homepage
       | too.
        
         | WillAdams wrote:
         | I can still remember a fellow student wanting to know how to
         | write a 3D computer game, the professor being stumped, and my
         | chiming in w/
         | 
         | >Get Foley & Van Dam from the library
         | 
         | noting it should be available to check out, since I'd just
         | checked it back in.
         | 
         | Several new editions since:
         | 
         | https://www.goodreads.com/book/show/5257044-computer-graphic...
        
           | yunnpp wrote:
           | Yeah, that's "the mouse book" in my mind. The tiger book is
           | also a very good compilation of topics, though it leaves
           | things as "exercise for the reader" more often than I would
           | like to.
           | 
           | https://www.goodreads.com/book/show/1933732.Fundamentals_of_.
           | ..
        
       | tombert wrote:
       | Graphics have been a blind spot for me for pretty much my entire
       | career. I more or less failed upward into where I am now (which
       | ended up being a lot of data and distributed stuff). I do enjoy
       | doing what I do and I think I'm reasonably good at it so it's
       | hardly a "bad" thing, but I (like I think a lot of people here)
       | got into programming because I wanted to make games.
       | 
       | Outside of playing with OpenGL as a teenager to make a planet
       | orbit around a sun, a bad space invaders clone in Flash where you
       | shoot a bird pooping on you, a really crappy Breakout clone with
       | Racket, and the occasional experiments with Vulkan and Metal, I
       | never really have fulfilled the dream of being the next John
       | Carmack or Tim Sweeney.
       | 
       | Every time I try and learn Vulkan I end up getting confused and
       | annoyed about how much code I need to write and give up. I
       | suspect it's because I don't really understand the fundamentals
       | well enough, and as a result jumping into Vulkan I end up
       | metaphorically "drinking from a firehose". I certainly hope this
       | doesn't happen, but if I manage to become unemployed again maybe
       | that could be a good excuse to finally buckle down and try and
       | learn this.
        
         | socalgal2 wrote:
         | Try WebGL or better, WebGPU. It's so much easier and all the
         | concepts you learn are applicable to other APIs.
         | 
         | https://webgpufundamentals.org
         | 
         | or
         | 
         | https://webgl2fundamentals.org
         | 
         | I'd choose webgpu over webgl2 as it more closely resembles
         | current mondern graphics APIs like Metal, DirectX12, Vulkan.
        
           | tombert wrote:
           | Yeah you're not the first one to mention that to me. I'll
           | probably try WebGPU or wgpu next time I decide to learn
           | graphics. I'd probably have more fun with it than Vulkan.
        
           | gattr wrote:
           | I concur; just last month I started with `wgpu` (the Rust
           | bindings for WebGPU) after exclusively using OpenGL (since
           | 2000, I think? via Delphi 2). Feels a bit verbose at first
           | (with all the pipelines/bindings setup), but once you have
           | your first working example, it's smooth sailing from there. I
           | kind of liked (discontinued) `glium`, but this is better.
        
         | weslleyskah wrote:
         | I feel the same. I was trying to make some "art" with shaders.
         | 
         | I was inspired by Zbrush and Maya, but I don't think I can
         | learn what is necessary to build even a small clone of these
         | gigantic pieces of software, unless I work with this on a day
         | to day basis.
         | 
         | The performance of Zbrush is so insane... it is mesmerizing. I
         | don't think I can go deep into this while treading university.
        
         | bicolao wrote:
         | > Every time I try and learn Vulkan I end up getting confused
         | and annoyed about how much code I need to write and give up.
         | 
         | Vulkan isn't meant for beginners. It's a lot more verbose even
         | if you know the fundamentals. Modern OpenGL would be good
         | enough. If you have to use Vulkan, maybe use one of the
         | libraries built on top of it (I use SDL3 for example). You
         | still have freedom doing whatever you want with shaders and
         | leave most of resource management to those libraries.
        
       | suioir wrote:
       | I really enjoy the website content and appreciate the hard work
       | to create it. Also, thank you to the author for taking action on
       | the HN feedback last year about the AI thumbnails that used to be
       | all over this site. [0]
       | 
       | [0] https://news.ycombinator.com/item?id=40622209
        
         | RodgerTheGreat wrote:
         | There's still an obnoxious slop image front-and-center, full of
         | nonsense typos. Not a good look for any educational resource.
        
       | suprjami wrote:
       | One of my goals this year is to write a basic software 3D
       | renderer from first principles. No game engine, no GPU. I'm
       | looking forward to it.
        
         | listic wrote:
         | build-your-own-x*, a popular compilation of "well-written,
         | step-by-step guides for re-creating our favorite technologies
         | from scratch", contains some.
         | 
         | * https://github.com/codecrafters-io/build-your-own-x
        
         | delta_p_delta_x wrote:
         | Here you go: https://haqr.eu/tinyrenderer/
        
         | ggambetta wrote:
         | OP's link is a good one, but if you want a different
         | perspective (heh), there's
         | https://gabrielgambetta.com/computer-graphics-from-
         | scratch/i..., also from scratch, also for free. The name clash
         | is unfortunate, I don't really know who started using it
         | earlier :(
        
       | neuroelectron wrote:
       | Just in case NVidia stops having a monopoly of graphics APIs, and
       | Google on the web, and AMD as the alternative that sucks and
       | isn't maintained.
        
       | random9749832 wrote:
       | You can now post a link of a website into an LLM and turn it into
       | an interactive resource. I did this but with a 1000 page PDF
       | today to help me learn more about game engines. Best way to do it
       | if you don't want it to become another PDF / bookmark that is
       | forgotten.
        
       ___________________________________________________________________
       (page generated 2025-12-28 23:00 UTC)