Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: CL | DM;

Вниз

Heights   Найти похожие ветки 

 
Nobody_1988   (2006-11-07 21:47) [0]

Делаю карту как в Warcraft3( по виду ). Из прямоугольников.

for x := 0 to mWidth do
begin
 for y := 0 to mHeight do
  begin

glBindTexture(2D, t_name);
glBegin(GL_QUADS);

glVertex2f(); glVertex3f(x*32, y*32, z);
glVertex2f(); glVertex3f(x*32+32, y*32, z);
glVertex2f(); glVertex3f(x*32+32, y*32+32, z);
glVertex2f(); glVertex3f(x*32, y*32+32, z);

glEnd();

  end;
end;

Это будет вид сверху. Проблема в том, что я не знаю как лучше представить высоту(+- z).
Не хочется на каждый прямоугольник карты хранить 4 координаты Z(высоты) да и излишне это.
Как-нибудь бы на каждую уникальную точку карты хранить одну координату. Проблема в том как эти вершины потом доставать из массива. Уверен есть какой-нибудь простой способ...


 
XProger ©   (2006-11-07 22:16) [1]

Nobody_1988, есть массив вершин и массив индексов вершин по которым строятся полигоны...
Почему излишне? Какого размера карта? Сколько мб памяти уйдёт на третью координату для каждой вершины?


 
Nobody_1988   (2006-11-07 23:07) [2]


> glVertex2f(); glVertex3f(x*32, y*32, z);
> glVertex2f(); glVertex3f(x*32+32, y*32, z);
> glVertex2f(); glVertex3f(x*32+32, y*32+32, z);
> glVertex2f(); glVertex3f(x*32, y*32+32, z);


Блин ошибся кое-где :)
glTexCoord2f(); glVertex3f(x*32, y*32, z);
Ну это не важно.


> Nobody_1988, есть массив вершин и массив индексов вершин
> по которым строятся полигоны...
> Почему излишне? Какого размера карта? Сколько мб памяти
> уйдёт на третью координату для каждой вершины?


Да карта та небольшая и никакие МБ не уйдут.
Просто неудобно потом исправлять в редакторе будет.
Допустим захочу поднять один прямоугольник(А) в центре карты: придется исправлять высоту каждого прямоугольника вокруг этого(А).
Хочу чтоб они(прямоугольники) взаимосвязаны были...

Может я мутно проблему описал? :)


 
XProger ©   (2006-11-08 01:33) [3]

Nobody_1988, поднимаешь вершину, а полигоны строятся по индексам вершин. Так что все полигоны построенные на этой вершине "поднимутся"


 
@!!!ex   (2006-11-08 16:48) [4]

Ну так использую при постройке карты значение соседней высоты.
тоесть имеем карту:
1 2 3
4 5 6
7 8 9

Для отрисовки первого квадрата используем:
|1 2| 3
|4 5| 6
7  8  9

Для отрисовки второго:
1 |2 3|
4 |5 6|
7  8 9

И так далее.
Тут можно исользовать индексы.

Или если без массивов QUAD_STRIP



Страницы: 1 вся ветка

Текущий архив: 2007.11.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
15-1191521154
kalexi
2007-10-04 22:05
2007.11.11
Перехват функций...


2-1192591433
balepa
2007-10-17 07:23
2007.11.11
Access Violation or Invalide Pointer operation


2-1192678112
Lebedev
2007-10-18 07:28
2007.11.11
Как динамически в RadioGroup создать Items?


2-1192877256
P'ero
2007-10-20 14:47
2007.11.11
Как произвести поиск по всему компьютеру (конкретный вайл)?


2-1192678623
nick2000
2007-10-18 07:37
2007.11.11
OUT OF MEMORY