2011-10-27 4 views
3

OpenGL을 한번도 해본 적이 없지만,이 특정 질문에 대한 구체적인 질문은 연습중인 AR 응용 프로그램에서 찾고 있습니다. .OpenGL에서 "텍스트로 종이 조각 만들기"(특별히 iOS 5)

사각형의 표면에 쓰여진 텍스트와 함께 "평면 직사각형"으로 앱을 만들고 싶습니다. 시각적으로, 나는 종이에 그 위에 쓰여진 텍스트가있는 선을 따라 뭔가를 상상하고있다. 앱이 시작될 때마다 텍스트가 다른 내용이됩니다 (텍스트는 plist 파일에서 가져옵니다).

사용자는 마치 앞면에 종이 조각이 매달려있는 것처럼 모든면에서 용지를 볼 수 있습니다.

OpenGL에서이 작업은 간단합니까? 어떻게 시작할 수 있니?

정말 끝나지 않은 질문에 사과드립니다.하지만 이런 종류의 일이 어떻게 이루어 졌는지 느끼고 싶었습니다.

Xcode 샘플 프로젝트의 OpenGL 템플릿 소스 코드를 보면 큰 정점 배열이 있음을 알 수 있습니다. 나는 "평평한"사각형을 만들기 위해 본질적으로 z 축을 제로 (zero)로 만들거나 제거해야한다고 생각합니다. 그리고 나서 평평한 직사각형의 표면에 부착 할 동적 인 텍스트 ... 나는 그걸하는 법을 모른다. ......

답변

6

이 질문은 모호하지 않게 대답하기가 어렵다. 일반적으로 이것은 사소한 것이지만 다시는 그렇지 않습니다.

"무언가가있는 평면 사각형"을 그리는 것은 얻을 수있는 것처럼 간단한 두 가지 API 호출입니다. 효율적인 방법으로 고품질의 OpenGL 에 텍스트를 그리는 것은 큰 사전 처리없이과 완전히 다른 이야기입니다.

"정상적인 시스템 지원"방식이 iOS에서 사용되는 방식으로 텍스트를 렌더링합니다 (어떤 특정 창을 그리는 것처럼이 구체적인 세부 사항은 알 수 없음). 비트 맵에 을 그립니다.이 아니라 화면에 표시됩니다. 이것은 거의 모든 OS가 적어도 10-15 년 동안 이것을 지원했음을 지원해야합니다. 그런 다음이 비트 맵을 텍스처로 변환하고 바인드 한 다음 OpenGL을 사용하여 사소한 플랫 쿼드를 그립니다 (4 개의 꼭지점이있는 버텍스 버퍼, 각 버텍스가 텍스처 좌표를 설정하고 두 개의 삼각형을 그립니다).

큰 장점은 설치된 시스템 글꼴 (또는 사용 가능한 글꼴)을 사용한다는 것이고 비트 맵 글꼴을 생성 할 필요가 없으며 힌팅과 같은 추악한 것을 생각할 필요가 없다는 것입니다 적절한 간격을 두어 다양한 텍스트 스타일 등을 혼합하는 것이 훨씬 쉽습니다. OpenGL에는 텍스트에 대한 지원 기능이 내장되어 있습니다.하지만 그다지 효율적이지는 않습니다. 텍스트가 매 밀리 초마다 바뀌지 않는다면, 운영 체제가 제공하는 표준 렌더러를 사용하여 텍스트를 렌더링하는 것이 가장 좋습니다 (예, 아마 하드웨어 가속화가 아닌, 사용자가 텍스트를 읽어야하므로, 그것은 매 밀리 초마다 변하지 않을 것입니다).

이제는 "종이 조각"이 구부러지고 뒤틀려 야하거나 평면 직사각형이 아닌 페이지 필 효과를내는 것이 더 복잡해집니다. 이 경우 당신은 그것을 소리내어 쓰는 것보다 어렵게 할 수 있습니다. 모든 테셀레이션이 모든 굴곡/꼬임에 대해 최적으로 보이는 것은 아니며 최적의 (최소값으로 읽음) 개수의 정점이 있습니다. 이

GPU의 보석 또는 GPU 프로 책 중 하나 "페이지 껍질"및 다듬기에 관한 기사가있다

이 나를 검색 할 수 ...

: 안드레아스 Bizzotto : "A 쉐이더 기반 전자 책 리더 - 페이지 필링 효과 ", GPU Pro2 pp.278-299

사본을 얻을 수 있거나 Google 도서 또는 다른 곳에서 찾을 수있을만큼 운이 좋을 수도 있습니다.