- Nền tảng học trực tuyến cho phép học miễn phí từ kiến thức cơ bản đến các chủ đề nâng cao của đồ họa máy tính
- Bao quát có hệ thống nhiều chủ đề như 3D rendering, nền tảng toán học, digital imaging, procedural generation, tooling
- Cấu trúc bài giảng thiên về thực hành, được thiết kế để người học trải nghiệm kết quả trực tiếp trước thay vì lý thuyết
- Tiếp tục phát triển với khóa học Vulkan API (mới), blog về lập trình 3D (sắp ra mắt), sách (sắp xuất bản)
- Tài nguyên học tập miễn phí giúp nhà phát triển và nhà thiết kế hiểu sâu nguyên lý và kỹ thuật triển khai của đồ họa máy tính
- Scratchapixel là một website cho phép học miễn phí toàn diện về đồ họa máy tính dưới khẩu hiệu “Learn computer graphics from scratch and for free”
Các khóa học hiện có
-
Nền tảng của 3D Rendering (The Foundations of 3D Rendering)
- Khóa nhập môn rendering được sắp xếp theo thứ tự thân thiện với người mới bắt đầu
- Áp dụng cách tiếp cận ưu tiên triển khai kết quả trực quan trực tiếp trước hơn là lý thuyết
- Các chủ đề chính gồm
- Nhập môn Ray-Tracing, rendering cảnh 3D, Rasterization, ma trận chiếu, shading và ánh sáng, texturing, cấu trúc tăng tốc, volume rendering
- Mỗi bài giảng đi kèm ví dụ triển khai thực tế và đề cập đến tính toán tọa độ pixel, mô hình camera lỗ kim, khái niệm BRDF và shader
-
Toán học cho đồ họa máy tính (Mathematics for Computer Graphics)
- Giải thích lý thuyết và công cụ toán học cần cho việc triển khai đồ họa
- Phần này không dành cho nhập môn mà được xây dựng như tài liệu tham chiếu cho các khái niệm được nhắc đến ở những bài giảng khác
- Các chủ đề chính gồm hình học, nghịch đảo ma trận (phương pháp Gauss-Jordan), nội suy, hàm LookAt, toán học cho shading, phương pháp Monte Carlo, biến đổi Fourier
-
Computer Graphics Gems
- Tập hợp các chủ đề đồ họa riêng lẻ thú vị không thuộc một danh mục cụ thể
- Hiện tại chỉ bao gồm bài giảng về bức xạ vật đen
-
Geometry
- Trình bày cách định nghĩa hình dạng trong đồ họa máy tính
- Giải thích cách biểu diễn hình dạng bằng đường cong và bề mặt Bézier
-
Digital Imaging
- Trình bày về xử lý tệp hình ảnh và quản lý màu sắc
- Các chủ đề chính gồm ánh sáng và không gian màu, chuyển đổi từ tệp số sang hiển thị trên màn hình, các thao tác ảnh cơ bản
-
Procedural Generation of Virtual Worlds
- Trình bày về mô phỏng theo thủ tục các hiện tượng tự nhiên
- Bao gồm các chủ đề như Value Noise, Perlin Noise, mô phỏng màu bầu trời
-
Tooling
- Trình bày về phát triển công cụ 3D và kỹ thuật tương tác
- Bao gồm nội dung như quản lý cửa sổ (Windowing), định dạng tệp OBJ, điều khiển điều hướng camera
Tin tức gần đây
- Blog sắp ra mắt sẽ đề cập không chỉ đến lập trình 3D mà còn cả các chủ đề liên quan như AI và giáo dục
- Sẽ bổ sung khóa học mới về Vulkan API
- Cũng có kế hoạch xuất bản cuốn sách mang tên "Learn Computer Graphics Programming from Scratch"
1 bình luận
Ý kiến trên Hacker News
Trang web này đã tiến bộ rất nhiều. Tuyệt vời đến mức Santa nên để lại một khoản quyên góp
Mình nghĩ lĩnh vực đồ họa máy tính cần nhiều tài liệu giáo dục mở hơn nữa. Các kỹ thuật cũ thì bị chôn vùi trong những cuốn sách cũ, còn các kỹ thuật mới lại bị che sau bức tường doanh nghiệp. Một ví dụ hay là cuốn 3D Graphics Programming Games and Beyond của Sergei Savchenko.
Các API đồ họa ngày nay phức tạp một cách không cần thiết, nên có lẽ tốt hơn là quên GPU đi và tự triển khai một software rasterizer hoặc ray tracer để bắt đầu.
Tuy vậy, hơi tiếc là trang này không có cách liên hệ nào ngoài Discord. Cũng sẽ hay hơn nếu trang quyên góp có thể truy cập trực tiếp từ trang chính
Đây thực sự là một kho báu
Nickname của mình được lấy từ Reactor 3D engine mà mình từng làm. Quake 3 đã thay đổi cuộc đời mình hồi trung học. Nếu Doom đưa mình bước vào thế giới máy tính, thì Quake 3 khiến mình mê 3D.
Mình không giỏi toán, nhưng đã học bằng cách chép code, và giờ đang theo một sự nghiệp giao thoa giữa web và đồ họa. Nhờ WebGL và WebGPU trở nên phổ biến, mình thậm chí còn dạy các tiến sĩ ở chỗ làm về vertex packing và cách truyền struct sang GPU.
Mình cũng từng làm việc với một lập trình viên XNA Silverlight, nên xem như có họ hàng xa với MonoGame. Giờ thì những cách tiếp cận mới như Vulkan/DX12/Metal đang là xu hướng
Trang này thật sự rất tuyệt. Nhất định phải xem kỹ
Hồi học cao học mình từng tự triển khai một ray tracer, và cuốn sách mình tham khảo khi đó là An Introduction to Ray Tracing của Andrew S. Glassner. Giờ có thể tải miễn phí — liên kết
Mình có một bộ sưu tập tài liệu miễn phí về lập trình đồ họa từng làm trước đây. Giờ không còn cập nhật nhiều nữa nhưng vẫn có thể hữu ích — gist link
Trong phần lớn sự nghiệp của mình, đồ họa là một điểm mù. Mình đã chuyển sang dữ liệu và hệ thống phân tán, nhưng thật ra ban đầu mình bắt đầu lập trình vì muốn làm game.
Trước đây mình từng làm mô phỏng quỹ đạo hành tinh bằng OpenGL, hoặc làm mấy game bắn súng kỳ quặc bằng Flash. Nhưng cứ hễ thử học Vulkan là lại choáng vì lượng code và bỏ cuộc. Có lẽ vì mình không nắm vững các khái niệm nền tảng. Khi nào có thời gian rảnh, mình muốn nghiêm túc học lại
Để làm tài liệu ví dụ, mình khuyên Tiny Renderer và Ray Tracing in One Weekend.
Đi qua quá trình này, bạn sẽ hiểu sâu hơn vì sao GPU lại được thiết kế như vậy. Sau đó có thể mở rộng sang OpenGL 4.6 hoặc D3D11, rồi các trang như ShaderToy, ShaderAcademy.
Lý do render trên CPU vẫn còn quan trọng là vì các renderer cho phim sử dụng CPU vì độ chính xác. Tham khảo thêm, WARP và LLVMpipe là các software rasterizer thực sự được dùng trong production
Mình rất thích nội dung của trang web này. Cũng cảm ơn vì năm ngoái họ đã phản ánh góp ý về thumbnail AI — liên kết phản hồi trên HN
Một trong những mục tiêu năm nay của mình là tự làm một trình dựng hình 3D bằng phần mềm từ nền tảng. Không dùng game engine, không dùng GPU, chỉ thuần tự triển khai
Dạo này có thể đưa link website hoặc PDF vào LLM để biến chúng thành tài liệu học tương tác. Hôm nay mình cũng đã chuyển đổi một file PDF 1000 trang theo cách đó để học về game engine. Hay ở chỗ là không chỉ để bookmark rồi bỏ đó
Mong là sẽ có ngày sự độc quyền API đồ họa của NVIDIA, sự thống trị web của Google, và những lựa chọn thay thế yếu kém của AMD chấm dứt