![]() |
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]() ![]() ![]() |
|
Quotter |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 15.9.2010 Репутация: нет Всего: нет |
Как реализовать DirectX-приложение, выполняющее построение полигонального ландшафта по карте высот? Карта высот генерируется случайным образом.
P.S. Если есть тут тема прошу дать ссылку. Это сообщение отредактировал(а) Quotter - 16.2.2011, 09:11 |
|||
|
||||
BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 1 Всего: 10 |
В самом простом случае, создаешь вершинный буфер по размеру карты высот, инициалицируешь его своими x и z координатами, а y-координату бери из соответствующего пиксела растра карты высот, домножая на определенный коэффициент. Выглядеть это должно примерно следующим образом (условный код)
nx -- коэффициенты трансформации, pHeightMapBits -- пиксели карты высот. Далее, по-хорошему, надо установить каждому вертексу диффузный цвет, создать индексный буфер, определить текстурные координаты и при отрисовке установить текстуру поверхности. При этом не забыть про свет и установку матриц -------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
![]() ![]() ![]() |
Вы можете найти полезным что... | |
|
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |