Trong những lúc như vậy, tôi luôn hướng đến Khảo sát phần cứng hơi nước: http://store.steampowered.com/hwsurvey/ - bạn sẽ thấy tỷ lệ thâm nhập thị trường của các hệ thống lớp DX10 / 11 là gần 80%; điều này tương đương với GL3.3 trở lên. 80% này được giới hạn cho người dùng Vista / 7 - thêm GPU DX10 / 11 với XP và bạn tăng lên chỉ hơn 90%.
Hãy nhớ rằng chúng ta đang nói về những game thủ khó tính hơn một chút ở đây, sau đó bạn cần bắt đầu suy nghĩ về đối tượng mục tiêu của mình. Đây có phải là những người bạn muốn nhắm mục tiêu? Thay vào đó, bạn đang nhắm đến những người có phần cứng downlevel hơn? Còn đồ họa Intel thì sao? Còn người dùng Mac và Linux thì sao? Đây là tất cả các câu hỏi mà bạn cần phải tự trả lời, vì vậy, các hướng dẫn chung chung là cách tốt nhất bạn sẽ nhận được.
Thêm vào đó, bạn cần tính đến thực tế là nếu bạn bắt đầu học ngày hôm nay với ý định vận chuyển thứ gì đó, bạn sẽ xem xét khoảng thời gian tối thiểu khoảng một năm trước khi bạn đến đó (trừ khi chúng ta đang nói về những trường hợp thực sự tầm thường / đơn giản). Với xu hướng tăng dần của các khả năng của gfx đang tiếp tục, chúng tôi đang xem xét việc thực sự gần với sự hấp thu 100% của phần cứng GL3.3 +.
Sau đó, yếu tố đó là với GL2.1 hoặc thấp hơn, bạn sẽ học và sử dụng rất nhiều thứ vớ vẩn cũ kỹ, ngay cả khi bạn hạn chế sử dụng shader và tập con VBO của GL2.1 (phiên bản GLSL downlevel rất khó sử dụng và các VBO phát trực tuyến đều không thể sử dụng được nếu không có GL_ARB_map_buffer_range) - GL3.3 + đã giới thiệu nhiều cách xử lý tốt hơn (và hiệu quả hơn), bạn sẽ sử dụng phần cứng của người chơi tốt hơn (và họ sẽ biết ơn bạn vì điều đó) và bạn sẽ dành nhiều thời gian hơn để viết mã hiệu quả hơn là chiến đấu với một API thực sự không muốn hợp tác với bạn.
Và dĩ nhiên, có tình huống lái xe đáng sợ. Sự thật phũ phàng nhưng sự thật là các trình điều khiển GL trên Windows đang ở trạng thái xin lỗi - NV hỗ trợ những thứ họ không nên, AMD không hỗ trợ những thứ họ nên và với Intel, bạn thực sự cần phải hạn chế chức năng GL mà có một tương đương trong D3D. GL_VERSION càng mới thì càng có nhiều khả năng bạn sẽ gặp phải lỗi trình điều khiển, nhưng đối với GL3.3 thì mọi thứ đã ổn định một cách hợp lý.
Vì vậy, tóm tắt là, trong trường hợp không có bất kỳ thông tin nào khác (đối tượng mục tiêu, v.v.), tôi sẽ nhắm mục tiêu GL3.3 làm đường cơ sở (có thể lấy chức năng từ GL_VERSION cao hơn ở nơi có sẵn và nơi nó không phá vỡ cơ sở mã hóa quá nhiều) trừ khi có một lý do rất cụ thể và được xác định rõ ràng để đi xuống thấp hơn (và tôi muốn hoàn toàn chắc chắn 100% về điều đó thay vì sử dụng một số khái niệm mơ hồ về " nhưng những gì về phần cứng cũ "). Trong trường hợp sau, tôi sẽ không xuống dưới GL2.1 và tôi sẽ tìm kiếm chức năng 3.x càng nhiều càng tốt.