Các định dạng kết cấu nén GPU như DXT / BC / ETC được thiết kế đặc biệt để được đọc trực tiếp từ dạng nén của chúng. Chúng không cần được giải nén vào bộ đệm RGBA thô.
Cách thức hoạt động này là mỗi khối texels (thường là 4 x 4) chiếm một số bit cố định - vì vậy chúng tôi biết chính xác khoảng cách trong bộ đệm để tìm kiếm một texel cụ thể - và các khối này có thể được giải nén mà không cần đọc tất cả các xung quanh / trước thông tin kết cấu. GPU chứa phần cứng chuyên dụng chỉ giải nén các khối texel được yêu cầu khi cần để thực hiện các yêu cầu lấy mẫu kết cấu từ các shader của bạn.
Điều này trái ngược với các định dạng như jpg & png, trong đó lượng không gian mà mỗi texel chiếm có thể thay đổi trên hình ảnh (các khu vực chi tiết chiếm nhiều dữ liệu hơn, các khu vực có thể dự đoán chiếm ít hơn), vì vậy, để tìm một texel cụ thể bạn phải giải nén toàn bộ hình ảnh, hoặc ít nhất là khối lớn / phân phối của nó. Nhưng vì chúng có thể nén có chọn lọc các vùng có thể dự đoán của kết cấu, chúng có xu hướng nén hình ảnh thành kích thước nhỏ hơn để lưu trữ trên đĩa hoặc truyền qua mạng so với những gì chúng ta nhận được từ các định dạng thân thiện với GPU. Chiến lược khác nhau cho việc sử dụng khác nhau.
Nói chung, nên hỏi nhiều câu hỏi qua nhiều bài đăng, nhưng vì đây là một câu trả lời khá ngắn nên tôi cũng sẽ đạt điểm 3:
" Framebuffer " chỉ là một phần bộ nhớ video cụ thể mà chúng tôi đã quyết định sử dụng để lưu trữ hình ảnh sáng tác mà chúng tôi muốn trình bày trên màn hình. Hãy lưu ý các chi tiết trong câu trả lời của JarkkoL, trong đó trên một số phần cứng chuyên dụng, chúng tôi có thể chọn định vị bộ đệm này trong một phần cụ thể của bộ nhớ video khả dụng được tối ưu hóa cho nhu cầu băng thông của các mục tiêu kết xuất.