Во время инициализации OpenGL программа должна делать что-то вроде: < /p>
< /code>
Получение исходного кода может быть таким же простым, как положить его в строку, подобную:
(пример, взятый из Superbible, 6 -е издание < /strong>) < /p>
static const char * vs_source[] =
{
"#version 420 core \n"
" \n"
"void main(void) \n"
"{ \n"
" gl_Position = vec4(0.0, 0.0, 0.0, 1.0); \n"
"} \n"
};
< /code>
Проблема в том, что трудно редактировать, отлаживать и поддерживать шейдеры GLSL непосредственно в строке. Таким образом, получение исходного кода в строке из файла проще для разработки: < /p>
std::ifstream vertexShaderFile("vertex.glsl");
std::ostringstream vertexBuffer;
vertexBuffer
Проблема теперь в том, как отправить шейдеры с вашей программой? Действительно, доставка исходного кода с вашим приложением может быть проблемой. OpenGL поддерживает «предварительно скомпилированные бинарные шейдеры», но open Wiki < /strong> утверждает, что: < /p>
Программа. Двоенные форматы не являются предназначен для передачи
. Не разумно ожидать различных поставщиков оборудования
принять одинаковые бинарные форматы. Не разумно ожидать, что
отличается от одного и того же поставщика принять те же бинарные форматы
. [...]
Как практически отправить шейдеры GLSL с помощью программного обеспечения C ++?
Подробнее здесь: https://stackoverflow.com/questions/204 ... c-software
Как практически отправить шейдеры GLSL с помощью программного обеспечения C ++ ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение