- •Тема №1 будова комп’ютера і материнської (системної) плати
- •Загальна характеристика комп'ютерної техніки
- •Структура персонального комп’ютера
- •Принцип програмного управління
- •Основні характеристики комп’ютерів
- •Сучасні багаторівневі машини
- •1.2. Будова материнської плати
- •Класифікація материнських плат за форм-фактором
- •1.3 Призначення та принципи роботи блоків живлення
- •Параметри блоків живлення
- •Вдосконалена система управління живленням
- •Джерело резервного та безперебійного живлення
- •Стандарти та сертифікати блоків живлення
- •Контрольні запитання
- •Тема №2 базова система вводу/виводу bios Основи bios
- •Розділи bios
- •Системна та власна bios
- •Мікросхеми rom та Flash rom
- •Контрольні запитання
- •Тема №3 компютерні шини
- •Класифікація комп’ютерних шин
- •Основні характеристики шини
- •Системні шини
- •Шини введення-виведення
- •Контрольні запитання
- •Тема №4 принципи функціонування жорсткого диску Будова жорсткого диску
- •Принципи роботи накопичувачів на жорстких дисках
- •Доріжки і сектора
- •Форматування дисків
- •Характеристики жорстких дисків
- •Контрольні запитання
- •Тема 5 приводи сdrom і dvdrom Компакт-диски та пристрої для роботи з ними
- •Характеристика пристрою cdrom Drive
- •Cd і dvd диски
- •Контрольні запитання
- •Тема №6 комп’ютерні шини
- •Класифікація комп’ютерних шин
- •Основні характеристики шини
- •Системні шини
- •Шини введення-виведення
- •Контрольні запитання
- •Тема 7 жорсткий диск
- •Будова жорсткого диску
- •Принципи роботи накопичувачів на жорстких дисках
- •Доріжки і сектора
- •Форматування дисків
- •Характеристики жорстких дисків
- •Контрольні запитання
- •Тема 8 пристрої введення/виведення інформації пристрої введення інформації
- •Клавіатура
- •Види клавіатур за типом з’єднання
- •Форма клавіатури для комп’ютера
- •9.2. Види комп’ютерних мишей
- •Сканери
- •Настільні (планшетні) сканери
- •Оптична система планшетного сканера
- •Барабанні сканери
- •Основні характеристики сканерів
- •Контрольні запитання
- •Тема 13 особливості тривимірної графіки
- •Вершинные шейдеры
- •Пиксельные шейдеры
- •Графический процессор
- •Тема 14 переносні комп’ютери
- •Класифікація мобільних комп'ютерів
- •Архітектура мобільних комп'ютерів
- •Дисплеї
- •Процесори для мобільних пк
- •Жорсткі диски
- •Накопичувачі для ноутбуків
- •Клавіатури
- •Позиціонуючі пристрої
- •Батареї
- •Комп'ютерна периферія
- •Зовнішні дисплеї
- •Тема 15 Приводи cd і dvd Компакт-диски і пристрої для роботи з ними.
- •Фізичний пристрій cdrom Drive.
- •Пристрої для запису на cd
- •Підключення cd-rom, cd-r, cd-rw, dvd-rom.
- •Формати запису використовуються в cd-rom.
- •Дисковод гнучких дисків
- •Пристрій дискети
- •Тема 16 Вивчення сканерів, відео-, фотопристроїв Сканери
- •Список літератури
Вершинные шейдеры
Программируемый вершинный блок способен имитировать мимику персонажа, переливы меха, развевающиеся волосы, стелющуюся под ветром траву, и выполнять прочие геометрические преобразования, реализуя их на лету. Например, программист пишет шейдер, в котором указывает, что его следует использовать для вершин треугольников, составляющих листок дерева. Графически процессор исполняет эту программу, и в результате листочек на дереве поворачивается на определенный угол в каждом кадре. Другой вариант использования вершинного шейдера связан с обработкой текстур. Например, шейдер изменяет текстурные координаты вер шин полигонов, а в результате выражение лица персонажа изменяется от улыбки до плача за счет наложения других текстур. Программированию поддаются практически все параметры, связанные с обработкой вершин: помимо уже названных геометрических и текстурных координат можно задавать цвет вершины, параметры смешивания, прозрачность.
Пиксельные шейдеры
Вершинные шейдеры при необходимости можно перенаправить на исполнение центральным процессором. С геометрическими расчетами мощный процессор справится без проблем. Но при выполнении пиксельного шейдера даже сверхмощный CPU задумается надолго, поскольку здесь происходит интенсивный обмен с памятью и сложные расчеты с использованием вещественных чисел. В задачах расчета освещения это ключевой момент: динамического диапазона стандартного 8-битного цвета для передачи всего богатства оттенков может не хватить.
Поэтому обработкой пиксельных шейдеров практически всегда занимаются пиксельные конвейеры графического процессора. Использование пиксельных шейдеров позволило реализовать расчет освещенности объектов методом Фонга, обеспечивающим наивысшую на сегодняшний день реалистичность. Согласно методу Фонга, цвет участка поверхности рассчитывается раздельно в каждом из цветовых каналов и складывается из трех компонентов: фонового освещения (имитирующего естественный рассеянный свет), диффузного отражения (рассеянного света, отраженного от поверхности) и зеркального отражения (имитирующего направленное отражение). На практике фоновое освещение используют для того, чтобы подсветить излишне темные участки. Диффузное отражение соответствует отражению света от неровной поверхности. Подобная поверхность рассеивает падающий на нее свет практически равномерно по всем направлениям. Но, в отличие от фонового освещения, диффузное отражение учитывает направление на источник света. Главная изюминка метода Фонга кроется в расчете зеркального отражения, учитывающего не только направление на источник света, но и местоположение наблюдателя.
Технологии трехмерной графики
Уровень детализации LOD (Level of Detail)
Современные приложения трехмерной графики позволяют создавать для игровых программ реалистичные объекты с высокой степенью детализации. Однако с практической точки зрения нерационально все объекты трехмерной сцены отображать с максимальной детализацией, так как человеческое зрение решительно отказывается воспринимать мелкие детали удаленных объектов. Очевидно, что и в играх нет смысла воспроизводить каждый волосок на теле монстра, если человек все равно не способен его различить. К тому же непрерывная обработка нескольких сотен или тысяч полигонов, составляющих объект, независимо от его удаления приводит к загрузке компьютера бессмысленной работой.
Таким образом, на каждый момент времени необходимо просчитать для всех объектов в трехмерной сцене необходимую и достаточную cте пень детализации (LOD-уровень). Существуют два подхода к управлению детализацией:
- статический;
- динамический LOD.
В первом случае заранее создаются упрощенные варианты максимально детализированного объекта. Предположим, что монстра, насчитывающего 1200 полигонов, на больших дистанциях наблюдения будет достаточно использовать упрощенные модели из 600 и 300 полигонов. В ходе построения сцены просчитывается удаление модели монстра от плоскости проецирования и выбирается вариант, соответствующий дальности.
В технологии динамического, или непрерывного, LOD используют различные алгоритмы, позволяющие более-менее плавно регулировать число полигонов в объекте в зависимости от расстояния до картинной плоскости. Статическое управление иногда вызывает эффект «дерганья» изображения при смене детализации объекта. Если уровень LOD близок к граничному значению, может возникнуть циклическая смена моделей с разным уровнем детализации. К тому же приходится обсчитывать несколько разных моделей для одного объекта. Динамическое управление детализацией потребляет значительные вычислительные ресурсы, требует непрерывного пересчета не только координат вершин треугольников, но и параметров освещенности текстур. При частом переключении между уровнями наблюдается эффект «волнистости» поверхности — форма объекта непрерывно «плывет», что при моделировании объектов неживой природы выглядит особенно нереально. Часто недостаточный уровень детализации пытаются исправить за счет современных технологий наложения и обработки текстур: Bump Mapping, анизотропной фильтрации, композитных текстур и прочих.
MIP mapping (MIP-текстурирование)
Самым простым способом текстурирования является создание единственной текстуры среднего размера с приличной детализацией и наложение ее на полигоны объекта во всех случаях, когда требуется визуализация. Однако здесь возникают две проблемы. Во-первых, если текстура создана с максимально возможным разрешением и детализацией (например, 2048x2048 пикселов при глубине цветового охвата 32 бит), то расход вычислительных ресурсов и памяти при наложении текстур на все видимые объекты в трехмерной сцене будет просто фантастическим — никакой ускоритель не справится с таким потоком данных. Во-вторых, если уменьшить размер (и тем самым детализацию) текстур, то объекты по мере приближения к плоскости проекции будут выглядеть все более грубо. В некоторых играх нередки эффекты, когда при максимальном сближении с объектом его поверхность предстает как набор огромных пятен — это означает, что на картинную плоскость попало всего несколько текселов текстуры. То же самое касается и эффекта перспективы — одна и та же текстура, будучи наложена на близкий и удаленный участки объекта, вызывает искажение перспективы.
Чтобы обойти такие проблемы, была разработана технология, получившая название MIP mapping. Ее суть заключается в предварительном или динамическом создании набора текстур с различным разрешением и уровнем детализации на основе базовой текстуры максимального разрешения.
Для выбора конкретно уровня детализации сегодня используют в основном динамический расчет LOD Уровни LOD для текстур можно рассматривать как степени числа 4. Например проецирование текстуры вызывает наложение одного тексела на пиксел, следовательно, уровень LOD определяется как нулевой и выбирается текстура с наивысшей детализацией. Если на пиксел пришлось 4 тексела, уровень LOD составляет 1 поэтому выбирается следующий уровень MIP mapping, которому соответствует текстура с меньшей .детализацией.
Композитные текстуры
Текстуры высокого разрешения занимают огромное место в памяти. Например, текстура размером 1024x1024 пиксела при глубине цветности 16 бит достигает объема 2 Мбайт. Для решения этой проблемы была придумана технология так называемых композитных текстур, или текстур с детализацией. При таком подходе требуется создать всего две текстуры: базовую и детальную. Базовая текстура содержит основные элементы и как бы создает общий фон. Детальная текстура содержит лишь мелкие элементы, необходимые при рассмотрении объекта вблизи. Обе текстуры смешиваются, причем степень их взаимовлияния определяется исходя из расстояния до плоскости проецирования.
Трехмерные текстуры
Элемент трехмерной текстуры представляет собой виртуальный монолитный куб. Каждая точка внутри текстурного куба имеет присвоенный ей цвет. Конечно, на самом деле трехмерный объект в компьютерной графике состоит из конечного числа точек (текселов), и потому его удобно представлять как конечный набор слоев (плоских текстур), текселы которых образуют узловые точки трехмерной текстуры.
Полигону, на который накладывается трехмерная текстура, присваиваются такие локальные координаты вершин, чтобы он оказался сечением куба. При этом не обязательно, чтобы полигон целиком помещался в объем куба. Обычно точке полигона вне куба присваивается цвет ближайшей граничной точки трехмерной текстуры.
Билинейная фильтрация
Метод расчета цвета по среднему арифметическому четырех ближайших соседей точки называют билинейной фильтрацией. В этом случае считается, что проекция представляет собой круг, а цвет пиксела рассчитывается путем аппроксимации цветов четырех текселов, как бы образующих данный круг.
При сильном приближении объекта к плоскости проецирования случается, что в круг попадает меньше четырех текселей, тогда изображение выглядит чрезмерно размытым. Если же плоскость полигона повернута относительно плоскости проецирования, круг уже не соответствует реальной форме проекции (овалу, эллипсу или иной фигуре) и эффект перспективы хотя и присутствует (все-таки сказывается аппроксимация по четырем точкам), но все равно существенно искажен. К тому же для определения цвета одного пиксела требуется считывать цвета четырех текселов из памяти, где хранятся текстуры, что увеличивает нагрузку на шину памяти.
Трилинейная фильтрация
Метод представляет собой комбинацию технологий MIP mapping и билинейной фильтрации (билинейной по текстуре и линейной по текстурам). Как известно, в технологии MIP mapping применяют текстуры с разной степенью детализации (и разным разрешением) в зависимости от удаленности полигона от плоскости проецирования. При трилинейной фильтрации берутся две соседние текстуры, одна из которых содержит текселы, попадающие в проекцию, а другая является ближайшей к ней по удаленности, и к каждой применяют билинейную фильтрацию. В итоге аппроксимация цвета проводится уже по восьми текселам и результат выглядит ближе к реальности, так как текстуры заранее обсчитаны для определенных расстояний. Чтобы не было видно резких скачков от одного мип-уровня к другому, на переходах («не близко и не далеко») ускоритель считает линейную комбинацию цветов, вычисленных по ближним и по дальняя текстурам.
Анизотропная фильтрация
Самый передовой на сегодняшний день метод фильтрации — анизотропная (неоднородная по разным направлениям). Существуют различи; алгоритмы анизотропной фильтрации, суть которых — в возможно болея точном учете формы проекции при различном положении текстурированного полигона по отношению к проецируемой плоскости. То есть вокруг центра проекции строится виртуальный куб из наложенных друг на друга текселов текстур разного уровня детализации, которые теоретически пересекает проекция.
Внутри куба плоскость проекции может располагаться как угодно — идеале будут учтены все точки, попадающие в проекцию. В зависимости от размера грани куба может быть обсчитано от 8 до 32 текселов для определения цвета единственного пиксела. Результат действительно близок к фотореалистичному, но и расход ресурсов GPU и видеопамяти очень велик.
Environment Map Bump Mapping (EMBM)
EMBM — карта окружающей среды (иногда ее называют картой отражения) служит для отражения в объекте свойств окружающего пространства. Карты отражения либо создаются заранее, во время разработки игры (обычно используются сферические карты среды), либо в ходе построения трехмерной сцены (кубические карты среды).
Сглаживание
Дефекты изображения, возникающие при рендеринге трехмерной сцены, могут носить самый различный характер. Обычно пространственные искажения выражаются в ступенчатости ровных краев (так называемый «лестничный эффект»), потере мелких деталей изображения, появлении муара (регулярной структуры на изображении, не предусмотренной разработчиками), искажении текстур. Особым видом являются дефекты, связанные с непреднамеренной анимацией сцены, например мерцание объектов из-за постоянного переключения между ступенями LOD.
Технологии устранения дефектов получили название anti-aliasing. Пространственные дефекты сглаживаются либо локальными, либо глобальными методами. Локальные методы применяют к краям объектов, то есть текселы текстуры, являющиеся краевыми в полигоне, обрабатываются таким образом, чтобы исключить лестничный эффект. Широко распространенной является технология усреднения по площади. Для этого определяется весовое соотношение текселов, чьи проекции пришлись на данный пиксел. Затем их цвета смешиваются в соответствии с весовыми коэффициентами и присваиваются данному пикселу.
Сжатие текстур
Повышение разрешения текстур до 2048x2048 точек при 32-битном цветовом охвате вызвало существенное возрастание требований к объемам памяти, выделяемой для хранения текстурных карт. Ведь на основе базовой текстуры согласно многим технологиям генерируются другие уровни текстурныхкарт.
Одним из пионеров в области сжатия текстур выступила фирма 3Dfx, применив в видеокартах Voodoo технологии YAB Narrow Channel Texture и 8 bit Palletized Texture. Однако согласно данной технологии было необходимо использовать специально созданные под нее текстуры, что сразу отпугнуло других разработчиков. В итоге новшество просуществовало недолго, поддерживалось лишь в нескольких играх и тихо скончалось с прекращением выпуска указанных моделей видеокарт.
Первой по-настоящему общепризнанной технологий сжатия текстур стала S3TC (S3 Texture Compression). В зависимости от характера текстуры степень сжатия достигает 6:1. Упаковка и распаковка текстур производится «на лету» и выполняется как программными, так и аппаратными средствами. Это обстоятельство привлекло интерес фирмы Microsoft, и она лицензировала новую технологию у фирмы S3, включив механизм сжатия текстур в библиотеку DirectX (технология получила обозначение DXTC). Однако технология S3TC не является открытой, и потому другие фирмы, использующие ее, вынуждены платить лицензионные отчисления S3.
Понятно, что такое положение многих не устраивало, и вскоре появились технологии сжатия, альтернативные S3TC. В первую очередь это технология FXT1 от фирмы 3Dfx, объявленная открытой. Ее преимущества заключаются в лучшем коэффициенте сжатия, достигающем 8:1, и меньшей потере качества при компрессии текстур.
Несколько особняком стоит технология VTC (Volume Texture Compression) от фирмы nVidia. Она ориентирована исключительно на сжатие трехмерных текстур. Известно, что ЗВ-текстуры являются самыми требовательными к объему видеопамяти, однако взамен они обеспечивают великолепное качество изображения, близкое к фотореалистичному.
