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

Вниз

Косяки с выводом фона.   Найти похожие ветки 

 
Kobik   (2004-07-15 18:49) [0]

Начал изучать d3d по Краснову и вдруг такая проблема:

Использую полноэкранный режим.
На экран выводятся несколько объектов - текстуры наложеные на пары треугольников. FPS = 60.
Но вместе с фоном фпс сильно падает. Фон представляет собой размноженные тесктуры 128*128.
Пробовал делать двумя способами
1) четыре вершины образуют прямоугольник 1024*768. Если на него натянуть одну текстуру, то фпс остается порядка 60, но если размножить текстуры без растяжения, то фпс=12-15.
2) Создаю набор из 48 квадратов 128*128 и на каждый натягиваю текстуру. фпс=20.

Что я не так делаю?


 
cyborg ©   (2004-07-15 18:56) [1]

Подозрительно как-то это всё. Как ты размножаешь текстуру, напр. х1=-5 у1=-5 х2=5 у2=5?


 
Kobik   (2004-07-15 19:22) [2]

Первый способ:

 Vertices.X := -1;
 Vertices.Y := -1;
 Vertices.Z := 0;
 Vertices.U := 0;
 Vertices.V := 0;
 Inc(Vertices);
 Vertices.X := -1;
 Vertices.Y := 1;
 Vertices.Z := 0;
 Vertices.U := 6;
 Vertices.V := 0;
 Inc(Vertices);
 Vertices.X := 1;
 Vertices.Y := -1;
 Vertices.Z := 0;
 Vertices.U := 0;
 Vertices.V := 8;
 Inc(Vertices);
 Vertices.X := 1;
 Vertices.Y := 1;
 Vertices.Z := 0;
 Vertices.U := 6;
 Vertices.V := 8;
FD3DVB.Unlock;
 with FD3DDevice do
  begin
  SetTexture(0, back);
  SetTextureStageState(0, D3DTSS_COLOROP, D3DTA_TEXTURE);
  end;

 FD3DDevice.DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);


Второй способ:

with FD3DDevice do
 begin
 SetTexture(0, back);
 SetTextureStageState(0, D3DTSS_COLOROP, D3DTA_TEXTURE);
 end;
for i:=0 to 7 do for ii:=0 to 5 do
begin
 hRet := FD3DVB.Lock(0, 4 * SizeOf(TCustomVertex), PByte(Vertices), 0);
 if Failed(hRet) then begin Result := hRet;Exit;end;
 Vertices.X := -1+i*0.25;
 Vertices.Y := -1+ii/3;
 Vertices.Z := 0;
 Vertices.U := 0;
 Vertices.V := 0;
 Inc(Vertices);
 Vertices.X := -1+i*0.25;
 Vertices.Y := -1+(ii+1)/3;
 Vertices.Z := 0;
 Vertices.U := 1;
 Vertices.V := 0;
 Inc(Vertices);
 Vertices.X := -1+(i+1)*0.25;
 Vertices.Y := -1+ii/3;
 Vertices.Z := 0;
 Vertices.U := 0;
 Vertices.V := 1;
 Inc(Vertices);
 Vertices.X := -1+(i+1)*0.25;
 Vertices.Y := -1+(ii+1)/3;
 Vertices.Z := 0;
 Vertices.U := 1;
 Vertices.V := 1;
FD3DVB.Unlock;
FD3DDevice.DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
4-1096702632
Comp
2004-10-02 11:37
2004.11.07
TOOLBAR


3-1096963548
neat
2004-10-05 12:05
2004.11.07
DBGrid: постраничный вывод


1-1098695174
DelphiLexx
2004-10-25 13:06
2004.11.07
WndProc и ловушки


14-1098273718
syte_ser78
2004-10-20 16:01
2004.11.07
Кто чем захватывает видео?


1-1098291292
Madze
2004-10-20 20:54
2004.11.07
Как изменит свойства TWebBrowser