d3ddevice.SetTexture 2, Tex0

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

d3ddevice.SetTexture 2, Tex0

Сообщение GLEB » 03.11.2005 (Чт) 16:32

Почему d3ddevice.SetTexture 2, Tex0 не даёт никаких результатов.
Никаках ошибок, просто игнорируется и всё! Видеокарта что ли не поддерживает ????

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 03.11.2005 (Чт) 17:07

скорее всего поддерживает. Только устройство не может понять, что ты с этой текстурой собираешься делать. Какой формат у твоих вертексов? Там есть координаты третьей текстуры?
ХЎ

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 03.11.2005 (Чт) 20:39

Normal, XYZ,TEX1.
Но с двумя текстурами все нормально работает. Смотрел другой пример (там огонь и решетка (где-то здесь на этом форуме лежит)), тоже самое - решетки не видно.

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 03.11.2005 (Чт) 20:53

D3DFVF_TEX2 ничего не меняет третьей текстуры нет.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 03.11.2005 (Чт) 21:07

надо еще texturestate'ы какие ставить. Это Майкл лучше меня расскажет...
ХЎ

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 04.11.2005 (Пт) 17:16

Вторая текстура без указания текстурных координат работать могла, если поменян D3DTSS_TEXCOORDINDEX, иначе координаты нужны.

GLEB
Чтобы узнать, поддерживается, или нет, третья текстура - проверь это:
Caps.MaxSimultaneousTextures
Caps.MaxTextureBlendStages
Исходя из этого:
Смотрел другой пример (там огонь и решетка (где-то здесь на этом форуме лежит)), тоже самое - решетки не видно.

видимо MaxSimultaneousTextures=2 :cry:

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 04.11.2005 (Пт) 20:33

MaxSimultaneousTextures=2.
И как теперь быть ????
Рисовать дважды ? Но ведь это затормозит все вдвое !
Кстати, как это делается в древних играх, например Quake 2, Half-Life 1
В халфе местами 99 кадров даже с фонарем. А у меня в проге при двойной прорисовке 50 и все...
Посоветуйте что-нибудь ???

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 04.11.2005 (Пт) 20:39

в этих итрах используется всего 2 текстуры - это сама текстура поверхности и лайтмэп. В отдельных случаях (редко) другая комбинация, но везде не больше 2х текстур.
ХЎ

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 04.11.2005 (Пт) 20:59

А пятно от фонаря в HL ????

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 04.11.2005 (Пт) 22:14

если статика - то lightmap, если динамика - spot тип освещения.
ХЎ

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 05.11.2005 (Сб) 11:44

Фонарь в HL1 - spot light ??
А зачем тогда в папке Sprites куча спрайтов в виде белых пятен на черном фоне?
Да и как там может быть spot, когда там большинство плоскостей это два треугольника :?: :?: :?: :?:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 05.11.2005 (Сб) 14:52

GLEB

И как теперь быть ????
Рисовать дважды ? Но ведь это затормозит все вдвое !

Менять видюшку :roll:

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 05.11.2005 (Сб) 15:53

Менять видюшку

Mikle
Согласен с этим, её давно пора выкинуть.
Просто это будет самый легкий способ.
Но все же, если d3drm говорит
но везде не больше 2х текстур.
, как все-таки этот фонарь в халфе сделан, по любому это 3 текстуры :?:

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 05.11.2005 (Сб) 18:03

Да нет же. Те спрайты, что ты имеешь ввиду могут использоваться для чего угодно - начиная с эффектов дыма, заканчивая искрами, пузырями... Да что угодно!

Какие плоскости ты имеешь ввиду? Вообще плоскость - это ОДИН треугольник, если ты помнишь формулу :wink:
ХЎ

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 05.11.2005 (Сб) 19:20

d3drm, при установке опции Allow Flashlight (использовать фонарь) в CS, грузятся дополнительные спрайты для фонаря, если Allow Flashlight откл. они не грузятся и фонарь не работает.
Какие плоскости ты имеешь ввиду?

Я имею ввиду что spot для высокополигональных объектов.
А в CS фонарь освещает стену состоящую из 2 треугольников. (то что она действительно из двух, можно заметить в режиме Direct3D).

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 05.11.2005 (Сб) 21:33

Если можно, я бы попросил бы выражаться немного конкретнее. Что значит в режиме Direct3D? В D3D режимов всяких разных много: режимы экрана, рендеринга и вообще.

Вообще я допускаю, что в HL может использоваться третья текстура для фонаря (в HL я давно не играл), хотя на тот момент такие штуки были вроде как в новинку. В таком случае для тебя нет другого выхода, как рисовать дважды или менять видеокарту, как посоветовал Mikle.

Есть еще такая идея, я ее даже почти не думал, поэтому критики может быть много. Если ты используешь одну текстуру для карты освещенности, но програмно можно прям на нее накладывать текстуру пятна от фонаря... Кому интересно, пусть думают :D
ХЎ

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 06.11.2005 (Вс) 10:06

GLEB
Если при включении второго прохода для фонаря у тебя вдвое падает быстродействие - значит ты, видимо, заново рисуешь всю сцену. А в HL наверняка есть оптимизация - они сначала вычисляют полигоны, куда светит фонарь, и рисуют только их.

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 06.11.2005 (Вс) 12:03

d3drm писал(а):Если можно, я бы попросил бы выражаться немного конкретнее. Что значит в режиме Direct3D?

Я имел ввиду что объекты карты в HL низкополигональные.
В режиме рендеринга Direct3D иногда при движении вдоль стены можно заметить что текстура немного как бы подпрыгивает и заметна диагональная линия разбиваюшая стену на 2 треугольника.

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 06.11.2005 (Вс) 12:58

Согласен с Майклом, наверно так и есть. На те времена рисовать 2 раза карту было бы неприлично жестоко. На сколько я разбирал вормат ихней bsp, могу сказать, что система карт у них более тормознутая, чем даже QIII bsp. так что хотя бы на этом месте оптимизация должна была быть. Gleb, может тебе стоит задуматься об использовании шейдеров? Тут уж точно третью текстуру можно отбросить.
ХЎ

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 06.11.2005 (Вс) 17:26

d3drm писал(а):Gleb, может тебе стоит задуматься об использовании шейдеров?

На Riva TNT 2 :?: :?: :D :D

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 06.11.2005 (Вс) 20:43

GLEB, о, брателло, у меня такая же была полгода назад =) не завидую =)
ХЎ

GLEB
Бывалый
Бывалый
 
Сообщения: 246
Зарегистрирован: 24.05.2005 (Вт) 12:16

Сообщение GLEB » 07.11.2005 (Пн) 7:04

Ну ладно, всем спасибо за консультацию!


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

    TopList