Главная страница
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.037 c
3-1096373594
NewGuest
2004-09-28 16:13
2004.11.07
проблема соединения с базой (dbase через ADO) на разных компах


1-1098081997
samumka
2004-10-18 10:46
2004.11.07
Проверка создания mdichild формы?


9-1088766735
Sanek_metaller
2004-07-02 15:12
2004.11.07
Дурак


8-1091795998
Ale}{(is)
2004-08-06 16:39
2004.11.07
Нужно получить по известному хэндлу иконки её глубину цвета


14-1098361317
Gorlum
2004-10-21 16:21
2004.11.07
Собственно зачем нужно было смотреть эти DLL