Главная страница
    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.46 MB
Время: 0.058 c
8-1091714055
VaKU
2004-08-05 17:54
2004.11.07
Перемотка в DSPack


1-1098352603
Ramon
2004-10-21 13:56
2004.11.07
Просканить папку


3-1097385880
softmaster
2004-10-10 09:24
2004.11.07
Выбор записей в DBGRID


14-1098017646
Comp
2004-10-17 16:54
2004.11.07
Оцените труд


1-1098207373
Constantin
2004-10-19 21:36
2004.11.07
FileSize





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский