기본 출력 객체들의 속성

코린이·2023년 10월 17일
1

컴퓨터 그래픽스

목록 보기
3/3
post-thumbnail

이번 시간에 학습할 내용

기본 출력 객체(점, 선, 다각형)들의 속성

  • 색상, 크기, 두께, 채우기 스타일, 채우기 패턴 등
  • 래스터화 기법(다각형 채우기)
  • 관련된 OpenGL 함수들

1. OpenGl의 속성(상태 변수)

  1. opengl은 속성 값을 상태 변수(state variable)로 관리.
  2. 설정된 속성 값은 새로운 값이 설정되기 전까지 변하지 않음.
  3. opengl은 속성 값은 설정(변경)을 위한 함수를 제공.


glBegin(GL_POINTS);
{
   glColor3f(1.0f, 0.0f, 0.0f);
   glVertex2iv(p1);

   glColor3f(0.0f, 0.0f, 1.0f);  
   glVertex2iv(p2);
   glVertex2iv(p3);
}
glEnd();

코드와 그림과 같이 2번 특징으로 인해 새로운 값을 설정하기 전까지 점의 색이 변하지 않음.

2. OpenGl의 함수

1. 색상 함수

  • 색상 버퍼를 초기화할 색을 지정하는 함수
glClearColor(red, green, blue, alpha)
  • 색상 버퍼를 초기화하는 함수
glClear(GL_COLOR_BUFFER_BIT)
  • 색상 함수의 예시

2. 색상 블렌딩 함수

  • 색상 블렌딩 활성/비활성 함수
glEnable(GL_BLEND)/glDisable(GL_BLEND)
  • 블렌딩 상수(알파) 지정 함수
glColor4f(red, green, bleu, alpha)

❗ alpha - 투명도 -> 0(투명) ~ 1(불투명)

  • 알파 블렌딩 매커니즘
  • 블랜딩 함수의 예시

3. 정점 속성 함수

  • 크기 지정 함수
glPointSize(size)
  • 정점 속성 함수의 예시

4. 선 속성 함수

  • 선 두께 지정 함수
glLineWidth(width)
  • 선 스타일 활성/비활성 함수
glEnable(GL_LINE_STIPPLE)/glDisable(GL_LINE_STIPPLE)
  • 선 스타일 지정 함수
glLineStipple(repeat, pattern)
  • 선 스타일 지정 함수의 예시
glLineStipple(1, 0xF0F0)

❗ 디폴트 패턴: 0xFFFF (1111/1111/1111/1111) => 1: on, 0: off
따라서 위의 예시 결과 -> - - - - - : 점선(dashed line)

5. 다각형 속성 함수

  • 채우기 스타일 지정 함수
glPolygonMode(face, fill style)

❗ face: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK
fill style: GL_POINT, GL_LINE, GL_FILL

  • 채우기 패턴 활성/비활성 함수
Enable(GL_PLOYGON_STIPPLE)/glDisable(GL_PLOYGON_STIPPLE) 
  • 채우기 패턴 지정 함수
glPolygonStipple(fill_pattern)
  • 채우기 패턴 지정 함수의 예시

6. 안티앨리어싱 함수

  • 안티앨리어싱 활성화/비활성화 함수
glEnable(GL_BLEND)/glDisable(GL_BLEND)
  • 안티앨리어싱 될 대상을 지정하는 함수
glEnable(primitiveType)

❗ primitiveType: GL_POINT_SMOOTH, GL_LINE_SMOOTH, GL_POLYGON_SMOOTH

  • 안티앨리어싱 함수의 예시
profile
코린이

0개의 댓글