пятница, 15 апреля 2016 г.

Программный растеризатор на D

Решил выложить свой программный растеризатор, который написал ради развлечения за пару вечеров. Он умеет рисовать только треугольники, есть поддержка текстур (с перспективной коррекцией) и alpha-смешивания. Не старался его особо оптимизировать, однако он уже работает достаточно быстро при небольших разрешениях (тестировал на 400х300).


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

Весь исходный код умещается в одном файле (<600 строк), не считая бибилиотеки dlib и биндинга к SDL для вывода изображения. Можете использовать его для самообразования или как основу для собственного программного рендера. В архиве есть сборка для Windows.

Скачать

пятница, 8 апреля 2016 г.

Улучшенные тени

Удалось практически свести на нет пикселизацию мягких теней:


Все изменения в DGL, связанные с тенями, кстати, уже доступны в репозитории проекта.

среда, 6 апреля 2016 г.

Мягкие тени

Реализовал в графическом движке сглаживание теней методом PCF. Сблизи заметны артефакты сэмплинга (самый большой недостаток метода), но издали все выглядит вполне прилично:


В дальнейшем, скорее всего, буду двигаться в сторону VSM.