2012-01-30 4 views
2

OpenGL ES 2.0에서 텍스처가 매핑 된 복잡한 모양 (다각형)이 GL_REPEAT이고 다각형의 가장자리를 형성하는 모든 점이있는 경우, 가장자리를 배경과 섞을 수있는 무언가를 할 수 있습니까?OpenGL ES 2.0에서 질감이있는 다각형의 블렌드 (가장자리)

나는 모서리와 모서리 주위에 들쭉날쭉 한 모양이 보이지 않도록 모서리를 부드럽게 만드는 것을 의미합니다.

답변

2

글쎄, 내가 무엇을 시도하는지 알지는 못했지만 텍스처에 알파 블렌딩을 사용하여 다각형의 불투명도를 제어하는 ​​알파 채널을 제공 할 수 있으므로 가장자리 근처의 알파 값이 감소합니다 다각형의 물론이 경우 텍스처는 폴리곤과 강하게 결합되어 전체 폴리곤 전체에 걸쳐 여러 번 반복되는 텍스처에서는 작동하지 않습니다. 그러나이 경우 알파 채널 만 포함하고 다각형에 다르게 매핑되는 두 번째 텍스처를 사용할 수 있습니다 (다른 텍스처 좌표 사용).

내부 꼭지점 및 일부 경계 꼭지점이있는 다각형 테셀레이션을 더 미세하게 만들 때 달성하기 쉬운 또 다른 옵션은 각 꼭지점에 정점의 알파 값이 포함 된 추가 속성을 제공하는 것입니다. 따라서 내부 정점에 1의 알파 (완전히 불투명)를 지정하고 경계 정점에는 0의 알파 (완전히 투명)를 지정합니다. 그런 다음이 값을 vertex shader에서 fragment shader로 varying 변수로 지정하면 내부에서 경계까지 삼각형에 알파 (또는 불투명도)가 삽입되어 불투명에서 투명으로 부드럽게 전환됩니다. 선형으로 보간 됨, 이는 귀하의 경우에 충분할 수 있음). 프래그먼트 셰이더에서는 알파 블렌딩에 사용할 출력 색상의 알파로 전달합니다.

이들은 단지 일반적인 아이디어로, 쉐이더가 작동하는 방식과 알파 블렌딩을 사용하는 방법을 알고 있다고 가정합니다. 이 답변으로는 충분하지 않은 경우 더 구체적인 질문을하십시오.

+0

고마워 크리스천, 너는 아주 잘 이해했다. 나는 다각형을 모자이크로 만들었다. 나는 네가 말했듯이 모든 것을 위해 알파 제로를 설정했다. 잘 작동합니다. 저는 이제 경계 정점에 광선을 추가하려고합니다. 예를 들어 가장자리에 흰색 선을 긋고 외부에 약간의 빛을내는 것과 같습니다. 당신이 어쩌면 나에게이 일을하는 방법에 대한 힌트를 줄 수 있다면 그것은 나에게 많은 도움이 될 것이다. – Calin

+1

@Calin 그건 그럴만 한 가치가 있습니다. 이것은 기본적으로 가장자리를 별도로 검은 색 화면 버퍼로 렌더링하고,이 오프 스크린 버퍼를 흐리게 처리하여 (근처의 픽셀에 가장자리를 "빛나게"만든 다음)이 오프 스크린 버퍼를 다시 추가하는 것입니다 (덧셈 블렌딩 사용) 정상적인 렌더링으로. –

+0

당신이 제안한대로 여기에 대한 새로운 질문 [링크] (http://stackoverflow.com/questions/9130567/make-the-edges-of-a-textured-polygon-glow-in-opengl-es- 2-0) 고마워! – Calin

관련 문제