Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Z-буфер

Поиск:
Цитата (gluk24)
Расскажите о алгоритме Z-буфера, Как он работает и какие виды его бывают?

Вот теория Z-буфера:
Метод z-буфера является одним из простейших и наиболее используемых методов удаления невидимых поверхностей в компьютерной графике.
Z-буфер это область в оперативной памяти компьютера или графического контроллера, в которой для каждого пикселя изображения, формируемого на экране дисплея в процессе компьютерной сцены, хранится информация о значениях глубины. Под "глубиной" понимается расстояние от каждой точки поверхности объектов сцены до некоторой произвольной, но фиксированной поверхности, расположенной за сценой.
Схема алгоритма удаления невидимых поверхностей весьма проста. В начале просчета очередного кадра, во всех ячейках видеобуфера установлен цвет фона, а все значения z-буфера равны 0. Z-буфер содержит ровно одну ячейку для каждого пикселя изображения. Далее, для всех пикселей и всех поверхностей производится определение глубины.
Если для определенной поверхности глубина, вычисленная для данного пикселя, окажется больше, чем записанная ранее, то значение z-буфера для данного пикселя будет обновлено. В него будет занесено большее из двух значений и пикселю будет присвоен цвет рассматриваемой поверхности. Если это расстояние меньше, чем ранее записанное, то в ячейке z-буфера останется старое значение глубины и цвет пикселя не изменится. Когда будут просмотрены все пиксели и поверхности сцены , в z-буфере будет храниться информация о значениях глубины всех пикселей изображения, а в видеобуфере - изображение с удаленными невидимыми поверхностями.
Разрешающая способность z-буфера определяет точность представления глубины. Она критична для высококачественного рендеринга сцен с большой глубиной. Чем выше разрешающая способность, тем выше дискретность z-координат и точнее выполняется рендеринг удаленных объектов. 24-разрядный z-буфер дает разрешающую способность 16 миллионов, 32-разрядный - 2 миллиарда, а 16-разрядный - только 64 тысячи. Если при рендеринге разрешающей способности не хватает, то может случиться, что две перекрывающиеся поверхности получат одну и ту же глубину, возникнет побочный эффект, называемый "triangle desposition". Для исключения ошибок в определении глубины, профессиональные платы имеют 32-разрядный z-буфер.
Z-буферизация при аппаратной реализации сильно увеличивает производительность. Тем не менее, z-буфер занимает много памяти: например даже в разрешении 640x480 24-разрядный z-буфер будет занимать около 900 KB. Однако расходы на дополнительную память оправдывают себя, так как все больше программ, в том числе и игры используют z-буфер (например, Quake и др.) и без него производительность существенно снижается (в отсутствие аппаратного z-буфера обсчет изображений осуществляется программно, через центральный процессор и оперативную память).
Надеюсь теперь будет понятней! Дерзай! ;-)
Автор: Shadex






Просмотров: 7671

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную