이건 블로그 보다 위키에 정리 하는게 나으려나?
점
glBegin(GL_POINTS)
glPointSize()
glGetFloatv(GL_POINT_SIZE_RANGE,..)
glGetFloatv(GL_POINT_SIZE_GRANULARITY,..) // 낱알 모양, 입자의 형상
glEnd()
선
glBegin(GL_LINES)
glLineWidth(GLFloat value)
glGetFloatv(GL_LINE_WIDTH_RANGE,..)
glGetFloatv(GL_LINE_WIDTH_GRANULARITY,..) // 낱알 모양, 입자의 형상
glEnd()
glBegin(GL_LINE_STRIP)
glBegin(GL_LINE_STIPPLE)
glLineStipple(GLint factor, GLushort pattern) // factor : 픽셀 단위 길이, pattern : 선의 형상
glEnd()
glBegin(GL_LINE_LOOP)
삼각형
glEnable(GL_CULL_FACE)
glDisable(GL_CULL_FACE)
glShadeModel(GL_FLAT) // GL_SMOOTH
glBegin(GL_TRIANGLES)
glBegin(GL_TRIANGLE_STRIP)
glBegin(GL_TRIANGLE_FAN)
glFrontFace(GL_CW)
glFrontFace(GL_CCW)
glEnd()
glEnable(GL_DEPTH_TEST)
glDepthMask(GL_FALSE) // GL_TRUE
glClearDepth(GLclampd value)
stipple (점묘법)
1bit color bitmap으로 선에 패턴을 그리거나 폴리곤에 32x32 사이즈의 패턴을 입힐 수 있으나
텍스쳐와는 다르게 rotate 되지 않는 특성을 지님(반대로 생각하면 선에 패턴을 그어 두면 줌 배율 상관없이 선 크기가 고정된다?)
scissor
win32api에서 갱신영역 지정해서 cpu 조금 먹게 하는 것과 비슷한 기법
직사각형 식으로 x,y,w,h 로만 지정이 가능
stencil
스텐실 마스크를 통해서 원하는 위치만을 렌더링 할 수 있다고 하는데 좀 많이 복잡함
glutInitDisplayMode(GLUT_STENCIL)
glEnable(GL_STENCIL_TEST)
glStencilFunc()
glClear(GL_STENCIL_BUFFER_BIT)
glClearStencil(GLint s)
glStencilOp(fail, z-fail, z-succes)
/*
GL_KEEP - 보존
GL_ZERO - 0으로
GL_REPLACE - glStencilFunc() 지정값으로 대체
GL_INCR - 증가
GL_DECR - 감소
GL_INVERT - 반전
GL_INCR_WRAP - 조건에 의해 증가
GL_DECR_WRAP - 조건에 의해 감소
*/
'Programming > openGL' 카테고리의 다른 글
opengl superbible 3rd 리눅스 빌드 패키지 (0) | 2020.04.08 |
---|---|
opengl super bible 3rd - 4,5 chapter (0) | 2020.04.06 |
glEnable(), glPushAttrib() (0) | 2020.04.04 |
openGL superbible 3rd ed. 읽기 시작 (0) | 2020.04.03 |
gluPerspective / gluLookat 소스코드 (0) | 2019.06.01 |