Pull to refresh
77
4
Владислав @rebuilder

Разработчик

Send message
Деревья тоже полупрозрачные объекты, но более густые чем предметы. Непрозрачными являются только стены как на последнем изображении.
По-моему, если два объекта с некоторой прозрачностью перекрывают область видимости, то тени и должны становиться темнее. Собственно, это не совсем честная тень, а скорее способность персонажа замечать объект. Изначально план был в том, что при определённом уровне затенённости просто прятать врага или предмет от взора. А готовые тени сразу использовать в игровой механике, что куда сложнее сделать если рендерить на GPU.

Про подход к прорисовке дуги, тут вы абсолютно правы, тоже приходил к такому выводу. В Дельфях/ Лазаре конечно же есть возможность использовать видеокарту. Приходилось ваять на OpenGL, но тёплый ламповый пиксель на CPU мне куда милее клонированных GPU’шных конвееров.
В ноксе прикольные были тени. А про то, что придумано до нас, не мешаешь ещё раз пройти путь предшественников.
Вы меня заинтересовали, попробую реализовать рейкастинг с прозрачностью для деревьев, и без прозрачности для стен.
Если я правильно понял, вы предлагаете предварительно рассчитать освещённость каждого объекта, а затем прорисовывать тень только для тех тайлов, что не затенены? Расчётов будет больше, но за счёт уменьшения прорисовки при большом количестве объектов может быть выигрыш. Как вариант можно попробовать.

Единственный момент, как считать затенённость: по центральному значению, среднему для границ тайла? Вижу один недостаток, возможна ситуация когда на один тайл падает две тёмных тени, и остаётся узкая область не затенённости, которая не отбросит тень.
Да простое альфа-смешивание, с чёрным. Можно использовать и другие цвета для придания эффекта, например фиолетовые нотки — туман, или жёлтый-оранжевый — солнечный день.
Думал о порте на видеокарту. Тогда, думается, проще заменить тайлы 3D объектами и сделать тень на плоскость, земли. Хотя эффект уже будет совершенно другим.
Ситуация как Вы обозначили решается элементарно, уменьшением радиуса тени на 0.5px, для деревьев это имеет смысл. Для непрозрачных стен, наоборот, радиус слегка увеличен, что бы не было просветов между блоками, исправим.
По поводу размытости теней: пробовал два варианта:
1) Размытие теневого слоя
2) Разделение тени на две, где вторая чуть меньшего радиуса
Оба эффекта не зацепили, а падение производительности было внушительным.
12 ...
9

Information

Rating
840-th
Location
Краснодарский край, Россия
Registered
Activity