OpenGL ES 2.0 render to texture

后端 未结 4 1574
予麋鹿
予麋鹿 2020-12-15 08:25

I\'m trying to render to a texture using OpenGL ES 2.0, but I can\'t seem to make it work.

This is how I proceed:

    struct RenderTexture
    {
             


        
相关标签:
4条回答
  • 2020-12-15 08:56

    I had exact the same problem as u do. Try to add

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    

    right after glBindTexture(GL_TEXTURE_2D, tex); and black square have to disappear.

    0 讨论(0)
  • 2020-12-15 09:01

    Make sure the texture is not bound before trying to render into it. Even if not using texturing at all, trying to render into a currently bound texture may invoke undefined behaviour and just not work.

    You should actually call glBindTexture(GL_TEXTURE_2D, 0) after the glTexImage2D in your RenderTexture constructor, or maybe restore the previously bound texture, like you do with the FBO. Just make sure the tex is not bound when you render into the FBO.

    0 讨论(0)
  • 2020-12-15 09:08

    You don't seem to make use of glActiveTexture. I recommend you to call glActiveTexture(GL_TEXTURE0+tex); before each glBindTexture(tex);, which will save you a lot of headaches when you use more than one texture. I guess the error is in the code you use for drawing the texture on the screen.

    0 讨论(0)
  • 2020-12-15 09:10

    This has been a while, but as I wrote in the comments, be sure you're initializing a power of 2 texture.

    0 讨论(0)
提交回复
热议问题