+ Display list: Là nơi lưu lại một sốlệnh đểxửlý sau.
+ Evaluator: Xấp xỉcácđường cong và măt phẳng hình học bằng cách đánh giá các đa
thức của dữliệu đưa vào.
+ Per-vertex operations and primitive assembly: xử lý các primitive (điểm, đoạn, đa
giác) được mô tả bởi các vertex. Các vertex sẽ được xử lý và các primitive được cắt
xén vào viewport đểchuẩn bịcho khâu kếtiếp.
+ Rasterization: sinh ra một loạt các địa chỉ framebuffer và các giá trị liên quan bằng cách sử dụng mô tả 2 chiều của điểm, đoạn, đa giác. Mỗi phần tử (fragment ) được sinh ra sẽ đưa vào giai đoạn kế.
+ Per-fragment operations: Các tác vụsau cùng (cập nhật có điều kiện cho framebuffer dựa vào dữliệu vào và dữliệu được lưu trữ trước đó của giá trị z (đối với z buffering), thực hiện trộn màu cho các pixel và làm một số thao tác khác) sẽ được thực hiện trên dữliệu trước khi nó được chuyển thành pixel và đưa vào framebuffer.
Trường hợp dữ liệu vào ở dạng pixel khơng phải vertex, nó sẽ được đưa thẳng vào giai đoạn xử lý pixel. Sau giai đoạn này, dữ liệu ở dạng pixel sẽ được lưu trữ vào texture memory để đưa vào giai đoạn Per-fragment operation hoặc được đưa vào Rasterization như dữ liệu dạng vertex.
- Mơ hình hoạt động
Mơ hình diễn dịch các lệnh của OpenGL là mơ hình Client/Server. Code trong
chương trình (client) sẽ đưa ra mệnh lệnh. Các mệnh lệnh này sẽ được diễn dịch và
thực thi bởi OpenGL (server). Server có thể khơng ở chung một máy với client (liên lạc thông qua network). Một server có thể quản lý nhiều ngữ cảnh (context)(tương tự dll), mỗi ngữ cảnh là một trạng thái gói gọn của OpenGL. Client có thể nối kết vào một trong bất kỳ các ngữ cảnh này. Giao thức (protocol) yêu cầu có thể là bất cứ giao thức nào sẵn có hoặc sử dụng một giao thức riêng. Khơng có lệnh OpenGL nào được cung cấp để nhận dữ liệu của người dùng (user input).
Hệ thống điều hành nào cấp phát (allocate) tài nguyên framebuffer sẽ là hệ thống cuối cùng điều khiển các hiệu quả tác dụng của các lệnh OpenGL lên framebuffer đo.ù Hệ thống sẽ:
+ Quyết định phần nào của framebuffer mà OpenGL có thể truy xuất tại một thời
điểm.
+ Truyền đạt đến OpenGL cấu trúc củacảphần đó.
Khơng có lệnh OpenGL nào cấu hình framebuffer hoặc khởi động OpenGL cũng như quản lýthiết bị hiển thị (việc này do grapgic driver làm). OpenGL được khởi động khi hệ thống window cấp phát một cửa sổ cho việc thể hiện OpenGL (OpenGL rendering). Các mode hoạt động:
+ Rendering: là mode bình thường, mặc định mà trong đó các fragment được tạora bởi quá trình rasterization.
+ Selection: Người lập trình có thể chọn lựa các primitive để vẽ vào một vùng nào đó
của cửa sổ.
+ Feedback: thơng tin về các primitive sắp được raster sẽ được gửi trả về cho trìnhứng
Trong Selection mode và Feedback mode, khơng có fragment nào được tạo ra, do đó khơng có sự sửa đổi nào xảy ra đối với frambuffer. Ba mode trên là loại trừ lẫn nhau.Các mode được chọn lựa thông qua việc gọi hàm.
- Yêu cầu hệ thống cho việc dùng OpenGL:
+ Cần có card màn hình và driver cho card màn hình phải hộ trợ OpenGL (nên cập nhật driver mới nhất phù hợp với card). Một số card có hỗ trợ OpenGL: Trident, S3, Riva TNT & Geforce,Voodoo.
+ Hệ điều hành: Windows 9x, Windows 2k, Windows NT.