Простой ответ заключается в том, что приемы с шейдертой, вероятно, в 10 100 000 раз медленнее, чем с использованием вершин и треугольников.
Сравните этот шейдерный лес, который работает на скорости 1 кадр / с в лучшем полноэкранном режиме на моем ноутбуке
https://www.shadertoy.com/view/4ttSWf
В этот лес Скайрима, который работает на скорости от 30 до 60 кадров в секунду
https://www.youtube.com/watch?v=PjqsYzBrP-M
Сравните этот город Шадертой, который работает на скорости 5 кадров в секунду на моем ноутбуке
https://www.shadertoy.com/view/XtsSWs
В этот город: город горизонтов со скоростью 60fps
https://www.youtube.com/watch?v=0gI2N10QyRA
Сравните этот клон Shadertoy Journey, который работает на 1fps в полноэкранном режиме на моем ноутбуке
https://www.shadertoy.com/view/ldlcRf
до настоящей игры Journey на PS3, машине с возможно более медленным графическим процессором, чем у моего ноутбука, учитывая, что PS3 вышла в 2006 году, и все же работает на скорости 60fps
https://www.youtube.com/watch?v=61DZC-60x20#t=0m46s
Есть много других причин.Типичный трехмерный мир использует гигабайты данных для текстур, персонажей, анимации, столкновений и т. Д., И все это недоступно только в GLSL.Другой - они часто используют фрактальные методы, поэтому нет простого способа на самом деле спроектировать что-нибудь.Вместо этого они просто ищут математику для чего-то интересного.Это не будет хорошим способом для разработки игровых уровней, например.Другими словами, использование данных вершин делает вещи более гибкими и редактируемыми.
Сравните приведенные выше примеры путешествий.Пример Shadertoy - это отдельная сцена против игры, представляющей собой огромный мир с постройками, руинами, головоломками и т. Д. ...
Есть причина, по которой он называется Shader TOY .Это задумано как забавный вызов.Учитывая, что единственная функция, которая вводит только то, какой пиксель в данный момент рисуется, напишите код для рисования чего-либо.Таким образом, изображения, которые людям удалось нарисовать, учитывая этот предел, удивительны!
Но они не являются , как правило, методами, используемыми для написания реальных приложений.Если вы хотите, чтобы ваше приложение работало быстро и было гибким, вы используете более традиционные приемы вершин и треугольников.Техника, используемая GTA5, Red Dead Redemption 2, Call of Duty, Apex Legends, Fortnite и т. Д ....