Как стать автором
Обновить

Комментарии 13

> они часто могут выглядеть неровными и отвлекать от игрового процесса.
> взгляд на крылья самолетов ясно указывает на проблему алиасинга
Не было никакой проблемы, в эпохи 320×240 и 640×480 мозг спокойно дорабатывал картинку обеспечивая равномерную нагрузку. Лично для меня HL гораздо более играбелен чем цветное мельтешение современных игр. Но красиво и делаем потому что можем (а не потому что была проблема).
Не было никакой проблемы, в эпохи 320×240 и 640×480 мозг спокойно дорабатывал картинку обеспечивая равномерную нагрузку.

Я тоже так думал пока в приступе ностальгии не скачал себе Dark Sun чтобы поиграть в «старый добрый рпг»:
+
image
Мониторы того времени сами довольно неплохо сглаживали картинку и выглядело все лучше, чем на современных.
раньше игры сглаживались аналоговым способом, из-за особенностей экрана

Хотел бы отметить ещё одно достоинство SuperSampling — он очень прост в реализации "с нуля". Например, для сглаживания проекций 4-х мерных фигур.
Готовой системы шейдеров для таких преобразований нет, текстуры представляют собой плотные 3д наборы точек, а проблема всё та же — зубчатая косая прямая на экране.

MSAA выполняется «в железе», поэтому с точки зрения программиста ещё более прост: сделай буфер кадра с включённым мультисемплингом, нарисуй туда и выведи. Конечно, до тех пор, пока в игру не вступает клятый deferred shading.

Что бы железо отработало, насколько я понял, в кадре должна быть указана глубина. У меня её нет, потому что 4д глубина понятие нестандартное для opengl. А любое сглаживание растровой картинки приводило к нежелательному размытию четких деталей. В итоге казалось что картинку низкого разрешения натянули на большой монитор

Так всё равно пришлось же всё проецировать, к 2D-растру сводить, попутно как-то определять, кто кого заслоняет. Так что это вопрос вполне решаемый.

Использовал raycasting, весь алгоритм самописный и в одном шейдере, на выходе — картинка для вывода на экран. Делать цепочку шейдеров для 4д обьектов с попутным решением проблем передачи буферов на одну размерность больше долго.
Суть SSAA свелась к тому, что бы выпускать по 4 луча на пиксель и брать среднее.
Кажется, что бы MSAA сработал нужен был бы буфер кадра х4 относительно картинки. А это тот же самый SSAA

Если бросать лучи, то да. MS выигрывает у SS за счёт того, что шейдер считается один раз сразу для многих сэмплов, но чтобы определить, у каких именно — нужна растеризация.

Впрочем, расстояние от источника луча до пересечения — и есть та самая линейная глубина, которая требуется Z-буферу, так что может и возможно вместо бросания лучей зайти на растеризацию.
У меня монитор есть 27 дюймов и 4К. В играх просто ставлю сглаживание на минимум.
При большом разрешении если не видно пикселей сглаживание аппаратное).
Если рендерить картинку в 1080 накладывать сглаживание а потом хитрым алгоритмом масштабировать до 4К тоже хитрым алгоритмом ресурсов на современной видео карте уходит меньше чем если без сглаживания рендерить в 4К. Этот алгоритм использую современные консоли да и карты тоже.
Даже в 4К без сглаживания не обойтись, поскольку в том-то и прикол альясинга, что он маскирует высокие частоты, которые не влезли, под любые низкие частоты. В частности, в 4К вы не увидите эффект альясинга, когда он вписывается в один пиксель, но от муара вы таким образом не спасётесь.
Технически плохо написанная / переведённая статья. Профукана возможность описать этимологию — почему именно такое слово — aliasing — а не другое? Безграмотные высказывания: «Разрешения 10 х 7 пикселей недостаточно для отображения этого треугольника без алиасинга» — правда, что ли? Выходит, тогда вообще никакой непрерывный треугольник невозможно показать без альясинга? А для чего тогда теорема Котельникова и фильтр низких частот? «цвет шейдера» — что вы называете «цветом шейдера»? В общем, не знаю, какие вы там игры делаете с 2009 года.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий