Эффект двойного наложения

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

Модератор: Mikle

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Эффект двойного наложения

Сообщение StimorolD3DX » 09.07.2007 (Пн) 17:39

Сделал тени с помощью D3DXMatrixShadow всё отлично, но если тени пересекаються то их альфа суммируется. А мне нужно чтоб альфа была всегда одинаковая. Кто знает, как избавится от сабжа, может у кого была такая проблема?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.07.2007 (Пн) 20:33

Поиском не пользуемся принципиально?
http://bbs.vbstreets.ru/viewtopic.php?t=25043
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 10.07.2007 (Вт) 8:53

Gserg
Там нет решения на данный вопрос

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 10.07.2007 (Вт) 10:42

Ну ладно, поставлю вопрос по другому:
Есть полупрозрачный квадратик без текстуры, под ним большой непрозрачный квадратик с текстурой. Есть еще один квадратик такой же как и первый но он немного пересекает первый квадратик и получается что в месте их пересеченя альфа удваивается, как избавится от сабжа?
ЗЫ. Все квадратики на одной плоскости

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.07.2007 (Вт) 13:13

"Сначала складывать все тени в шедоумап, а потом ее накладывать" -- это не решение?
Или "решение" -- это полностью готовый код, который можно скопировать без изменений?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 10.07.2007 (Вт) 13:15

А как
складывать все тени в шедоумап, а потом ее накладывать
? :)

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

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

StimorolD3DX
Зачем тебе вообще альфа при суммировании теней? Насколько понял, тебе нужны проективные тени. Для этого RenderTarget текстуру очищаешь белым и рисуешь туда всю геометрию серым (можно черным, если без амбиента), при наложении серого на такое же серое ничего лишнего не вылезет. Потом используешь эту текстуру, как проективную.

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 12.07.2007 (Чт) 10:25

Mikle
рисуешь туда всю геометрию

всю это ту что была получена через d3dxmatrixshadow?

при наложении серого на такое же серое ничего лишнего не вылезет

А полупрозрачность и альфаканл будут?

Да и как это сделать, увы не знаю.

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

Сообщение Mikle » 12.07.2007 (Чт) 13:22

StimorolD3DX
Каждый объект со своей обычной матрицей, камера в позиции источника света (для DirLite в направлении на источник с ортогональной проекцией). Включается серый материал, выключаются все текстуры.

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 12.07.2007 (Чт) 13:57

Не, это того нестоит... Буду разбиратся с volume shadows

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 12.07.2007 (Чт) 19:32

Да я всетаки его сделал! Если кому нибудь понадобится вот настройки стенсила:

Код: Выделить всё
        D3DDevice.SetRenderState D3DRS_STENCILFUNC, D3DCMP_EQUAL
        D3DDevice.SetRenderState D3DRS_STENCILREF, 0
        D3DDevice.SetRenderState D3DRS_STENCILMASK, &HFFFFFFFF
       
        D3DDevice.SetRenderState D3DRS_STENCILFAIL, D3DSTENCILOP_KEEP
        D3DDevice.SetRenderState D3DRS_STENCILZFAIL, D3DSTENCILOP_KEEP
        D3DDevice.SetRenderState D3DRS_STENCILPASS, D3DSTENCILOP_INCR


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

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

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

    TopList