2014-01-08 4 views
0

Надеюсь, это очень простой вопрос.OpenGL ES 2.0 SL, выписывающий из фрагмента шейдера в текстуру

Как написать текстуру, прикрепленную к фреймбуферу изнутри фрагментарного шейдера. Я предполагаю, что это просто gl_FragColor, я полагаю, чтобы определить/использовать другую переменную, например gl_Data [0]?

Frag Shader:

 precision mediump float; 
     varying vec2 vTextureCoord; 
     uniform sampler2D displayTexture; 
     void main() { 
      gl_FragColor = texture2D(displayTexture, vTextureCoord); 
     } 

Этот вопрос не в том, чтобы настроить текстуру для записи, так же как выписать из в пиксельный шейдер. Я просто хочу убедиться, что у меня есть этот кусочек головоломки.

+0

Да, это должен быть тот же выход. Когда вы переключаетесь на буфер отображения, вам нужно будет изменить программу шейдеров, если у вас есть разные требования к формам/обработке. – prabindh

ответ

1

Вы, кажется, считаете правильным. Весь код чертежа должен быть одним и тем же чертежом для визуализации буфера относительно прикрепленной текстуры, даже шейдеров.

+0

Может ли быть что-то странное в отношении формата текстуры, привязанного к FBO? Как я определяю некоторые атрибуты конфигурации в EGL как RGBA8, но нет возможности для прикрепления текстуры к FBO, просто RGBA4, так что преобразование выполняется автоматически или это что-то, что меня убьет? – HPP

+0

Преобразование может убить вас. Вы должны быть в состоянии сделать это RGBA8. Где вы вставляете этот параметр? Это может быть только RGB по умолчанию. Кроме того, если я правильно помню, OpenGL будет внутренне работать с RGBA8 и будет масштабировать другие форматы при передаче данных: RGBA4 будет масштабироваться x2 до RGBA8, но данные, которые вы нажимаете на текстуру, должны быть 16-битными (это часть, которая вас убивает). –

+0

'glTexImage2D (GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, \t \t \t rain.width, rain.height, 0, GLES20.GL_RGBA, \t \t \t GLES20.GL_UNSIGNED_SHORT_4_4_4_4, juliaTexBuff)' якобы он всегда работает с GL_UNSIGNED_SHORT_4_4_4_4, так что я не думайте, что это та часть, которая меня убивает. Этот вопрос завершен, и на этот вопрос будет дан ответ [здесь] (http://stackoverflow.com/questions/21149605/load-uniform-matrix-1104-gl-invalid-operation-android-opengles-2-0) – HPP