Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по GLScene.doc
Скачиваний:
255
Добавлен:
16.12.2018
Размер:
7.18 Mб
Скачать

Глава 18. Растительность.

I. Деревья и кустарники

Деревья можно создавать через объект GLTree (Scene objects > Doodad objects > GLTree). Он предназначен для использования в стратегиях - дальность камеры обеспечит неплохой вид за минимум усилий. Несмотря на название, этот объект можно использовать и для создания кустарников. Рассмотрим его основные свойства.

Свойство

Описание

BranchAngle

искривление ствола

BranchAngleBias

cмещение веток, чем меньше значение, тем ближе друг к другу ветки

BranchFacets

определяет, насколько “дёшево” будет рисоваться ствол

BranchMaterialName

имя материала, которым будет обтянут ствол

BranchNoise

увеличивает разброс веток и листьев друг от друга и между собой

BranchRadius

радиус ствола

BranchSize

размер дерева

BranchTwist

чем больше параметр, тем крона плотнее

CenterBranchConstant

количество листвы

LeafBackMaterial

материал, который будет натягиваться на заднюю часть листика. (Все материалы создаются в GLMaterialLibrary)

LeafMaterialName

имя материала, который будет натягиваться на переднюю часть листика

LeafSize

размер каждого листика

LeafThreshold

количество листвы на дереве

Если смотреть на компонент “изнутри”, то стоит отметить использование вершинных массивов для оптимизации. И ещё одно, судя по комментариям в модуле GLTree.pas, деревья сделали для нас NVidia (http://developer.nvidia.com/object/Procedural_Tree.html), а разработчики сцены просто повторили то же на нашей любимой графической надстройке.

Вот такие деревья можно сделать.

А вот какой можно смастерить кустарник.

Однако реализация крупной растительности, поставляемая разработчиками GLScene является весьма плохой. Так невозможно получить тень; не получается использовать bumpmapping к стволу; у компонента отсутствует анимация как понятие вообще. Поэтому я рекомендую посмотреть вот это: http://www.glscene.ru/forum_viewtopic.php?15.37784.0#38300.

II. Трава

Очень часто в играх самых различных жанров встречается она - трава. Посмотреть пример, пусть и не самый новый и навороченный, можно здесь: http://www.glscene.ru/download.php?view.254

Глава 19. Работа со шрифтами и вывод надписей.

I. Вывод текста через компонент glWindowsBitmapFont

Кидаем на форму элемент GLWindowsBitmapFont, выбираем его свойство Ranges, появляется окошко, в котором нажимаем на кнопку «Добавить». Затем в свойствах StartASCII и StopASCII выбираем, с какого до какого номера будут отображаться символы, пусть будет от #0 до #255 (с #32 по #127 номера идут символы, цифры и английский алфавит; с #128 по #255 дополнительный алфавит). Что бы использовался именно русские буквы нужно у GLWindowsBitmapFont в свойстве Charset установить RUSSIAN_CHARSET.

В инспекторе объектов сцены выберите GLHUDText (Scene Objects->Add object->HUD objects-

>HUD text). Задайте какой-нибудь шрифт, например как в главе 12, укажите его в поле BitmapFont

объекта GLHUDText.

В поле text напишите нужный текст.

Чтобы надписи не перекрывались другими объектами, нужно делать их последним в иерархии объектов сцены.