2013-06-03 2 views
0

OpenGL에서 ImageViewer를 만들려고 노력해 왔습니다. 하지만 OpenGL에서 벡터/텍스처의 특정 부분을 숨기는 방법을 모르겠습니다.OpenGL ImageViewer

ImageViewer는 이미지가 전체 화면을 채우는 페이징이 활성화 된 UIScrollView의 정확한 사본이어야합니다.

UIScrollView의 깔끔한 점은 UIScrollView의 실제 프레임을 설정하고 콘텐츠 크기를 설정할 수 있기 때문에 이미지가 프레임 밖으로 미끄러 져 나오면 더 이상 이미지를 볼 수 없다는 것입니다.

내가 뭘해야할지 연구를 계속할 수 있도록 몇 가지 가이드 라인이 필요합니다.

답변

1

픽셀이 범위를 벗어 났을 때 픽셀이 보이지 않도록 프리젠 테이션 셰이더를 설정할 수 있습니다.

4 개의 정점 (왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래)의 위치와 텍스처의 위치를 ​​알고 있습니다. 그런 다음 윈도우의 최소 및 최대 x 및 y 크기를 포함하는 균일 한 vec4를 프래그먼트 셰이더에 업로드 할 수 있습니다. 그런 다음 픽셀이 해당 영역 내부 또는 외부에 있는지 계산합니다. 내부 : 실제 색상, 바깥 쪽 : gl_fragcolor = vec4 (1,1,1,0);

이 도움이 무엇입니까?

+0

솔루션을 직접 찾았지만 솔루션이 조금 다를지라도 해결할 수는 있지만, 나는 당신을지지했다. – WYS

0

해결책을 직접 찾았습니다.

전체 화면을 채우는 UIScrollView를 배치하고이 오프셋을 사용하여 텍스처 좌표를 이동합니다.

이것이 최적의 솔루션인지 잘 모르겠지만 성능 문제 등은 없습니다. 지금은 충분합니다.

더 좋은 해결책이 있으시면 언제든지 제안 해주십시오.

관련 문제