Pull to refresh

Comments 20

Когда же я привыкну к всяким страшным головам при открытии хабра)
А по сабжу: спасибо за курс! Жду бонуса)
Огромное спасибо за основы основ!

Надеюсь что это далеко не все, чем вы можете поделиться с сообществом ;) Это не приглашение сразу писать что-то новое, но робкая надежда.
В примере на гитхабе в Makefile в CPPFLAGS стоит также добавить -O3, иначе оптимизатор вхолостую работает.

Эх, где вы были, когда я был студентом:)

У меня не странный результат — где-то ошибки округления:

Проблема со specular map у диаблы, посмотрите его возведение неважно чего в степень ноль. Сколько моделей, столько коэффициентов. У нас неполные данные :)
Учу ваш курс на малинке. Сейчас на втором уроке и голову треугольниками рисует довольно быстро. С ужасом представляю, сколько времени будет рендериться чорт :)
Спасибо за курс, кроме графики и математики разберусь немного в C++ и Makefile.
А можно прятать эти страшные рожи под кат?
Надоело уже видеть их на главной какую неделю.
Когда будет урок про моделирование шерстяного покрова, тогда автор опубликует котиков. Потерпите года 2.
Я, конечно, знаю, что я не Аполлон, но все же я ещё не привык, чтобы в мой адрес говорили «страшная рожа».

Рогатые демоны и безглазые негры же в статьях, нет?
Спасибо огромное за материал!

А можно попросить еще объяснить алгоритм (ну или хотя-бы ссылки в инете на что посмотреть) для вот такой простой задачки 2D (не 3D):

имеем выпуклый 4-х угольник и квадратную текстуру, надо натянуть текстуру на данный 4-х угольник причем с корректными искажениями:
image
Вам нужно рисовать быстро или просто?
лучше просто, убыстрить я потом сам смогу, я думаю :)
Если просто, то проходите по каждому пикселю в текстуре, имеете его (u,v) координаты. Затем делаете билинейную интерполяцию в экранном прямоугольнике (находите две точки на противоположных рёбрах, что соответствуют координате u, две точки на двух других противолежащих, что соответствуют координате v). Считаете пересечение двух отрезков, это экранные коордианты пикселя из текстуры.

Недостаток следующий: на экране вы можете несколько раз закрасить один и тот же пиксель.

Спасибо! Действительно не сложно. До этого что читал — там буфер строят какой-то специальный — видимо как раз чтобы не рисовать несколько раз один пиксель. Попробую реализовать.
Если четырёхугольник растягивает текстуру, то может понадобиться проходить с субпиксельным шагом по оригинальной текстуре, чтобы на экране не было дырок. В общем, преобразование uv->xy быстрое и безболезненное, xy->uv требует небольшой гимнастики.
Да просто работайте с квадратом, а не с треугольниками и все.
Тот же сканлайн даст вам корректный результат в этом случае.
Косяк из-за того, что два треугольника обрабатываются независимо.
Если же вы будете работать с квадратом и использовать все четыре точки, то результат будет корректный.
Скажите, вот такой эффект справа (в углу левого глаза и в углу губ) — это из-за того, что я не считаю тень от головы, или у меня просто где-то косяк?
в тёмной части лица? это нормально, читайте тут: https://habrahabr.ru/post/249139/
Скажите, почему вы умножаете на матрицу Mshadow во втором фрагментном шейдере вместо того, чтобы заново считать значение shadow-буфера во втором вершинном шейдере (какой-нибудь varying_shadow) и потом интерполировать во втором фрагментном шейдере? Есть какая-нибудь причина для этого, или просто так было проще?
Sign up to leave a comment.

Articles