Im пытаясь понять, как пиксельный шейдер вызывается во время мультитекстурированного рендеринга, Ive тщательно прочитать спецификации, но я немного запутался ..Multisampling и фрагмент шейдеров GLSL 330
я настроить мультитекстурированного FBO с цветом и а глубина/трафарет renderbuffers .. штраф настройка
Я простой 1-линия Vertex Shader только для преобразования и еще одна линия фрагмент шейдера, который просто возвращает черный цвет .. и его тонкая
рисую линию - линия отображается сглаженной .. штраф
теперь, если в фрагментаторе шейдера вместо того, чтобы тупо возвращать черный цвет, я texelFetch из многосэмплированной текстуры, всегда читаю номер образца 0 (т. Е. Черный). Я получаю зубчатую линию.
Что такое разница между простым myoutcolor=vec4(0.0)
и myoutcolor=texelFetch(mysampler2DMS,...,0)
?
состояние функции, что фрагмент шейдер выполняется на образце уровне, только если он использует статический gl_SampleID
, gl_Samplemask[]
или имеет «образец» отборочные хранения .. (во всех этих случаях это означает GLSL #version 400
или выше), в противном случае он запускается на уровне фрагмента.
но как это может быть? в приведенном выше примере я получил сглаженную линию, даже если я всегда возвращал один и тот же цвет, поэтому я старался, чтобы шейдер фрагмента был ВСЕГДА выполнялся на уровне образца в мультисэмплинном фреймбуфере. С другой стороны, если бы это было не так, я должны получать гладкие результаты, даже если возвращать всегда один и тот же образец из текстуры MS.
Может ли кто-нибудь помочь мне понять это?
PS: В настоящее время я использую #version 330, но я обнаружил, что для каждого оператора мультисэмплирования Id необходимо правильно обрабатывать MS (gl_SampleID
, gl_Samplemask[]
, sample ..) поддерживается только в GLSL 400 или выше .. так, whats именно поддержка GLSL 330 предлагает правильную обработку мультисэмплинга? как я могу обрабатывать текстуры MS в GLSL 330?
Какая видеокарта и версия драйвера вы используете? –
GT330M на OpenSUSE x64 12.1, драйвер 290.x – user815129
водитель (только что проверено) 290.10, вы подозреваете, что проблема с драйвером? Думаю, я все равно должен получить сглаженные результаты, согласны ли вы? – user815129