В первом шаге видеокарта каким-то образом получает данные (вершины, плоскости, текстуры) в свою видеопамять, для нас это сейчас не так важно. Далее происходит конвертация координат относительно объекта в координаты на экране относительно камеры. После происходит растеризация — высчитывается, в каких пикселях уже на экране находится объект. Такие пиксели называют фрагментами. Отличие от пикселей заключается в том, что фрагмент помимо информации о пикселе, содержит еще и некоторую побочную информацию, полученную после растеризации. Для упрощения будем считать, что это все просто пиксели на экране. Далее для каждого пикселя выполняется шейдер фрагмента. А затем проверяется, что расстояние от камеры до фрагмента соответствует высчитанному заранее в нужном направлении в буфере глубины. Проще говоря, проверяется, нет ли перед объектом чего-либо еще, и нужно ли его отрисовывать на итоговое изображение.
фрагмент может на самом деле чуть-чуть залезать на соседние пикселиЭта фраза вынесла мозг даже мне.
Фрагментами они называются от того, что являются результатом работы растеризатора, который выдает именно что фрагменты (набор аттрибутов), из которых потом фрагментный шейдер посчитает и запишет в рендер таргет цвет. А как оно потом натянется на экран и станет пикселями - это уже отдельная история.
Не смешивайте эти 2 понятия пожалуйста.
шейдер (или группа шейдеров по очереди) занимается переводом координат относительно объекта, в координаты на текстуре.Начал было возмущенно писать, но вы чуть ниже исправились и упомянули что все же Clip Space ;)
Этим занимается графическая библиотека и движок, самостоятельно интерполируя точки из вершин.Стоило вас похвалить - и на тебе. Какая библиотека? Какой движок? Этим занимается texture sampler прямо на GPU.
пиксельном шейдере можно получить информацию о теняхЛучше бы вы это не писали, а то большая часть народу подумает что есть некая встроенная функция просчета теней на GPU :)
А вообще инфа ну просто капец как поверхностно подана - те кто не в теме все равно ничего не поймут, а те кто в теме будут бугуртить (как это делаю я, ага )) )
Спасибо за содержательную критику. Я постарался исправить статью, чтобы чуть она была более технически точной. Про интерполяцию UV — я хотел объяснить, что это делается «за шторой», но немного перестарался :)
Те, кто не в теме, надеюсь все-таки что-то поймут
Комментарий недоступен
Я не в теме, и для меня статья оказалась хорошей стартовой точкой дальнейшего изучения. Понимаю почему продвинутых раздражает упрощение и неточности, конечно, но мне кажется что бывают случаи когда они даже нужны)
Милейший, а где Вы изучали вышеизложенную теорию?
Комментарий недоступен
Именно для песков времени пришлось купить Geforce FX с shader model 2.0.