Интересная штука с TextureStage

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

Модератор: Mikle

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Интересная штука с TextureStage

Сообщение Vovik » 17.05.2006 (Ср) 20:20

Ставлю такие параметры:

Код: Выделить всё
With D3DDevice
   .SetTextureStageState 1, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_PASSTHRU
   .SetTextureStageState 1, D3DTSS_COLOROP, D3DTOP_MODULATE
   .SetTextureStageState 1, D3DTSS_COLORARG1, D3DTA_CURRENT
   .SetTextureStageState 1, D3DTSS_COLORARG2, D3DTA_TEXTURE
   
   .SetRenderState D3DRS_TEXTUREFACTOR, Factor
   
   .SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3
   .SetTextureStageState 0, D3DTSS_COLORARG1, D3DTA_TEXTURE
   .SetTextureStageState 0, D3DTSS_COLORARG2, D3DTA_TFACTOR
     
   .SetTexture 0, Dot3Texture
   .SetTexture 1, Texture
End With

И как только меняю стейджесты местами (тобишь 1 меняю на 0, а 0 - на 1), то ничего не работает... В чем же дело? :roll:

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Re: Интересная штука с TextureStage

Сообщение Vovik » 22.05.2006 (Пн) 12:44

Майкл, а что ты думаешь по этому поводу? :roll:

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

Сообщение Mikle » 22.05.2006 (Пн) 17:29

Vovik
А что у тебя окажется в Current, когда ты это:
.SetTextureStageState 1, D3DTSS_COLORARG1, D3DTA_CURRENT
перенаправишь в нулевую стадию? Уж никак не результат первой стадии.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 23.05.2006 (Вт) 20:04

Mikle писал(а):Vovik
А что у тебя окажется в Current, когда ты это:
.SetTextureStageState 1, D3DTSS_COLORARG1, D3DTA_CURRENT
перенаправишь в нулевую стадию? Уж никак не результат первой стадии.
Хм. А мона как-нть поправить это?

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

Сообщение Mikle » 24.05.2006 (Ср) 8:54

Код: Выделить всё
With D3DDevice
   .SetTextureStageState 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_PASSTHRU
   .SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1
   .SetTextureStageState 0, D3DTSS_COLORARG1, D3DTA_TEXTURE
   .SetTextureStageState 0, D3DTSS_RESULTARG, D3DTA_TEMP
   
   .SetRenderState D3DRS_TEXTUREFACTOR, Factor
   
   .SetTextureStageState 1, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3
   .SetTextureStageState 1, D3DTSS_COLORARG1, D3DTA_TEXTURE
   .SetTextureStageState 1, D3DTSS_COLORARG2, D3DTA_TFACTOR

   .SetTextureStageState 2, D3DTSS_COLOROP, D3DTOP_MODULATE
   .SetTextureStageState 2, D3DTSS_COLORARG1, D3DTA_TEMP
   .SetTextureStageState 2, D3DTSS_COLORARG1, D3DTA_CURRENT
     
   .SetTexture 1, Dot3Texture
   .SetTexture 0, Texture
End With

Например так. Но зачем менять, если и так работает?

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 24.05.2006 (Ср) 22:41

Mikle писал(а):
Код: Выделить всё
With D3DDevice
   .SetTextureStageState 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_PASSTHRU
   .SetTextureStageState 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1
   .SetTextureStageState 0, D3DTSS_COLORARG1, D3DTA_TEXTURE
   .SetTextureStageState 0, D3DTSS_RESULTARG, D3DTA_TEMP
   
   .SetRenderState D3DRS_TEXTUREFACTOR, Factor
   
   .SetTextureStageState 1, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3
   .SetTextureStageState 1, D3DTSS_COLORARG1, D3DTA_TEXTURE
   .SetTextureStageState 1, D3DTSS_COLORARG2, D3DTA_TFACTOR

   .SetTextureStageState 2, D3DTSS_COLOROP, D3DTOP_MODULATE
   .SetTextureStageState 2, D3DTSS_COLORARG1, D3DTA_TEMP
   .SetTextureStageState 2, D3DTSS_COLORARG1, D3DTA_CURRENT
     
   .SetTexture 1, Dot3Texture
   .SetTexture 0, Texture
End With

Например так. Но зачем менять, если и так работает?
Хм, чет не работает... просто серый экран...

Майкл, ты не мог бы объяснить, что есть D3DTSS_COLOROP,D3DTSS_COLORARG1,D3DTSS_COLORARG2(чтоб полностью разобраться раз и навсегда).. в сдк ничего не понятно... :oops:

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

Сообщение Mikle » 25.05.2006 (Чт) 9:12

Vovik
Хм, чет не работает... просто серый экран...

Это, случайно, не GF2MX или TNT?
не мог бы объяснить, что есть D3DTSS_COLOROP,D3DTSS_COLORARG1,D3DTSS_COLORARG2

Это самые основы Direct3D. Имеется 8 стадий текстурирования, от 0 до 7, но работают из них первые несколько, в зависимости от видюшки.
COLORARG1, COLORARG2 и COLORARG0 - аргументы, с которыми работает стадия, их бывает 1, 2 или 3.
COLOROP - оператор, то есть действие, которое выполняется над этими аргументами.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 25.05.2006 (Чт) 22:00

Нет. У меня Radeon 9600 XT...
спасибо.. в общем понятно...


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

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

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

    TopList