Phạm vi của các giá trị được ghi vào bộ đệm độ sâu là bất cứ điều gì bạn muốn chúng là. Thông thường, họ rơi vào phạm vi 0-1. Giá trị thực được ghi vào bộ đệm độ sâu được tính trong quá trình chuyển đổi khung nhìn, dựa trên giá trị Z của đỉnh trong không gian NDC (sau khi phối cảnh chia cho w trong không gian clip).
Giá trị độ sâu NDC (Z, sau khi chia phối cảnh cho W) được chia tỷ lệ theo phần độ sâu của chuyển đổi chế độ xem (đưa tọa độ X và Y của bạn vào không gian tọa độ mà bạn liên kết với pixel trong cửa sổ), sau đó được chia tỷ lệ theo (2^n-1)
- điều đó có nghĩa được đọc là "hai đến sức mạnh của n
" - n
là độ chính xác bit của bộ đệm độ sâu. Giá trị kết quả được ghi vào bộ đệm sâu.
OpenGL tách nghĩa của ma trận chuyển đổi khung nhìn vào glViewport và glDepthRange cuộc gọi. glDepthRange là những gì kiểm soát yếu tố tỷ lệ chịu trách nhiệm xác định phạm vi độ sâu bạn đang hỏi về. Bạn có thể gọi glGetFloatv với GL_DEPTH_RANGE
bộ chọn để khôi phục phạm vi hiện tại. Điều này sẽ cho phép bạn sử dụng phạm vi mà không giả sử nó là 0 thành 1 (mặc dù 99,9% thời gian, trong thực tế, không ai thay đổi nó).
Đọc thêm, nếu bạn muốn có một cái nhìn sâu sắc về cách tái cấu trúc toán học để theo giá trị Z mọi cách từ không gian mắt đến bộ đệm sâu.