Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.041 c
1-1098765141
Sash
2004-10-26 08:32
2004.11.07
excel


4-1096739153
Евгений2
2004-10-02 21:45
2004.11.07
Как определить, что окно что-то выполняет?


14-1098084392
Реактор
2004-10-18 11:26
2004.11.07
Самопроизвольное выключение компьютера


14-1097955597
Nix
2004-10-16 23:39
2004.11.07
Как узнать величину перемещения курсора мыши?


1-1098806958
Bogdan
2004-10-26 20:09
2004.11.07
Rave компоненты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский