2013-11-23 4 views
0

메쉬에서 변형 된 아핀 변환 문제와 잘못된 텍스처 좌표 보간 문제가 있습니다. 나는 고정 기능 파이프 라인에서 방금 folloing의 glHint을 설정할 수 있다고 생각 :OpenGL에서 원근감있는 텍스처 매핑을 위해 4D 텍스처 좌표가 필요합니까?

glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 

그러나이가되지 않는 것 같다 문서를 찾고 있습니다. 그래서이 작업을 수행하는 "단순한"솔루션이 없다고 생각합니다. 모든 텍스처 좌표를 4D 벡터로 지정해야합니까? 또한 2D 텍스처 좌표 만 지정하는 메쉬를로드하려면 수동으로 쿼드를 감지하고이를 수정해야한다는 의미입니까?

아래 이미지는 4 개의 슬라이스로 만든 원환 체에 내 문제를 표시합니다. Example from my program, a torus made out of 4 slices

또한 Nicol Bolas here에서 제안한대로 내 셰이더에서 보간 한정자를 사용하려고했습니다.

어쨌든 나는 부드럽게 기본 설정입니다 믿습니다. 이것은 내 결과에 영향을 미치지 않았습니다.

원근법 정확한 텍스처 매핑을 수행하는 방법에 대한 질문이 여기에 여러 번 나와 있습니다. 하지만 더 쉬운 해결책이 없는지 묻고 있습니다. 고정 기능 파이프 라인이 GL_QUADS 때문에 왜 이런 일을 할 수 있었는지에 대한 내 개인적인 결론이 있습니다. 그리고 4D 텍스처 코디네이트를 지정하는 것이 핵심 프로파일에서 유일한 해결책이라는 느낌이 들었습니다. 내가 무엇을 glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);에 대해 잘못 알고 있었다

Getting to know the Q texture coordinate...

perspective-correct-texturing-of-trapezoid-in-opengl-es-2-0

correct-glsl-affine-texture-mapping

답변

0

고정에 사용되었다 : 여기

는 4D 작업 좌표 방법을 설명하는 주제에 대한 몇 가지 링크입니다 기능 파이프 라인. 나는이 힌트가 우리가 위에서 보는 오류를 막아야한다고 들었다. 이후 고정 함수 파이프 라인에서 직접 테스트 한 결과 힌트가 꼭지점 변환의 원근감 정확성을 제어한다는 것이 밝혀졌습니다.

위의 문제를 해결하려면 투영 텍스처 좌표를 제공하는 것 이외의 다른 해결책이 없습니다. 이는 내가 이야기 한 다른 SO 질문의 대부분을 해결하는 솔루션입니다.

나는 reddit에 동일한 질문을 올렸고 만족스러운 explenation을 얻었습니다. 출처 : http://www.reddit.com/r/opengl/comments/1ral2k/perspective_correct_texture_mapping/cdlhw04