воскресенье, 10 февраля 2013 г.

как надо проверять зрение расстояние освещенность

mainCam.depthTextureMode |= DepthTextureMode.DepthNormals;

private const int PASS_MAIN = 0;

public float NoiseAmount = 0.5f, NoiseScale = 2;

public float LuminanceThreshold;

public class HumanEye : MonoBehaviour

Прежде чем приступить непосредственно к шейдеру, напишем небольшой скрипт, выполняющий прогонку экранного буфера через этот самый шейдер:

Писать будем под Unity3D Pro, в виде шейдера для постпроцессинга.

Потеря четкости зрения на большом расстоянии при средней и низкой освещенности

Небольшой шум (там же)

Потеря четкости зрения там же

Потеря цветовосприятия в зонах низкой освещенности

Первым делом нужно определиться, какого эффекта мы хотим достичь. Я разбил всю обработку на следующие части:

После: финалист IGF и лауреат всех наград E3

До: унылый польский шутер

В результате мы получим что-то вроде следующего (смотреть на весь экран!):

Все эти эффекты можно наблюдать самому, оторвавшись от компьютера и выйдя ночью на улицу.

Как известно, в темноте зрение человека обеспечивается клетками-палочками сетчатки, высокая световая чувствительность которых достигается за счет потери цветочувствительности и остроты зрения (хотя палочек в сетчатке и больше, они распределены по гораздо большей площади, так что суммарное «разрешение» выходит меньше).

Сегодня мы будем заниматься постпроцессингом изображения в DirectX.

Имитируем ночное зрение человека в 3D-игре

Имитируем ночное зрение человека в 3D-игре / Хабрахабр

Комментариев нет:

Отправить комментарий