Почему волосы пикселятся? В любой игре у персонажей в волосы становятся такими как на скрине. Может на скрине не так бросается в глаза, но в игре это очень даже заметно. Разрешение в Киберпанке 1920x1080, все настройки на макс, отключены зернистость и хроматическая абберация. В некоторых других играх данную проблему я могу решить выставлением разре…
Это такой оптимизированный способ отрисовки полу-прозрачности.
По чесноку прозрачность рисуется как полупрозрачность - накладывается полигон с текстурой волос на фон, смешивается, например 50% на 50%, ну как в фотошопе или еще где-нибудь (т.н. блендинг). Проблема в том, что в современных видеокартах эта штука довольно сильно жрет производительность - как GPU, так и CPU (потому что прозрачные полгиноы надо сортировать, а на голове это делать еще к тому же довольно геморно, плюс умножаем на количество персонажей в кадре..)
По быстрому полупрозрачность можно организовать без применения блендинга, по типу шахматного рендеринга. В таком подходе пиксели текстуры, которая должна быть полу-прозрачной, рисуются просто реже, в виде паттерна - чем больше полупрозрачность, тем больше пикселей не рисуется. Если смотреть отдаленно - в целом создается иллюзия полупрозрачности, хотя ни одного полупрозрачного пиксела там нет - либо фон, либо текстура волос.
Такой же эффект можно наблюдать во многих других играх, если близко подводить камеру к объекту, и он как бы "растворяется" с использованием похожей техники (например, крыши зданий в XCOM, или листва/растительность в большинстве игр)
Ну а т.к. отсечение происходит в пиксельном шейдере, то никаким простым алгоритмом сглаживания полечить это невозможно.
В любой игре бюджет на рендер полупрозрачной геометрии очень тщательно оптимизируется, т.к. нужна она много где, а жрет ой мама как (к слову, в КП2077 очень много полупрозрачной геометрии в кадрах, поэтому выбора у них особо не было).
Спасибо. Тебе. Большое.
Я заебался думать, что это такое и как поправить. Теперь хоть понятно будет.