Я недавно стучал вокруг Shadertoy - https://www.shadertoy.com/, чтобы узнать больше о OpenGL и GLSL в частности.
Из того, что я понимаю до сих пор, пользователь OpenGL сначала должен подготовить всю используемую геометрию и настроить сервер OpenGL (количество разрешенных огней, хранение текстур и т.д.). После этого пользователь должен предоставить по крайней мере одну программу вершинного шейдера и одну программу фрагментарного шейдера перед компиляцией программы OpenGL.
Однако, когда я просматриваю образцы кода в Shadertoy, я вижу только одну программу шейдера, и большая часть используемой геометрии представляется непосредственно в коде GLSL.
Как это работает?
Я предполагаю, что вершинный шейдер уже подготовлен заранее, а редактируемый/примерный шейдер - это только фрагментарный шейдер. Но тогда это не объясняет геометрию в некоторых более сложных примерах...
Может ли кто-нибудь объяснить, как работает Шадертой?