🔺
GLUT Tutorials
  • Introduction
  • GLUT 설정
  • GLUT 초기화
  • 윈도우 크기 변화에 대응하기
  • 애니메이션
  • 키보드입력
  • 키 입력 예제 : 세상을 둘러 보아요~ :)
  • 키 입력 예제 : 세상을 둘러 보아요~ 2 탄:)
  • 마우스처리
  • 팝업메뉴의 소개
  • 서브(sub, 하위)메뉴
  • 메뉴 수정하기
  • 메뉴 교체하기
  • 비트맵폰트
  • 비트맵폰트와 직교투영
  • 외곽선 폰트
  • 초당프레임수(FPS) 계산하기
  • 게임모드에 대해서
  • 보조창(subwindow)에 대해서
  • 보조창의 크기변환 처리
  • 여러 보조창에 렌더링하기
Powered by GitBook
On this page

Was this helpful?

비트맵폰트

비트맵폰트는 2D 폰트를 말합니다. 비트맵폰트를 3D 상에서 표현하지만 굵기가 없고 회전 및 크기변환을 할 수 없습니다. 오로지 이동만 할 수 있습니다. 그리고 이 폰트는 빌보드처럼 항상 관측자 쪽으로 향하고 있습니다. 이 점이 안 좋은 것 같지만 다르게 생각해보면 폰트의 방향에 대해서 신경 쓰지 않아도 되는 것입니다. 폰트는 항상 관측자 쪽으로 향해있으니까요.

이번 장에서는 비트맵형식의 폰트를 화면에 출력하는 GLUT 함수에 대해서 알아보겠습니다. 우선, glutBitmapCharacter 함수가 필요합니다. 다음은 이 함수의 설명입니다.

void glutBitmapCharacter(void *font, int character) 

인자 설명:
font - 사용할 폰트의 이름입니다.(아래에 사용가능한 값들이 있습니다.)
character - 렌더링할 대상입니다. 문자, 기호, 숫자 등등...

font 인자에 설정할 수 있는 값입니다.:

  • GLUT_BITMAP_8_BY_13

  • GLUT_BITMAP_9_BY_15

  • GLUT_BITMAP_TIMES_ROMAN_10

  • GLUT_BITMAP_TIMES_ROMAN_24

  • GLUT_BITMAP_HELVETICA_10

  • GLUT_BITMAP_HELVETICA_12

  • GLUT_BITMAP_HELVETICA_18

위의 폰트이름만 봐도 어떤 폰트가 쓰일 것인지 어느 정도 알 수 있겠지만 팝업메뉴를 통해서 모두 살펴볼 수 있도록 예제프로그램을 만들었으니 이 문서를 다 읽고 나서 살펴보세요.

다음 줄의 예제는 glutBitmapCharacter 함수를 호출해서 현재 레스터 위치에 한 개의 문자를 출력하는 것입니다.

glutBitmapCharacter(GLUT_HELVETICA_18,'3');

다음은 레즈터 위치에 관한 것입니다. 레스터 위치는 OpenGL 라이브러리군 중 glRasterPos 함수로 설정할 수 있습니다. 다음은 이 함수의 설명입니다.:

void glRasterPos2f(float x, float y);
void glRasterPos3f(float x, float y, float z); 

인자 설명:
x, y, z - 문자열이 출력될 지역 좌표값입니다.

glutBitmapCharacter 함수는 설정된 위치에 문자를 렌더링하고 현재 레스터 위치는 문자의 너비만큼 이동됩니다. 그래서 문자열을 렌더링하면, glutBitmapCharacter 함수가 연속해서 호출되어 원하는 출력을 만들어 냅니다. 다음 함수는 지정된 레스터 위치에서 시작하여 하나의 문자열을 출력하는 함수입니다.

void renderBitmapCharacter(float x, float y, float z, void *font, char *string)
{ 
    char *c;
    glRasterPos3f(x, y,z);
    for (c=string; *c != '\0'; c++)
    {
        glutBitmapCharacter(font, *c);
    }
}
Previous메뉴 교체하기Next비트맵폰트와 직교투영

Last updated 5 years ago

Was this helpful?

을 받아서 실행해 보세요. 이 프로젝트는 "세상을 둘러 보아요~ 2 탄" 의 예제를 뼈대로 이용했습니다. 달라진 점은 렌더링을 처리하는 함수에서 renderBitmapCharacter 함수를 호출하는 것과 폰트를 선택을 위해서 팝업메뉴를 제공하는 것입니다.

Visual C 프로젝트 파일