веселки. Другий варіант дає нам більше градацій висоти, ніж передбачувані 256 градацій у разі монохромного уявлення.
За допомогою цього способу можна представити досить великі простори. Але у нього є один істотний недолік - занадто багато описів для точок, а також, в деяких випадках, спостерігається надмірність даних (наприклад, коли у вас задається проста площину, то, в цьому випадку, для побудови простої площині буде використовуватися безліч точок, хоча можна б було обійтися трьома). Хоча і ця сама надмірність може піти нам на користь, наприклад, при вертексний освітленні.
У цього методу існує і кілька плюсів:
а . наочність, в будь-якій програмі перегляду графічних файлів можна відразу побачити всю інформацію;
б . простота зміни цих самих даних, тому що існує безліч програм для роботи з растровою графікою;
в . в таких картах можна зберігати не тільки дані про висоту. Наприклад, припустити, що для зберігання висоти використовується 16 біт, тобто два колірні компоненти, це виходить 256x256=65536 градацій висоти. Решта 8 біт можуть використовуватися для зберігання інформації про які-небудь особливості ландшафту, наприклад, розташування будинків, будівель, мостів, рослинності і так далі.
г . легкість знаходження координат (і висоти) на карті.
е . так як вершинні точки розташовані регулярно і досить близько, можна більш правильно і досить акуратно виробляти динамічне освітлення (найчастіше, освітленість вершини безпосередньо залежить від відстані від цієї вершини до джерела освітлення). Це і є та сама користь від надмірності даних.
.1.2 іррегулярних сітка
Ще один спосіб представлення даних для ландшафтів - іррегулярна сітка вершин і зв'язків їх з'єднують. Найчастіше такі рішення застосовуються в спеціалізованих пакетах для ігор або спеціальних пакетах для роботи з тривимірною графікою (3dMax, Maya). І зберігаються у вигляді тривимірних моделей. Це дає основний виграш в порівнянні з картами висот: використовується значно менше інформації для побудови ландшафту. Необхідно зберігати тільки значення висот кожної вершини і зв'язку ці вершини з'єднують. Це дає виграш у швидкості при передачі величезних масивів інформації по AGP, в процесі візуалізації ландшафту.
Але крім плюсів у цього способу є і безліч недоліків:
А . алгоритми побудови ландшафтів в основному призначені для регулярних карт висот. Оптимізація таких алгоритмів під цей спосіб зажадає значних зусиль;
Б . складності при динамічному освітленні - вершини розташовані досить далеко один від одного і нерівномірно;
В. зберігання, перегляд, модифікація такого ландшафту також представляє складності. При використанні карт висот використовуються досить прості і стандартні засобами піксельної графіки. До приклади, Paint. Тут же будуть потрібні більш спеціалізовані пакети.
Малюнок 3.2 - іррегулярних сітка
2.1.3 Посегментна карта висот
У даному способі також використовуються карти висот. Тільки замість висот в ній зберігаються індекси ландшафтних сегментів. Вони можуть бути і регулярними, і іррегулярними (причому можна використовувати і ті й інші одночасно). Це дає нам наступні переваги: ??
а ) Можливість подання найбільших відкритих просторів;
б ) Крім самих ландшафтів в таких блоках можна зберігати і інформацію про будинках, будівлях, рослинах, специфічних ландшафтних рішеннях (наприклад, печери або скелі, що нависають один над одним);
в) Можливість створення декількох варіантів одного і того ж сегмента, але при різному ступені деталізації. Залежно від швидкості або завантаженості комп'ютера можна вибирати більш-менш деталізовані варіанти (так звані LOD ландшафти - LOD - Level Of Detail).
Мінусів у такого способу теж вистачає:
а) проблема стиковки різних сегментів;
б) неочевидність даних. Поглянувши на картинку, що не можливо моментально уявити, як це повинно буде виглядати.
При реалізації даного продукту більше підходить перший варіант, це використання карти висот, тому буде витрачено менше часу на реалізацію створення і зміни ландшафту, і зручність в зберіганні даних.
3. Вибір засобів реалізації
.1 OpenGL, DirectX і GDI
У першу чергу потрібно вибрати апаратно-прискорює бібліотеку (API) для створення комп'ютерної графіки.
На сьогоднішній день основних їх три - це OpenGL [7] , DirectX [9] , GDI [8] <...