Tôi hiện đang học đại học về khoa học máy tính. Mặc dù tôi có kế hoạch sử dụng một công cụ hiện có tại một số điểm để tạo ra một trò chơi nhỏ, mục tiêu của tôi ngay bây giờ là hướng tới việc học các nguyên tắc cơ bản: cụ thể là lập trình 3D. Tôi đã thực hiện một số nghiên cứu về sự lựa chọn giữa DirectX và OpenGL và tâm lý chung xuất phát từ đó là dù bạn chọn OpenGL hay DirectX làm nền tảng bánh xe đào tạo của bạn, rất nhiều kiến thức có thể chuyển sang nền tảng khác . Do đó, vì OpenGL được hỗ trợ bởi nhiều hệ thống hơn (có thể là một lý do ngớ ngẩn để chọn học gì), tôi đã quyết định rằng tôi sẽ học OpenGL trước.
Sau khi tôi đưa ra quyết định học OpenGL, tôi đã nghiên cứu thêm và tìm hiểu về một sự phân đôi mà lúc nào đó tôi không biết: OpenGL chức năng cố định so với OpenGL dựa trên lập trình hiện đại. Lúc đầu, tôi nghĩ rằng đó là một lựa chọn rõ ràng rằng tôi nên chọn học OpenGL dựa trên shader vì đó là thứ được sử dụng phổ biến nhất trong ngành công nghiệp ngày nay. Tuy nhiên, sau đó tôi tình cờ thấy chương trình Học tập đồ họa 3D hiện đại rất nổi tiếng của Jason L. McKesson, nằm ở đây: http : //www.arcsynt tổng hợp.org / gltut /
Tôi đọc qua các bit giới thiệu và trong phần "Giới thiệu về cuốn sách này", tác giả tuyên bố:
"Đầu tiên, phần lớn những gì học được với phương pháp này chắc chắn phải bị bỏ rơi khi người dùng gặp phải vấn đề đồ họa phải giải quyết bằng khả năng lập trình. Khả năng lập trình xóa sạch gần như tất cả các đường ống chức năng cố định, vì vậy kiến thức không dễ dàng chuyển giao."
nhưng đồng thời cũng làm cho trường hợp chức năng cố định cung cấp một đường cong học tập dễ dàng hơn, ngay lập tức hơn cho người mới bắt đầu bằng cách nêu:
"Nó thường được coi là dễ nhất để dạy các lập trình viên đồ họa tân sinh bằng cách sử dụng đường ống chức năng cố định."
Đương nhiên, bạn có thể thấy lý do tại sao tôi có thể bị mâu thuẫn về mô hình nào cần học: Tôi có dành nhiều thời gian để học (và sau đó không học) các cách của chức năng cố định hay tôi chọn bắt đầu với shader? Mối quan tâm chính của tôi là các shader lập trình hiện đại bằng cách nào đó yêu cầu lập trình viên phải hiểu đường ống chức năng cố định, nhưng tôi nghi ngờ đó là trường hợp.
TL; DR = Là một lập trình viên đồ họa game đầy tham vọng, việc học lập trình 3D thông qua chức năng cố định hay lập trình dựa trên shader hiện đại là điều tôi quan tâm nhất?