12P by GN⁺ 22시간전 | ★ favorite | 댓글 1개
  • 컴퓨터 그래픽스의 기초부터 고급 주제까지 무료로 학습할 수 있는 온라인 교육 플랫폼
  • 3D 렌더링, 수학적 기초, 디지털 이미징, 절차적 생성, 툴링 등 다양한 주제를 체계적으로 다룸
  • 실습 중심의 강의 구조로, 이론보다 직접적인 결과를 먼저 경험하도록 설계
  • Vulkan API 학습 과정(신규), 3D 프로그래밍 블로그(예정), 도서(출간 예정) 등 계속 발전중
  • 개발자와 디자이너가 컴퓨터 그래픽스의 원리와 구현 기술을 깊이 이해할 수 있는 무료 학습 자원

  • Scratchapixel은 “Learn computer graphics from scratch and for free”라는 슬로건 아래, 컴퓨터 그래픽스 전반을 무료로 학습할 수 있는 웹사이트

현재 등록된 과정들

  • 3D 렌더링의 기초 (The Foundations of 3D Rendering)

    • 초보자 친화적 순서로 구성된 렌더링 입문 강의
      • 이론보다 직접적인 결과물 구현을 먼저 다루는 접근 방식을 채택
    • 주요 강의 주제는 다음과 같음
      • Ray-Tracing 입문, 3D 장면 렌더링, Rasterization, 투영 행렬, 셰이딩과 조명, 텍스처링, 가속 구조, 볼륨 렌더링
    • 각 강의는 실제 구현 예제와 함께 픽셀 좌표 계산, 핀홀 카메라 모델, BRDF 및 셰이더 개념 등을 다룸
  • 컴퓨터 그래픽스를 위한 수학 (Mathematics for Computer Graphics)

    • 그래픽스 구현에 필요한 수학적 이론과 도구를 설명
      • 이 섹션은 입문용이 아니라, 다른 강의에서 언급된 개념을 참고할 참조용 자료로 구성
    • 주요 주제는 기하학, 행렬 역연산(Gauss-Jordan 방법) , 보간법, LookAt 함수, 셰이딩 수학, 몬테카를로 방법, 푸리에 변환
  • Computer Graphics Gems

    • 특정 카테고리에 속하지 않지만 흥미로운 개별 그래픽스 주제 모음
      • 현재는 Blackbody 복사 강의만 포함됨
  • Geometry

    • 컴퓨터 그래픽스에서 형태를 정의하는 방법을 다룸
      • Bézier 곡선과 곡면을 이용한 형태 표현 방법을 설명
  • Digital Imaging

    • 이미지 파일 처리와 색상 관리를 다룸
    • 주요 주제는 빛과 색 공간, 디지털 이미지의 파일-화면 변환, 기본 이미지 조작
  • Procedural Generation of Virtual Worlds

    • 자연 현상의 절차적 시뮬레이션을 다룸
    • Value Noise, Perlin Noise, 하늘색 시뮬레이션 등의 주제를 포함
  • Tooling

    • 3D 도구 개발과 상호작용 기술을 다룸
    • 윈도우 관리(Windowing) , OBJ 파일 포맷, 카메라 내비게이션 제어 등의 내용을 포함

최근 뉴스

  • 곧 오픈할 블로그는 3D 프로그래밍뿐 아니라 AI와 교육 등 관련 주제를 다룰 예정
  • Vulkan API에 대한 새로운 강의가 추가될 예정
  • "Learn Computer Graphics Programming from Scratch"라는 제목의 도서도 출간 예정
Hacker News 의견들
  • 이 웹사이트가 정말 많이 발전했음. 산타가 기부를 남겨야 할 정도로 훌륭함
    컴퓨터 그래픽스 분야에는 더 많은 오픈 교육 자료가 필요하다고 생각함. 예전 기술들은 오래된 책 속에 묻혀 있고, 새로운 기술들은 기업의 벽 뒤에 가려 있음. Sergei Savchenko의 3D Graphics Programming Games and Beyond 같은 책이 좋은 예임.
    요즘 그래픽스 API들은 불필요하게 복잡해서, 차라리 GPU를 잊고 소프트웨어 래스터라이저레이 트레이서를 직접 구현하는 게 좋은 출발점이라 봄.
    다만 이 사이트는 Discord 외에 연락 방법이 없는 게 아쉬움. 기부 페이지도 메인 페이지에서 바로 갈 수 있으면 좋겠음

    • 예전에 한 학생이 3D 게임을 만들고 싶다고 했을 때, 교수님이 난감해하셨던 기억이 있음. 그래서 내가 “도서관에서 Foley & Van Dam 책을 빌려보라”고 조언했음. 지금은 여러 개정판이 나와 있음 — Computer Graphics (Goodreads)
  • 이건 정말 보물 같은 자료임
    내 닉네임은 예전에 만들었던 Reactor 3D 엔진에서 따온 것임. Quake 3가 고등학교 시절 내 인생을 바꿨음. Doom이 컴퓨터에 입문하게 했다면, Quake 3는 3D에 빠지게 했음.
    수학은 잘 몰랐지만 코드를 베껴가며 배웠고, 지금은 웹과 그래픽스가 섞인 커리어를 걷고 있음. WebGL과 WebGPU가 보편화된 덕분에, 직장에서 박사들에게 vertex packing과 GPU 구조체 전송법을 가르치기도 했음.
    XNA Silverlight 개발자와 함께 일한 적도 있어서 MonoGame의 먼 친척쯤 됨. 이제는 Vulkan/DX12/Metal 같은 새로운 방식이 대세임

  • 이 사이트 정말 멋짐. 꼭 살펴봐야겠음
    대학원 시절 레이 트레이서를 직접 구현했는데, 그때 참고한 책이 Andrew S. Glassner의 An Introduction to Ray Tracing이었음. 지금은 무료로 다운로드 가능함 — 링크

  • 예전에 만든 그래픽스 프로그래밍 무료 자료 모음집이 있음. 지금은 많이 업데이트하진 않지만 도움이 될 수 있음 — gist 링크

  • 내 커리어 대부분에서 그래픽스는 블라인드 스팟이었음. 데이터와 분산 시스템 쪽으로 흘러갔지만, 사실 처음엔 게임을 만들고 싶어서 프로그래밍을 시작했음
    예전에 OpenGL로 행성 궤도 시뮬레이션을 만들거나, Flash로 이상한 슈팅 게임을 만든 적도 있음. 하지만 Vulkan을 배워보려 하면 코드 양에 질려서 포기하게 됨. 근본적인 개념을 잘 몰라서 그런 듯함. 언젠가 여유가 생기면 진지하게 다시 배워보고 싶음

    • WebGL이나 더 나은 선택으로 WebGPU를 추천함. 배우기 훨씬 쉽고, 배운 개념이 다른 API에도 적용됨 — WebGPU Fundamentals, WebGL2 Fundamentals
    • 나도 비슷한 느낌임. ZbrushMaya에 영감을 받아 셰이더로 예술을 만들어보려 했지만, 이런 거대한 소프트웨어를 부분적으로라도 복제하려면 매일 이 분야에 매달려야 할 듯함. Zbrush의 성능은 정말 경이로움
    • Vulkan은 초보자용이 아님. 기본기를 알아도 너무 장황함. Modern OpenGL 정도면 충분하고, Vulkan을 꼭 써야 한다면 SDL3 같은 상위 라이브러리를 쓰는 게 좋음
    • 내 생각엔 현대 그래픽스는 너무 복잡함. GPU 프로그래밍컴퓨터 그래픽스를 혼동하지 말아야 함. 초보자는 Vulkan보다 CPU 기반 래스터라이저레이 트레이서를 직접 구현해보는 게 훨씬 좋음
      예제 자료로 Tiny RendererRay Tracing in One Weekend를 추천함.
      이런 과정을 거치면 GPU가 왜 그렇게 설계되었는지 깊이 이해할 수 있음. 이후 OpenGL 4.6이나 D3D11, 그리고 ShaderToy, ShaderAcademy 같은 사이트로 확장해보길 권함
      CPU 기반 렌더링이 여전히 중요한 이유는, 영화 렌더러들이 정밀도 때문에 CPU를 사용하기 때문임. 참고로 WARPLLVMpipe는 실제 프로덕션에서도 쓰이는 소프트웨어 래스터라이저임
    • Vulkan은 사실 그래픽스 API가 아니라 저수준 GPU API임. 그래픽스는 GPU가 할 수 있는 기능 중 하나일 뿐임. 이걸 이해하면 Vulkan의 설계가 왜 그런지 납득됨
  • 이 웹사이트의 콘텐츠를 정말 즐기고 있음. 작년에 AI 썸네일 관련 피드백을 반영해준 것도 감사함 — HN 피드백 링크

    • 그래도 여전히 메인에 오타 투성이의 이미지가 남아 있는 건 아쉬움. 교육용 사이트로서는 보기 좋지 않음
  • 올해 목표 중 하나는 기초부터 소프트웨어 3D 렌더러를 직접 만드는 것임. 게임 엔진도, GPU도 없이 순수하게 구현해볼 예정임

    • 훌륭한 접근임. 나도 오랫동안 그렇게 가르쳐왔음. 대부분의 사람들이 3D 그래픽스는 곧 래스터라이제이션이라고 생각하지만, 나는 오히려 레이 트레이싱으로 시작한 게 행운이었다고 느낌
    • 다른 관점에서 보고 싶다면 Computer Graphics from Scratch도 추천함. 무료이며 이름이 비슷해서 헷갈릴 수 있음
    • 또 다른 좋은 자료로 Tiny Renderer가 있음
    • “build-your-own-x” 프로젝트 모음에도 관련 가이드가 있음 — GitHub 링크
    • 3D 그래픽스를 단 하나의 수식으로 풀어주는 영상도 있음 — YouTube: One Formula That Demystifies 3D Graphics
  • 요즘은 LLM에 웹사이트 링크나 PDF를 넣어 인터랙티브 학습 자료로 바꿀 수 있음. 나도 오늘 1000페이지짜리 PDF를 그렇게 변환해서 게임 엔진 공부에 활용했음. 북마크로만 남기지 않아서 좋음

    • 그런데 1000페이지 PDF를 처리할 만큼 컨텍스트 윈도우가 큰 LLM이 있나 궁금함
  • 혹시라도 NVIDIA의 그래픽스 API 독점, Google의 웹 지배, 그리고 AMD의 부진한 대안이 끝나는 날이 오길 바람