Но по тексту есть множество принципиальных ошибок и неточностей, которые вводят читателя в заблуждение.
Перечислять их все не буду — это на отдельный пост по размеру выльется.
Скажу лишь, что в статье 50% текста — чистая правда, доступно преподнесённая для рядового геймера. А другие 50% — какая-то бессмыслица, которая не имеет ничего общего с действительностью. Всё-таки видно, что автор сама недостаточно погрузилась в тему.
Open Gl, Direct 3d. Они снимали с CPU значительную часть нагрузки и брали на себя.
не «брали на себя», а «перекладывали на видеокарту, предоставляя для этого разрабам какой-никакой API (типа особого синтаксиса, в общем)».
Теперь видеокарта строила сцену с нуля.
Не с нуля. Проц всё равно гонит в видюху некоторые входные данные.
Поверхность без шейдеров
С шейдарами
Поверхность не может быть «без шейдеров». Её жу в любом случае что-то должно отрисовать. Просто они могут быть так называемыми «fixed-function» или «programmable» шейдерами. В первом случае у разраба есть лишь выбор из некоторых алгоритмов смешения цветов, которые аппаратно зашиты в видюху (как раз то, о чём говорит автор словами «все эффекты были встроены»). А во втором случае — разраб сам пишет любой алгоритм отрисовки, пользуясь уже арсеналом простых арифметических операций и некоторым набором высокоуровневых функций.
И — да — на скриншотах юнити. И, судя по внешнему виду, сравниваются стандартные шейдеры Diffuse и Bumped diffuse. В обоих случаях — это полноценные «programmable» шейдеры, а не fixed-function. Просто один попроще, другой посложнее.
Про виды шейдеров — простите, без обид — вообще ахинея.
В современном графическом пайплайне имеются следующие:
Вертексный
Тесселяционный, hull и domain (эта троица идёт вместе)
Геометрический
пиксельный (именуемый также фрагментным)
Обязательны только первый и последний (vertex + pixel aka fragment), остальные — опциональны и поддерживаются только в последних версиях DX и OGL.
И, да, пиксельный шейдер — не равно геометрический. Вообще ни разу.
Геометрический позволяет плодить новую геометрию прямо в видюхе. Фрагментный — работает попиксельно, вычисляя уже итоговую картинку (цвета писелей на экране).
Про HDR и Motion blur тут вообще ни к месту. Вникать не буду.
Однако, но хоть шейдеры — это программы, их количество напрямую связано с качеством вашей видеокарты.
Мысль правильная, формулировка — нет. В зависимости от шейдерной модели (DX9 — шейдерные модели с 1.0 по 3.0; DX10 — 4.0, DX11 — 5.0) есть ряд ограничений. На количество инструкций в шейдере, например. И на поддержку этих инструкций в разных шейдеров (например, чтение текстуры в вертексном шейдере — только в ). Кроме того, есть «мягкий лимит» на количество вертексов в сцене. Он ни в каких ограничениях не прописан, но определяется размером памяти в видюхе. И у старых видюх она, естественно, была меньше — так что и геометрии можно было меньше запихнуть.
Кроме того, есть т.н. draw-call'ы. И это отдельная песня
Но такого лимита, как «количество шейдеров в сцене» — его нет.
В целом же — повторюсь, начинание благое. И желание самостоятельно вникнуть в эти дебри — определённо, похвальное. Для человека, который не занимается шейдерным программированием — это титанический труд, поверьте. И он однозначно заслуживает уважения.
Но — сами понимаете — я не мог не обратить внимания на явные и существенные ошибки.