После поисков в Гугле решил пока оставить процедурное сглаживание и реализовал SSAA. Идея проста: Сначала делается стандартный 1x проход, в дополнительный буфер пишутся ID треугольников. Потом запускается kernel 3x3 и пиксели с различными ID маскируются в стенсель-буфере. Затем запускается "тяжёлый" шейдер, который выпускает несколько лучей в одном пикселе по заданному паттерну смещений. Стенсель тест реджектит выполнение этого шейдера вне маски. Полученный результат усредняется и записывается в буфер кадра. Примеры:
Aliased render:
Edge mask detection:
Ordered grid 4x:
Rotated grid 4x:
Optimal N-rook 8x:
Что интересно, на этом маленьком примере падение скорости не от множества лучей в маске, а от прохода, ищущего эту самую маску.
вторник, 17 ноября 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий