13.11.09

I hate this engine

Да, бывает и так..

Вальвешники сэкономили на спичках, а моддеры должны расхлёбывать.
Давеча пытался склеиить омни-лайт из шести env_projectedtexture. Не буду разглагольствовать о сырости и забагованности этой энтити, ибо всё это без особого труда лечится. Проблема в другом..

С незапамятных времён вальвовские фонарики светили через задницу. Буквально. Свет исходил не только откуда надо, но и с изнаночной стороны. Для применения в хл2 и иже с ним это не имело особого значения. Собственно не имеет и сейчас, если вы не пользуетесь тенями env_projectedtexture. Можно, не мудрствуя лукаво, склеить их не шесть штук, а три, и получить вполне себе динамический вполне себе омни-лайт.

Однако тени бывают просто позарез необходимы. Тут-то нас и поджидает сурпрыз, как раз в духе Valve: Шадоу-мапа рендерится только для одной - лицевой - стороны прожектора (что совершенно естественно), но используется она, как вы уже догадались, и с изнанки тоже! Итог - светошумовая каша из ломаных теней. Для меня это не было новостью, но я просто не думал что оно когда-нибудь станет серьёзной проблемой..

И вот теперь я вынужден править шейдерный код, отвечающий за проецирование фонариков, а потом пару дней ждать пока шейдеры откомпилируются на моём ведре, в надежде что это вообще поможет. А всё она - спичечная недостаточность: пара лишних инструкций для проверки отрицательного значения координаты вряд ли бы сделали погоду в тяжеленных шейдерах.
Хотя, шейдеры эти мне в любом случае рано или поздно пришлось бы модифицировать, так что не сказал бы, что я сильно зол. Но сам факт введения вальвами, так сказать, general purpose фонариков в попыхах - символизирует. <_<

1 комментарий:

  1. Вот хотел поинтересоваться: за сколько все шейдеры перекомпилировались, и удачно ли? Ибо у меня SDK_lightmappedgeneric_ps2x.fxc ни в какую не собирается (( до семи с хреном миллионов комбов доходит, и слетает.

    ОтветитьУдалить