2011-01-12 2 views
3

OpenGL을 사용하여 텍스트를 그리는 중에 실제로 글자를 그리거나 빌드하는 방법을 알 수 없었습니다. "Hello World"를 그리려면 각 문자의 질감을 만들어 모두 그려야하지만 정확한 문자 집합을 "당겨"한 번에 한 번만 그리는 더 쉬운 방법이 있어야한다는 것을 알고 있습니다. . 모든 별도의 텍스처를 가져 와서 꼭지점 배열에 추가 한 다음 단 하나의 호출만으로 꼭지점 배열을 그리면 비효율적 인 것으로 보입니다. 이 특정 섹션을 다루는 자습서는 무엇입니까?Android OpenGL 그리기 텍스트

+0

2D 문자열을 원하십니까? 아니면 실제로 3D 문자 여야합니까? –

+0

그냥 2D입니다. 2D로 OpenGL을 사용하기 전까지는 3D를 시작하지 않을 계획입니다. – semajhan

답변

2

3D 공간의 특정 지점에 2D 문자 만 표시한다고 가정 할 때 일반적인 방법은 설명하는 방법입니다. 사실 저는 전체 문자열에 대해 단일 비트 맵을 만든 다음 비트 맵을 장면에 그립니다. 실제로 비효율적 인 것은 아닙니다. 실제로 텍스트의 비트 맵을 캐시 할 수 있고 장면을 그릴 때마다 대신 한 번만 계산하면되므로 매우 효율적입니다. 그것은 단순한 것을위한 많은 코드처럼 보이지만, OpenGL은 종종 그렇게합니다.

+0

그것은이 게시물과 비슷한 것이겠습니까 : http://stackoverflow.com/questions/3075700/draw-text-in-iphone-opengl-es-using-just-objective-c – semajhan

+2

사실. 내장 함수를 사용하여 2D에서 텍스트를 비트 맵으로 그리는 방법과 비트 맵을 GL 장면으로 그릴 것을 권장합니다. – DJClayworth

2

당신이 말하는 것을 수행하는 CBFG (Bitmap Font Generator) 용 Android 로더 및 렌더러를 작성했습니다.

로드하고 글꼴을 표시하기 위해 안드로이드 소스는 기본적으로 http://www.codehead.co.uk/cbfg

에서 모든 글꼴 상형 문자가 하나의 비트 맵과 문자에 배열되어 자신 만의 글꼴 파일을 만들 수 http://www.codehead.co.uk/cbfg/TexFont.java

도구에있다 필요한 문자를 표시 할 때마다 UV 코드를 변경하는 일련의 동일한 쿼드를 렌더링하여 그립니다.

희망이 있습니다.