OpenGLES에서 여러 가지 작업을하고 싶습니다. 그러나 여기에서 제가 시작하고 있습니다. 텍스처를 그리기 시작한 다음 텍스처를 표시합니다.OpenGLES에서 화면에 여전히 렌더링을 렌더링하는 텍스처
glGenFramebuffersOES(1, &frameBuffer);
glGenRenderbuffersOES(1, &colorRenderbuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, frameBuffer);
을 그리고 나는 프레임 버퍼에 일부 라인을 그릴 자신을 설정합니다
좀 버퍼를 작성합니다.
glViewport(0, 0, backingWidth, backingHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glVertexPointer(2, GL_FLOAT, 0, vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colours);
glEnableClientState(GL_COLOR_ARRAY);
glDrawArrays(GL_LINES, 0, 2000);
그런 다음이 내용을 갓 만든 질감으로 복사 해보십시오.
glGenTextures(1, &textureId);
glBindTexture(GL_TEXTURE_2D, textureId);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, nil);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 128, 128, 128, 128);
그런 다음 텍스처를 표시하십시오. renderbuffer에 그려되고 내 라인을 의미 화면 (I는 삼각형 팬은 내가 뒤에 볼 수 있다는 것을 의미 그리는 방법)의 '뒤로'에 표시 내 라인 -
GLfloat vertices[] = {-1,1,1,1,-1,-1,1,-1};
GLfloat texcoords[] = { 0,1,
1,1,
0,0,
1,0,};
glColor4f(0.5, 0.5, 0.5, 0.1);
glVertexPointer(2, GL_FLOAT, 0, vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glTexCoordPointer(2, GL_FLOAT, 0, texcoords);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
GL_RENDERBUFFER_OES, colorRenderbuffer);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
[context presentRenderbuffer:GL_FRAMEBUFFER_OES];
는 내가 얻을 것이 이것이다 비록 내가 그것을 묶지 않더라도. 그 위에, 나는 기대했던대로 나의 선보다는 오히려 색이 이상한 색으로 그려진다. 여기
그래서있어 두 가지 문제 :
왜 내 라인은 여전히 내가 renderbuffer로 쓰고 있지 않다 경우 화면의 뒷면에 나타나는거야?
텍스처에 올바르게 쓰고 있습니까? 그렇다면 왜 표시되지 않습니까?
당신은 같은 glFramebuffer * 전화 (glFramebufferRenderbuffer 등)로, 중요한 코드를 많이 놓치고있어,하지만 난 정말 이해가 안하면 프레임 버퍼를 결합하면, 그것으로 렌더링입니다 화면에는 표시되지 않습니다. 또한 왜 FBO를 사용하여 텍스처에 직접 그리지 않습니까? –
FBO는 FramebufferObject입니다. 맞습니까? 그게 포함될 수있는 것에 대해 자세히 설명해 주시겠습니까? 나는 이것에 대한 언급을 보았지만 그것을위한 확실한 코드는 없다. 렌더링 대상과 관련해서는 내 문제이기도합니다. 그게 화면에 나타나야하는 이유는 없지만 그렇습니다. 여전히 간단한 예제로 작업하고 있습니다. – mtrc
실제로 더 좋은 질문은 정확히 무엇을하고 싶습니까? –