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

Вниз

Рисование большого ландшафта   Найти похожие ветки 

 
Ricks ©   (2005-09-19 22:57) [0]

Каким образом лучше всего рисовать большой ландшафт, если учитывать что на каждый квадрат накланывается тайл текстуры (изображение 512x512). GL_TRIANGLE_STRIP уже на 32x32 ландшафте тормозит...


 
Signate ©   (2005-09-19 23:49) [1]

Попробуй гео-маппинг


 
Zer0 ©   (2005-09-19 23:50) [2]

код в студию.


 
Signate ©   (2005-09-20 00:00) [3]

http://www.gamedev.ru/articles/?id=30125&page=2


 
Ricks ©   (2005-09-20 00:41) [4]

Код:

var
 Mesh     : array [ 0..sqr(n) * 3 ] of TVector;
 TC       : array [ 0..sqr(n) * 3 ] of TBasicTextureVectors;
 NV       : Integer;
 a        : single;
 T        : Cardinal;

implementation

procedure BuildMesh;
var x, z, k : integer;
   d       : single;
begin
d:=n div 2;

k:=0;
 for z:=0 to pred(n) do begin

  if z mod 2 = 0 then begin
   x:=0;
   while x <= n do begin

    if (x mod 2 = 0)
     then TC[k]:=TexCoords( 7/8 + 1/200, 1/8 - 1/200 )
     else TC[k]:=TexCoords(   1 - 1/200, 1/8 - 1/200 );

    Mesh[k]:=Vector( x - d, 0,     z  - d);
    Inc(k);

    if (x mod 2 = 0)
     then TC[k]:=TexCoords( 7/8 + 1/200, 1/200 )
     else TC[k]:=TexCoords(   1 - 1/200, 1/200 );

    Mesh[k]:=Vector( x - d, 0, z + 1  - d);
    Inc(k);

    inc(x);
   end;
  end else begin
   x:=n;
   while x >= 0 do begin
    if (x mod 2 = 1)
     then TC[k]:=TexCoords( 7/8 + 1/200, 1/200 )
     else TC[k]:=TexCoords(   1 - 1/200, 1/200 );
    Mesh[k]:=Vector( x - d, 0, z + 1 - d );
    Inc(k);

    if (x mod 2 = 1)
     then TC[k]:=TexCoords( 7/8 + 1/200, 1/8 - 1/200 )
     else TC[k]:=TexCoords(   1 - 1/200, 1/8 - 1/200 );
    Mesh[k]:=Vector( x - d, 0,     z - d );
    Inc(k);
    dec(x);
   end;
  end;

 end;

NV:=pred(K);
end;

procedure TMainForm.Render;
var x : integer;
begin
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glLoadIdentity;

gluLookAt( (6) * cos(a), 10, (6) * sin(a), 0, 0, 0,  0, 1, 0);

glBindTexture(GL_TEXTURE_2D, T);
glBegin(GL_TRIANGLE_STRIP);
 for x:=0 to NV do begin
  glTexCoord2fv(@TC[x]);
  glVertex3fv(@Mesh[x]);
 end;
glEnd;
end;


 
NE_Parovoz ©   (2005-09-20 16:34) [5]

меш, можно побить на куски, и в VBO, потом отрисовка с проверкой попадания AABB в frustum


 
XProger ©   (2005-09-20 18:25) [6]

Ricks, в том же XTropper реализовано с ландшафтом 128х128...
NE_Parovoz, VBO для низкополигональных моделей < 10000 не рулит абсолютно!


 
A22 ©   (2005-09-20 18:40) [7]

Оффтоп: я скоро начну истерически смеяться при виде набора символов "XTropper"

Ricks, статься на геймдеве хорошая, нет в нет только Occlusion теста - тест на перекрытие одного объекта другим. Например, ближайшим холмом остальных 99% твоего ландшафта. На эту тему статься есть на dtf.ru - почитай. Сделать большой ландшафт быстро выводимым - реальность :)


 
NE_Parovoz ©   (2005-09-20 19:33) [8]

XProger, ну ниже скорость точно не станет


 
XProger ©   (2005-09-20 21:39) [9]

NE_Parovoz, ниже чем у glDrawElements как ни странно :)


 
NE_Parovoz ©   (2005-09-20 23:35) [10]

//offtop
счас потестю, вот для 32k треугов c текстурами(и шейдером).

все 32k одним стрипом:
glDrawArrays VBO ~9.5*10^6 tri/sec
glDrawArrays       ~7.5*10^6 tri/sec

это же, но без тектур(и без ш.)
glDrawArrays  VBO (!) ~1.15*10^9 tri/sec (упала скорость
glBufferSubDataARB() в ~10 раз (usage=GL_STREAM_DRAW_ARB))
glDrawArrays             ~13*10^6 tri/sec

а тепер лоу-поли(с текстурами и без ш.)

286 - GL_TRIENGLES
glDrawElements  VBO     ~12.5*10^6 tri/sec
glDrawElements             ~4.5*10^6 tri/sec

всё это на GF4 MX440 128mb vram agp8x(работает на 4x :)

XProger, как видиш у меня разница неплохая, и именно на индексированной (да ищщё и low-poly) геометрии


 
XProger ©   (2005-09-21 01:44) [11]

500 моделей по 300 поликов на 3-6 фпс дают меньше с использованием VBO
GF FX 5200 128 mb AGP 4x



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

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

Наверх




Память: 0.49 MB
Время: 0.028 c
2-1142590572
fedpavel
2006-03-17 13:16
2006.04.02
TListView


2-1142950916
RomanH
2006-03-21 17:21
2006.04.02
MDI Окна


6-1134733841
Антон1209
2005-12-16 14:50
2006.04.02
получить файл с Http


15-1142069804
Volf_555
2006-03-11 12:36
2006.04.02
Со вчерашнего дня Explorer.exe занимает 99% памяти - что за бред?


15-1141823371
xayam
2006-03-08 16:09
2006.04.02
Delphi + WebMoney