2010-04-13 3 views
0

z 버퍼는 다른 개체 앞에 어떤 개체를 쓰는지 보여주는 3D 배열입니다. 배열 내의 각 요소는 0.0 ~ 1.0의 값을 보관 유지하는 픽셀을 나타냅니다. 내 질문은 그게 모두 z 버퍼가 있다면, 그럼 왜 일부 버퍼 24 비트, 32 비트, 그리고 16 비트입니까?이해 z 버퍼 형식 직접 x

답변

2

A- 버퍼는 3D 배열이 아닙니다. 각 픽셀에 값을 갖는 2D 배열입니다. 이 값은 해당 위치에 쓰여진 마지막 픽셀의 깊이를 나타냅니다.

보류중인 픽셀의 깊이가 Z 버퍼의 현재 값보다 뒤쪽이면 픽셀이 표시되지 않으므로 건너 뜁니다. 이것은 어떤 순서로든 객체를 렌더링 할 수있게 해줍니다. 픽셀 비하인 (pixel behind)은 앞에있는 픽셀을 덮어 쓰지 않습니다. 그들은 버려 질 것이다.

것은 값이 다른 정밀도입니다. 16 비트 Z 버퍼는 32 비트 Z 버퍼의 절반을 차지하지만 동일한 범위를 나타낼 수는 없습니다.

메모리가 정확히 싸지는 않지만 (정확하게는 변화하지만 여전히 그렇다), 정밀도가 많이 필요하지 않은 경우 16 비트를 사용하고 메모리를 절약하십시오. (이것은 과거에 메모리가 실제로 부족했던 곳에서 더 중요했습니다.)

저장할 수없는 버퍼에 너무 많은 값을 저장하면 16.5와 15.5가 모두 16이됩니다), 당신은 유물을 얻는다.