OpenGL의 기본 개념을 이해하려고합니다. 일주일 만에 아직 멀었습니다. 내가 glsl에 있으면, 나는 무엇을해야하는지에 관해 안다. 그러나 나는 거기에 도착하는 것이 교묘 한 작은 조각 인 것을 안다.OpenGL ES 쉐이더를 사용하여 비디오 위에 이미지 오버레이
현재 조작하고 표시하는 비디오 픽셀을 전달할 수 있습니다. 그런 다음 정지 이미지를 오버레이로 추가하려고했습니다. 이것은 내가 잃어버린 곳입니다. 최종 목표는 내 비디오와 스틸 이미지의 픽셀 데이터로 동일한 조각 셰이더에서 끝내는 것입니다. 이것은 두 개의 텍스처가 필요하고 두 개의 픽셀 버퍼를 전달해야 함을 의미합니다. I는 현재 다음과 같이 비디오 화소를 통과하고 :
glGenTextures(1, &textures[0]);
//target, texture
glBindTexture(GL_TEXTURE_2D, textures[0]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_BGRA, GL_UNSIGNED_BYTE, buffer);
I는 다음 화상으로부터 제 2 버퍼 텍스처 [1]에이 프로세스를 반복 할 것인가? 그렇다면 GL_TEXTURE0와 GL_TEXTURE1을 바인딩합니까? ... 내 쉐이더가 이렇게 생겼을 까?
uniform sampler2D videoData;
uniform sampler2D imageData;
나는 쉐이더에서 오전하면? 아무리 노력해도 이미지와 비디오가 항상 양쪽 모두에서 비디오 데이터가되는 것처럼 보입니다.
많은 질문이 여기에 통합되어 죄송합니다. 많은 가정을 지우고 계속 진행하고 싶습니다. 질문을 명확히하기 위해 설명 된 프로세스에서 스틸 이미지의 픽셀을 추가하려면 어떻게해야합니까? (이해하기 쉬운 "샘플 코드 또는 힌트의 모든 유형"을 이해하기 쉽습니다).
설명해 주셔서 감사합니다, Brad. 여러분의 경험을 공유하기 위해 노력한 모든 노력에 감사드립니다. 나는 여기에 당신의 다른 답변을 많이 읽었으며 이전 예제에서 많은 것을 얻었습니다. 나는 당신의 오픈 소스 프레임 워크 (iPhone에서 OpenGL을 할 때 놓치기 힘들다)를 알고있다. 아마도 나는 그것을 미래에 사용 하겠지만, 지금은 그것을 배우려하고있다. 나는이 대답을 받아 들일 것이고 내일까지 계속 될 것이다. – BlueVoodoo
@BluVoodoo - 그 프레임 워크를 그 자체로 참조로 만들려고 했으므로 배운 내용을 통합했습니다.이 문제를 해결하려고한다면 샘플 코드를 작성하는 것이 좋지 않습니다. 당신이 묘사 한 바를 토대로, 하나의 균일 한 세트를 만든 것처럼 들리지만, 하나의 텍스처 유닛을 각각의 유니폼 대신에 두 유니폼에 묶는 것이 좋습니다. –
네, 방금 작동했습니다. 내 문제는 glUniform1() 호출에있었습니다. – BlueVoodoo