GLSL에서 부분적으로 겹치는 텍스처 두 개를 혼합하려고합니다. 멀티 텍스처링의 개념을 오해하고 있는지 궁금합니다. 텍스처가 완전히 겹치거나 두 부분이 겹치는 부분에만 섞이는 두 개의 오프셋 텍스처가있을 수 있습니까?GLSL 부분 겹침 텍스처
나는 다음과 같은 (마이너스 격자 선 및 텍스트)와 유사한 두 이미지가 : 최종 결과가 하나 개의 부드러운 이미지처럼 보일 것 있도록 Example image
가 이상적으로, 이미지의 중첩 부분이 잘 함께 혼합 것을 그 이 둘을 결합합니다. 예를 들어 겹치는 주황색 픽셀은 함께 혼합되거나 더 높은 강도를가집니다.
저는 GLSL을 처음 사용했으며이 기사에서는 을 사용하여 프래그먼트 셰이더를 사용하여 텍스처를 혼합했습니다 (상당히 표준).
나는 기사를 다음 @ 해요과 같이 각각의 질감을 설정 :
glUseProgramObjectARB(m_hProgramObject);
GLint nParamObj = glGetUniformLocationARB(m_hProgramObject, pParamName_i);
...
glActiveTexture(GL_TEXTURE0 + nTextureID_i);
glBindTexture(GL_TEXTURE_2D, nTextureID_i);
glUniform1iARB(nParamObj, nTextureID_i);
내가 각 텍스처를 결합 삼각형 스트립을 그립니다. 내 텍스처는 다음과 같이 생성됩니다 :
glBindTexture(GL_TEXTURE_2D, m_nTextureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
glTexImage2D(GL_TEXTURE_2D, 0, 4, nWidth, nHeight, 0, GL_RGBA,
GL_UNSIGNED_BYTE, pbyData);
이 프로세스는 합리적인 것처럼 보이거나 개념을 오해하고 있습니까? 이를 달성하는 방법에 대한 조언이나 조언이 있으십니까?
그것에 대해 생각한 후에 상황은 내가 만든 것처럼 간단하지 않습니다. 내가 실제로하려고하는 것은 두 개의 정사각형 텍스처를 겹치는 원 (삼각형 팬)으로 렌더링하는 것입니다. 블렌딩이 좋은 블렌딩 구성을 찾을 수는 없지만 이렇게하려면 분명한 방법입니다. 내 생각에 쉐이더는 두 개의 겹치는 반투명 이미지가 아닌 완전한 전체 알파 이미지를 더 많이 얻을 수있는 수단을 제공 할 수있었습니다. render-to-texture와 결합 된 쉐이더를 살펴 보겠습니다. – TheShiftingInt