Войти
Вело-изобретателиФорумdx_vb - порт DirectX9 для VB6

О проекте dx_vb. (7 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 13 4 5 6 7 8 Следующая »
#90
11:30, 10 мая 2012

Не пробовал, только готовые компилил.

#91
14:04, 10 мая 2012

Почитал немного... Походу при компиляции hlsl в бинарник пишется сопостовление имен констант и их номера. Затем через интерфейс d3dx идет работа с константами...
Планируеш ли подержку в порте hlsl шейдеров? Не обязательно d3dx, если возможно, какая-то ему замена... 

ЗЫ: можно ли как то получить ответ от компилятора в текстовом виде?

#92
10:47, 11 мая 2012

max255
> Планируеш ли подержку в порте hlsl шейдеров?
Раз уж сделал в компиляторе, нужно сделать и тут... насколько понимаю, вся загвоздка в передаче констант.
max255
> можно ли как то получить ответ от компилятора в текстовом виде?
Не понял, что именно получить? Строку с кодом ошибки?

#93
13:15, 11 мая 2012

Mikle
> Строку с кодом ошибки?
Да. К примеру:

Error R100 on line 10.

Mikle
> насколько понимаю, вся загвоздка в передаче констант
В D3DX есть интерфейс ID3DXConstantTable. Он и работает с константами.
Каким то образом при компиляции HLSL компиллер либо сам кладет инфу о константах в бинарник, либо ее можно достать из листинга... Затем директ грузит шейдер, парсит константы в таблицу

указатель|размер|тип
Дальше все понятно...

Прошло более 10 месяцев
#94
20:53, 12 мар. 2013

привет.

Как можно сделать detail textures для 2D рендеринга?
т.е. нужно накладывать текстуру и в местах где цвет серый - цвет не менялся, а там где где светлее и темнее, цвет менялся соответственно.

я почему-то думал, что это делает
SetRenderState D3DRS_DESTBLEND
с соответствующем значением, но такого значения не нашел.

#95
23:22, 12 мар. 2013

Нет, для этого альфа не нужна, это мультитекстурирование, смотри пример №14 в моей книге по DX8, ссылка есть в моём профиле. На DX9 это делается так же.

Прошло более 2 лет
#96
14:29, 15 мар. 2015

вот если бы сделали тож самое только с 11 или 12 директом для vb6

#97
14:45, 15 мар. 2015

VitebskStar
> вот если бы сделали тож самое только с 11 или 12 директом для vb6
the trick сейчас делает порт для dx9, где вообще не будет требоваться dll, как зарелизит - проект dx_vb можно будет считать закрытым.
А после порта для dx9 у the trick, вроде как, были планы и дальше, на dx11.

#98
0:30, 12 июля 2015

Привет. Нужно поверх сцены накладывать лайтмап-текстуру(аналогично opMul2X в sr2d или value+i-128). Не совсем понял как сделать это. Можешь сделать небольшой пример?

#99
9:05, 12 июля 2015

AWPStar
Тебе на FFP, или на шейдерах?
Если по аналогии с sr2d, то это простое наложение поверх отрисованной сцены спрайта, на FFP полной аналогии не получится, если включить:

  Dev.SetRenderState D3DRS_SRCBLEND, D3DBLEND_ZERO
  Dev.SetRenderState D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR
то выйдет что-то типа OpMul, то есть затенять можно, высветлять - нет, можно задать:
  Dev.SetRenderState D3DRS_SRCBLEND, D3DBLEND_ONE 
  Dev.SetRenderState D3DRS_DESTBLEND, D3DBLEND_SRCALPHA
Тогда будет ближе, но карту затенений задаём в альфаканале источника, а карту высветлений - в канале цвета.
Если это возможно, то лучше обойтись без альфаналожения вторым проходом - сделать это мультитекстурированием, так и скорость выше, и больше вариантов, в том числе и полная аналогия opMul2X будет. Всё зависит от задачи, опиши подробнее.
#100
20:31, 12 июля 2015

Mikle
Хочу перевести игру с sr2d на dx т.к.  возможно масштабирование текстур в реальном времени. Всё в 2D. Сначала рисую весь свет в лайтмапу. Лайтмапа должна накладывать поверх всей сцены, после прорисовки карты. Альфа-каналом действительно не хотелось бы накладывать. Не совсем представляю как мультитекстурирование должно работать. Это в каждую текстуру нужно прорисовать кусок лайтмапы?

#101
15:32, 13 июля 2015

Вот пример: https://yadi.sk/d/n0XUYOt0hqPAj
Тут одна большая лайтмап текстура на весь экран, спрайты можно выводить с учётом её (SpriteDrawSh), и без учёта (SpriteDraw).

#102
16:16, 13 июля 2015

Mikle
Спасибо, очень полезно! Разобрался - пора начать изучать шейдеры.

Помоему уже куча раз поднималась тема, но я уже пару лет к dx не притрагивался - четкость текстуры от размера/координат зависит или от фильтрации? т.к. она, вроде, того же размера, что и рисуется.

#103
16:22, 13 июля 2015

От фильтрации, у меня там включено, можно выключить.

#104
16:34, 13 июля 2015

Mikle
Фильтрация на четкость никак не повлияла. Точнее только ухудшила качество. А вот при инициализации, когда прибавил к tu0,tv0  + 1 / 512 все стало пиксель в пиксель оригинальному файлу. Почему-то на суб-пиксель смещается.

Страницы: 13 4 5 6 7 8 Следующая »
Вело-изобретателиФорумdx_vb - порт DirectX9 для VB6

Тема в архиве.