У меня есть довольно большой кусок данных (который слишком велик, чтобы поместиться в UBO), к которому я хотел бы получить доступ в вершинном шейдере.
В OpenGL 4.3 я просто использую SSBO и все готовос этим, однако, я теперь должен также поддержать людей до версии 3.2 или 3.3.Я изучил, как я могу получить доступ к буферу в вершинном шейдере, и из того, что я мог собрать, кажется, что я могу использовать TBO (или любой другой буфер) без необходимости делать что-то более сложное, например, управлять UBO.Затем я использовал бы хитрость с texelFetch()
и захватил бы мои данные.
Однако этот сайт утверждает, что
GLSL также поддерживает доступ к картам текстуры в обоихвершинные и фрагментные шейдеры.Реализации могут выбрать поддержку текстурного отображения в вершинных шейдерах (при условии, что базовая реализация OpenGL поддерживает эту функциональность)
Теперь, если я проверю GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
и это ноль, я тост.Или есть другой более разумный способ для меня получить больший объем данных, чем тот, который поддерживает UBO в вершинном шейдере, для версии 3.2 - 3.3 GL, без возни с texelFetch()
?