Шейдер не может непосредственно провоцировать рендеринг. Он не может заставить OpenGL отображать некоторые данные. Шейдеры являются частью конвейера рендеринга, и этот конвейер идет в одну сторону; ему не разрешено зацикливаться.
В аппаратном обеспечении на основе GL 4.x шейдер теоретически может записывать данные в определенном формате, который будет считываться с помощью одной из функций «косвенного» рендеринга. Но клиентский код, CPU, по-прежнему должен выдать команду рисования.
Возможно, лучше сделать видимость на языке вычислений, таком как OpenCL. Шиндеры OpenGL способны на это, но они не очень хорошо разработаны, чтобы сделать это интуитивно понятным. OpenCL - это общая вычислительная система, и она предназначена для такого рода вещей.
Педантичное примечание: в OpenGL нет такой вещи, как «VBO». Существуют только буферные объекты, которые могут использоваться для хранения данных вершин. Или равномерные блоки. Или множество других вещей. –