Главная страница
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.056 c
1-1098765625
hyper_omsk
2004-10-26 08:40
2004.11.07
несколько файлов в один


3-1097063564
Aser
2004-10-06 15:52
2004.11.07
Как присвоить переменной значение полученного Query?


9-1085393686
DanilinSA
2004-05-24 14:14
2004.11.07
Пара вопросов по DelphiX


14-1097245476
Поручик
2004-10-08 18:24
2004.11.07
Игры ZX Spectrum


14-1098108491
top100
2004-10-18 18:08
2004.11.07
Организация работы с БД