Я представил геометрический шейдер для своего приложения OpenGL. В моих шейдерах есть несколько «переменных» переменных, которые я передаю из вершинного шейдера в шейдер фрагмента. Теперь, представив геометрический шейдер, мне нужно вручную передать каждое переменное значение в геометрическом шейдере для каждой вершины. Есть ли способ избежать этого и делать вещи «автоматически»?Передача переменных переменных через геометрический шейдер
ответ
No.
Как только вы приведете геометрии затенение в трубопроводе, если вы хотите, чтобы передать переменные из вершинного шейдера в шейдер фрагмента вы должны передать их вручную, создавая входной переменной от вершины шейдер и выходную переменную в шейдер фрагмента. Я не знаю, какую версию GLSL вы используете, но вы можете проверить раздел 4.3.4 GLSL 3.30 spec.
Нет, потому что нет никакого разумного способа сделать это ни для чего, кроме шейдера геометрии noop, и если ваш геометрический шейдер ничего не делает для геометрии, почему он включен в первую очередь?
Как правило, геометрический шейдер принимает количество вершин в качестве входных данных и производит (другое) количество вершин в качестве вывода. Итак, какие входные вершины (es) должны быть сопоставлены, к какой выходной вершине (es) «автоматически»?
- 1. Передача переменных через действия
- 2. Передача переменных через dplyr
- 3. Передача переменных через ssh
- 4. Передача переменных через сред
- 5. Передача переменных через петли
- 6. Передача переменных через страницу
- 7. Передача переменных через AJAX
- 8. Передача переменных через функции C
- 9. Передача переменных #include через #define
- 10. Передача нескольких переменных через json_encode
- 11. Передача переменных PHP через функции?
- 12. Передача переменных через handlebars blockhelper
- 13. WkHtmlToPdf Передача переменных через shell_exec()
- 14. Передача переменных через события C#
- 15. Передача переменных через 3 страницы
- 16. android: передача переменных через классы?
- 17. Передача переменных через тег ввода
- 18. Проходной геометрический шейдер для точек
- 19. OpenGL шейдер встроенных замены переменных
- 20. Передача переменных в PHP-скрипт через AJAX
- 21. Передача переменных через классы в Objective-C
- 22. Передача переменных через функции в C++
- 23. Передача переменных на следующую страницу через $ _SESSION
- 24. Передача двух переменных через .indexOf() в javascript?
- 25. Передача переменных через параметры в Javascript
- 26. Передача shared_ptr через список переменных аргументов
- 27. Передача переменных формы через jquery .post
- 28. Передача переменных через HTML в функцию PHP
- 29. Передача переменных через параметры AJAX PHP JAVASCRIPT
- 30. Передача переменных через клик событие JavaScript
Да, вы правы. В моем случае геометрический шейдер фактически ничего не делает для геометрии, кроме отбрасывания вершин, поэтому он имеет смысл. Но я понимаю, что применение геометрических шейдеров намного шире, поэтому я хочу, чтобы это было невозможно. Спасибо за объяснение. – SimpleMan
Есть очень полезные геометрические шейдеры, которые не изменяют геометрию. геометрические шейдеры - единственное место, где все вершины примитива доступны для вычисления. Метод «Однопроходный каркас» использует эту информацию для добавления дополнительной информации без изменения геометрии. При использовании этого метода, это немного раздражает, чтобы пройти все другие значения. Однако мы должны, поэтому cest'la'vie. –