Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод трехмерного изображения 
:(
    Опции темы
Quotter
Дата 16.2.2011, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.9.2010

Репутация: нет
Всего: нет



Как реализовать DirectX-приложение, выполняющее построение полигонального ландшафта по карте высот? Карта высот генерируется случайным образом.

P.S.
Если есть тут тема прошу дать ссылку.

Это сообщение отредактировал(а) Quotter - 16.2.2011, 09:11
PM MAIL   Вверх
BorisVorontsov
Дата 17.2.2011, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



В самом простом случае, создаешь вершинный буфер по размеру карты высот, инициалицируешь его своими x и z координатами, а y-координату бери из соответствующего пиксела растра карты высот, домножая на определенный коэффициент. Выглядеть это должно примерно следующим образом (условный код)
Код

for (i = 0; i < dwHeightMapWidth; i++) {
    for (j = 0; j < dwHeightMapHeight; j++) {
        pVertices[i][j].x = i * n1;
        pVertices[i][j].z = j * n1;
        pVertices[i][j].y = pHeightMapBits[i][j] * n2;
    }
}

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]
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.