* [Статья 1: алгоритм Брезенхэма][1]
* [Статья 2: растеризация треугольника + отсечение задних граней][2]
* [Статья 3: Удаление невидимых поверхностей: z-буфер][3]
* Статья 4: Необходимая геометрия: фестиваль матриц
* [4а: Построение перспективного искажения][4]
* [4б: двигаем камеру и что из этого следует][5]
* [**Статья 5: Пишем шейдеры под нашу библиотеку**][6]
* Статья 6: Чуть больше, чем просто шейдер: просчёт теней
__
* [Статья 3.1: Настала пора рефакторинга][7]
* красивый класс матриц
* как работает новый растеризатор
Пришла пора веселья, давайте для начала смотреть размер [текущего кода][8]:
* geometry.cpp+.h — **218** строк
* model.cpp+.h — **139** строк
* our\_gl.cpp+.h — **102** строки
* main.cpp — **66** строк
Итого **525 строк**. Ровно то, что я обещал в самом начале курса. И заметьте, что отрисовкой мы занимаемся только в our\_gl и main, а это всего 168 строк, и нигде мы не вызывали сторонних библиотек, вся отрисовка сделана нами с нуля! **Я напоминаю, что мой код нужен только для финального сравнения с вашим работающим кодом! По-хорошему, вы всё должны написать с нуля, если следуете этому циклу статей. Очень прошу, делайте самые безумные шейдеры и выкладывайте в комментарии картинки!!!** ![][9] [Читать дальше →][10]
[1]:
http://habrahabr.ru/post/248153/
[2]:
http://habrahabr.ru/post/248159/
[3]:
http://habrahabr.ru/post/248179/
[4]:
http://habrahabr.ru/post/248611/
[5]:
http://habrahabr.ru/post/248723/
[6]:
http://habrahabr.ru/post/248963/
[7]:
http://habrahabr.ru/post/248909/
[8]:
https://github.com/ssloy/tinyrenderer/tree/a4537e02083091003c89ba78d209cbd7bda7580d
[9]:
http://habrastorage.org/files/985/b3c/0ea/985b3c0eac7544fea05f6f9b56e03690.png
[10]:
http://habrahabr.ru/post/248963/#habracut