Rendering Pipeline (quy trình trình chiếu hình ảnh)

Một phần của tài liệu (Trang 30 - 33)

Chƣơng 1 : CƠ SỞ LÝ THUYẾT

5. Rendering Pipeline (quy trình trình chiếu hình ảnh)

Rendering Pipeline là quá trình diễn ra bên trong GPU, chuyển đổi dữ liệu đồ họa đƣợc truyền đến từ RAM từ dạng các đỉnh (vertex) thành các dữ liệu thích hợp để vẽ ra màn hình.

Đầu tiên, dữ liệu của các vertex đƣợc truyền từ RAM đến GPU dƣới dạng các Vertex Stream có cấu trúc là một mảng các bộ dữ liệu vertex chứa nhiều thuộc tính (Tọa độ, màu sắc, texcord,…)

Sau khi nhận dữ liệu từ các vertex stream, GPU sẽ đọc lấy các thuộc tính về tọa độ của mỗi vertex đó và truyền vào cho Vertex Shader.

Vertex Shader có nhiệm vụ đọc các giá trị tọa độ của các vertex và tổng hợp lại thành các hình khối (mỗi hình khối đƣợc tạo ra từ nhiều tam giác, mỗi tam giác tạo ra từ một bộ gồm 3 vertex)

31

Sau đó đến q trình Rasterization và Interpolation (suy diễn, nội suy, phân rã) để chuyển các hình khối, mặt phẳng tạo đƣợc ở bƣớc trƣớc thành các Fragment (các mảnh pixel).

Tiếp tục đọc dữ liệu từ các stream, lấy ra các giá trị thuộc tính nhƣ màu sắc, texture, texcord, các ma trận chiếu và truyền vào Fragment Shader cùng các fragment đƣợc phân rã ở trên.

Fragment shader sẽ tổng hợp các dữ liệu đƣợc truyền lại, thực hiện các phép biến đổi, hòa trộn màu, kiểm tra và lọc các fragment trùng lặp, chồng chéo lên nhau sau đó sẽ gửi trả dữ liệu lên màn hình để hiển thị.

Quá trình Early Depthtest là quá trình xử lý kiểm tra các fragment chồng chéo đè lên nhau nhƣng chỉ hỗ trợ ở các dòng GPU nhƣ Adreno hay Mali.

32

Nếu khơng có q trình Depth Test thì khi dựng hình, các hình ảnh có cùng thông số về độ sâu (trục z) sẽ bị chồng chéo lên nhau dẫn đến các hiện tƣợng nháy, giật, mất hình. Hiện tƣợng này gọi là z-fighting.

Trong OpenGL ES 2 thì lập trình viên có nhiệm vụ tự viết code xử lý cho Vertex Shader và Fragment Shader, nhờ đó có thể chủ động kiểm sốt q trình dựng hình và vẽ, đem lại sự tùy biến cao nhƣng việc này cũng tốn khá nhiều thời gian và khó khăn hơn việc sử dụng các hàm dựng sẵn thuần túy của OpenGL ES 1.x.

33

Một phần của tài liệu (Trang 30 - 33)

Tải bản đầy đủ (PDF)

(74 trang)