HOME>디지털 실무>그래픽 프로그래밍>OPENGL (오픈 지엘)
ONLINE CLASS

OPENGL (오픈 지엘)

?

수강 전 꼭 확인하세요

수강 전 자주 묻는 내용을 간단히 안내드립니다.

Q초보자도 교재 없이 수강 가능한가요? 프로그램 정보는?
A

네, 영상과 실습자료로 쉽게 학습할 수 있습니다. 알지오는 원격평생교육원으로 프로그램 관련 정보는 제공하지 않습니다.

기업이 선택한 신뢰 강의

검증된 커리큘럼과 전문 강사진으로 높은 만족도를 제공합니다.

자세히 보기  >
수강료 일부는 사회환원에 사용됩니다.

작은 나눔이 더 나은 내일을 만듭니다.

자세히 보기  >
REAL REVIEW

수강생 리얼후기!

실제 수강생의 학습 경험을 확인해 보세요.

수강후기를 불러오는 중입니다.

OPENGL (오픈 지엘) OPENGL (오픈 지엘)
  • OPENGL (오픈 지엘)

  • 강의구성
  • (20강) 전체 : 12시간 45분|평균 : 38분15초
  • 이용기간/강사
  • 2개월
    알지오 R&D [IT]
  • 증빙가능
  • 수료증, 수강증, 학습진도
  • 수강료
  • 330,000할인165,000
  • 알지오 패키지
  • "5개월" 혜택!
?

수강 전 꼭 확인하세요

수강 전 자주 묻는 내용을 간단히 안내드립니다.

Q 초보자도 교재 없이 수강 가능한가요? 프로그램 정보는?
A

네, 영상과 실습자료로 쉽게 학습할 수 있습니다. 알지오는 원격평생교육원으로 프로그램 관련 정보는 제공하지 않습니다.

  • 01.37분 화면좌표와 뷰포트
    viewport, ortho를 통한 화면좌표계를 알아보고 기본적인 그리기 함수들에 대한 실습
    오픈지엘 헤더파일 불러오기/초기화 함수들/윈도우 출력 함수/POLYGON 형식으로 사각형 그리기/Viewport/Viewport 값 수정 후 확인/Viewport 함수를 설정하지 않은 경우/ortho/matrixMode 함수/loadIdentity/ortho 함수의 초기화면/ortho 값 수정 후 확인/원래 뷰포트와 새 뷰포트 일치 시 왜곡 피하기/결과 확인/기본적인 그리기 함수/POLYGON/LINES/LINE STRIP/LINE LOOP/TRIANGLES/정점 다르게 설정하기/TRIANGLES STRIP/TRIANGLE FAN/QUADS/코드 가져오기/QUADS STRIP/실습/화면 설정 바꾸기/ortho 함수 설정 변경/코드 그리기/라인 4등분/LetsDraw 함수 입력/헤더파일 추가/직선 그리기/함수 불러오기/삼각형 그리기/사각형 그리기/오각형 그리기/결과 확인/srand/컬러값 랜덤으로 띄워주기/구조체 호출/지정해준 값 넣기/결과 확인/타이머 콜백 함수 응용/타이머 함수 입력/결과 확인
  • 02.31분 마우스와 키보드 콜백함수
    마우스와 키보드 콜백함수를 이용한 사각형 튀기기 실습
    마우스 콜백 함수/마우스 콜백 함수의 원형/마우스를 클릭했을때 사각형 그리기/Mouse 함수/마우스 콜백 함수에 적용하기/그려질 사각형에 대한 변수 설정/마우스 클릭이 발생했을때/마우스 좌표값 설정/glutPostRedisplay/사각형 그리기/결과 확인/여러개의 사각형 그리기/사각형 갯수 정하기/mcount 변수 생성/mcount 값 설정/for 문 생성/결과 확인/색깔있는 사각형 그리기/결과 확인/마우스 콜백 함수와 타이머 콜백 함수 응용/움직이는 사각형 그리기/Timer 함수 생성/콜백 함수 불러오기/speed 변수 생성/사각형이 움직이는 코드 생성/glutPostRedisplay/Timer 함수 불러오기/결과 확인/if 문을 활용해서 제약 설정/코드의 문제점/각각 속도값 설정하기/속도값을 배열로 설정/결과 확인/키보드 콜백 함수/키보드 콜백 함수 원형/이벤트 실행 함수 생성/함수 작성/사각형을 띄운 후 키보드를 이용해 상하좌우로 이동하기/전역변수 선언/컬러값 지정 후 사각형 그리기/키 값을 가져와서 키 값이 눌러질때마다 수행되는 함수 작성/swicth case 문/break/glutPostRedisplay/결과 확인/윈도우 종료 기능(exit)/마우스 콜백 함수와 키보드 콜백 함수 응용/속도 조절/키보드 함수 생성/키보드 콜백 함수 불러오기/속도 값 설정하기/a값 속도 작성(if 문)/z값 속도 작성(if 문)/결과 확인/메뉴 골백 함수/정수 값 변수 선언/메뉴 콜백 함수 등록/glutAddMenuEntry/사각형 그리기 메뉴/타이머 메뉴/종료 메뉴/glutAttachMenu(오른쪽 마우스 버튼)/if 문 작성/[25;25] else if/startTimer 설정/결과 확인/메뉴 안에 서브메뉴 넣기/변수 설정/서브메뉴 불러오기(glutCreateMenu)/glutAddMenuEntry/MenuFuntion 작성/결과 확인
  • 03.36분 3D좌표 part1
    2D좌표에서 3D좌표계로의 변환
    3d 좌표상의 open GL/좌표계/z축-3차원 공간의 좌표/모델 변환/뷰포트 변환/glMatrixMode 함수/GL_MODELVIEW/glLoadIdentity 함수/glMatrixMode 한번 더 설정/glOrtho 함수/가운데를 원점으로 하는 좌표계로 변환/범위 설정/if문/z축 값 설정/else문/drawScene 함수 안에 3차원 객체 올리기/3d 모델 코드/6개의 면을 가진 정육면체/모델링 변환/이동-glTranslatef/회전-glRotatef/확대/축소-glScalef/정육면체 확인/3d객체 확인/행렬스택/함수 원형/glPushMatrix 함수/glPopMatrix 함수/확인/다른 객체 확인/겹쳐있는 객체 확인/glutSolidCube/회전 값 입력/glutWireCube/glutSolidSphere/glutWireSphere/glutSolidTorus/glutWireTorus/glutSolidCone/glutWireCone/회전 값 입력하여 원뿔 확인/원뿔-z축이 원점/glutWireTeapot/회전 값 입력하여 주전자 확인/Teapot모델을 이용해 콜백함수 실습/glutCreateMenu/glutAttachMenu/glutAddMenuEntry/MenuFunction함수 선언/glTranslatef-x축으로 10만큼 이동/이동 서브메뉴/메인메뉴/y축,z축 이동/회전 서브메뉴/glRotatef-x,y,z축 회전/이동과 회전 확인/확대 서브메뉴/glScalef-x,y,z축 확대/초기화 추가/이동,회전,초기화 확인
  • 04.30분 3D좌표 part2
    키보드 콜백함수를 이용한 scale, 직교투영과 원근투영
    서브메뉴3 확대/glScalef-x,y,z축 확대/확대 확인/초기화/축소/축소 서브메뉴/glScalef-x,y,z축 축소/축소 확인/초기화/키보드 콜백함수/KeyBoard함수 세팅/키보드 콜백함수를 이용해 확대,축소,이동,회전/3가지 변수 생성/glTranslatef-변수 입력/switch 조건문/case문-대/소문자 구분/glutPostRedisplay 확인/z축만 변화 없음/변환 행렬의 문제/메뉴 콜백함수 실습 확인/3차원 변환/원근투영/gluPerspective 함수/입력 값/glOrtho함수와 따로 사용/관측 변환/gluLookAt 함수/입력 값/3차원 모델 확인/z축 방향 변화 확인/glRotatef/case문/회전 확인/자연스러운 원근투영 3차원 변환/glScalef/변수 값 초기화 설정/case문/확대/축소 확인/마우스와 타이머 콜백함수/Mouse 함수/TimerFunc 함수/마우스와 타이머 콜백함수 호출/마우스 if문/glutPostRedisplay/타이머 glutPostRedisplay 호출/glutTimerFunc/변수 선언/if문/마우스 오른쪽 버튼 클릭-타이머 호출/TimerFunc-glRotatef/타이머 확인/TimerFunc-glTranslatef/x,y,z축 값 입력/cos/sin값 입력/타이머 확인/angle값 변경/타이머 확인
  • 05.30분 후면제거, 은면제거
    공과 주전자를 이용한 후면제거와 은면제거 실습
    후면제거/은면제거/벡터 개념/법선 벡터/원 생성/후면-물체의 눈에 보이지 않는 부분/솔리드로 확인/후면제거-효율성/후면제거 사용방법/시점 벡터/법선 벡터/후면제거에 사용되는 함수/glEnable 함수/glCullFace 함수/glDisable 함수/후면처리 한 상태 확인/은면제거/은면-다른면에 가려서 보이지 않는 부분/glutSolidTeapot/확인/은면제거에 가장 필요한 것-3차원 좌표상의 z축좌표/깊이 측정/glutnitDisplayMode-GLUT_DEPTH 설정/glEnable-GL_DEPTH_TEST/깊이 측정 비활성화/깊이 buffer 초기화/glClear-GL_DEPTH_BUFFER_BIT/glClearDepth/확인/후면제거 후 은면제거/육면체 생성/gluLookAt 값 변경/쉐딩/glShadeModel 함수/smooth/flat/KeyBoard 세팅/TimerFunc/bool값 입력/case문/glutPostRedisplay 호출/확인/키보드를 이용해 큐브 자동회전 만들기/변수값 설정/확인/주석 제거 후 확인/주석 걸고 확인/후면제거와 은면제거 확인/shadig 적용/확인
  • 06.28분 조명
    ambient, diffuse, specular 조명 설정과 재질에 대한 실습
    조명/조명활성화 함수-glEnable(GL_LIGHTING)/glutSolidSphere/조명 정의/3가지의 조명/AmbientLight(주변조명)/일정한 방향이 존재 하지않는 조명/glLightfv 함수/8개의 값/AmbientLight 배열 값/DiffuseLight(확산조명)/흩어지는 분산조명/glLightfv 함수/SpecularLight(반사조명)/하이라이트/glLightfv 함수/조명 위치 설정/LightPosition 배열 값/조명 활성화/조명 위치,방향 자유롭게 조절/재질 설정/glMaterialfv 함수/재질을 적용할 곳/재질의 속성 설정/재질 세팅/shinness 빛의 양 조절/확인/조명의 색에 따라 색이 변화/컬러 트레킹 설정/확인/매끄러운 3차원 구모형 확인/키보드를 이용한 조명 변화/KeyBoard세팅/조명 변수/ambientR/ambientG/ambientB 값/diffuseR/diffuseG/diffuseB 값/specularR/specularG/specularB 값/변수로 변경/switch/case/break/glutPostRedisplay 설정/조명 변화 확인/초기화/ambient와 diffuse조명의 차이
  • 07.34분 [실습] 태양계 만들기
    지금까지 배운것들을 이용하여 간단한 태양계 만들기 실습 진행
    기본적인 뷰 세팅/SetUP 함수/화면 세팅에 관련된 부분들 가져오기/drawScene 내부의 SetUp/double buffering/부드러운 화면 효과/double buffering 사용방법/glutSwapBuffers 함수/3차원 좌표 축 그리기/행렬스택 세팅/3d 선 긋기/x축 그리기/y축 그리기/z축 그리기/확인/축을 보고 카메라 세팅 어떻게 되어있는지 확인/Draw3DLine 함수/태양계 실습/행렬스택의 관계/행렬스택 안에 glPushMatrix/glPopMatrix/빨간색 구 태양으로 설정/수성은 녹색으로 설정/금성/지구/gluLookAt 값 변경/태양계 확인/태양을 중심으로 수성,금성,지구 rotate/변수 설정/rotate가 timer를 통해 계속 돌 수 있도록 설정/메인함수에 glutTimerFunc 호출/glutPostRedisplay 설정/wRotate값 계속 증가/동일하게 rotate하는 행성들을 따로 rotate하게 설정/변수 추가/행성의 공전,자전 주기를 행성의 이름을따서 만들기/공전 Rev/자전 Rot/수성 행렬스택 안에 입력/공전과 자전의 차이/rotate와 translate 순서/금성 세팅/지구 세팅/타이머/타이머 여러개 생성/공전 주기/확인/달 만들기/행렬스택 따로 생성/달의 공전,자전 설정/확인/달 타이머 생성/달 공전 값 증가/확인/조명 세팅 변경/확인/자전 타이머/수성 자전 주기 먼저 설정/공전,자전 확인
  • 08.33분 텍스쳐 매핑 part1
    텍스쳐 매핑실습
    텍스쳐 매핑/사전작업 5가지/텍스쳐 기능 활성화/glEnable 함수 사용/비활성화 glDisable/텍스쳐 영상/glTexImage1D 함수 사용/target/level/internalformat/width/border/format/type/pixel/변수 지정/glTexImage2D/높이값/텍스쳐 매핑 방법/수동 텍스쳐 매핑/텍스쳐의 위치를 설정하는 함수 glTexCoord2f/텍스쳐 좌표 따로 설정/s는 수평방향의 이미지 좌표 t는 수직방향의 이미지 좌표/자동 텍스쳐 매핑/glTexGenf 함수/텍스쳐 파라미터 명시/glTexParameterf 함수/화소의 텍스쳐 선택 방법을 결정하는GL_TEXTURE_MAG_FILTER 값/래핑 GL_TEXTURE_WRAP_S/래핑 GL_REPEAT/GL_CLAMP/화소 GL_NEAREST/GL_LINEAR/텍스쳐 환경/glTexEnvf 함수 사용/GL_DECAL/GL_REPLACE/GL_MODULATE/GL_BLEND/코드에 비트맵 파일 가져오기/LoadBitmap 함수/텍스쳐 변수 설정/비트맵 사이즈 설정/if문/비트맵 파일 헤더/비트맵 파일인지 확인/비트맵 인포/비트맵 이미지 데이터 넣을 메모리/비트맵 인포 헤더 읽어오기/비트맵 크기 설정/비트맵 크기만큼 메모리 할당/비트맵 데이터를 비트에 저장/비트맵 파일 불러오기 과정 완료/모델에 텍스쳐를 입히는 과정 순서 코드/glGenTextures 함수/glBindTexture 함수/m_bitmap 변수 지정/텍스쳐 이미지 정의 glTexImage2D/glTexParameteri/glTexEnvi/glEnable/glBindTexture/glColor3f/glVertex3f/정점 앞에 glTexCoord2f 설정/모델에 텍스쳐를 불러오는 텍스쳐 매핑 방식
  • 09.29분 텍스쳐 매핑 part2
    정육면체에 텍스쳐 매핑을 적용하는 실습
    텍스쳐 매핑 실습/1번 텍스쳐가 저장된 사각형/육면체의 텍스쳐/텍스쳐 설정 명시/텍스쳐 좌표는 위의 코드와 동일/glVertex3f/gluLookAt 값 변경/확인/색의 혼합 이유는 환경설정/GL_MODULATE/혼합하지 않고 원래 색으로 나오게 하는 방법/확인/GL_ADD/GL_REPLACE값으로 변경/육면체 표현-텍스쳐 배열의 값은 6/눈에 보이는 3개의 면에만 텍스쳐 매핑/기존 세팅 삭제/바닥 깔기 설정/DrawFloor 바닥 만들기/floor비트맵 파일 불러오기/텍스쳐 생성시 주의점/텍스쳐 환경설정/텍스쳐 좌표 설정/바닥 세팅 완료/drawScene에서 DrawFloor함수 호출/확인/객체 띄우기/DrawObject/정육면체 실습 코드 가져오기/동일하게 텍스쳐 좌표 설정/각 면에 동일한 텍스쳐/drawScene에 DrawObject함수 호출/object 사이즈 수정/이동 변수 설정/glTranslatef안에 입력/KeyBoard 세팅/mySpecialKey 함수/glutSpecialFunc 함수/좌우상하 방향키 사용/확인/배경에 비가 내리는 모습 표현/DrawRain/solidcube를 얇게 만들어 비로 표현/raincount 설정/for문/viewRain/초기값 설정/glTranslatef/RainTimer 함수/확인/스케일 변경 후 확인/배경색 변경 후 확인
  • 10.32분 스플라인 곡선
    마우스 포인트 클릭(제어점)을 이용한 스플라인 곡선 실습
    스플라인 곡선/스플라인 구성 방법/베지어 스플라인 그려보기/제어점/보관 제어점/근사 제어점/제어 그래프/실습/reshape함수의 내부/glOrtho함수를 이용/glfloat controlpoint-제어점 만들기/제어점 설정/drawspline함수 선언/drawspline함수 작성/glshademodel-폴리곤 색 지정/glmap-제어점 설정/파라미터에 따라 값 입력/glenable/glbegin/glend/glcolor/for문-glevalcoord/현재 지점까지의 제어점 계산/gldisable/제어점 찍어주기/제어점을 통한 스플라인 완성/확인/제어점 변경/확인/제어점 변경 후 확인/마우스 포인트 클릭(제어점)을 이용한 스플라인 곡선 실습/제어점의 한계 지정/float controlcount/dspline값 설정/mouse함수/mouse함수 내부 조건문/controlpoint controlcount/마우스 클릭하면 count증가/클릭하는 위치와 제어점 위치/마우스가 클릭하는 위치의 좌표 값/마우스 좌표-모델 변환과 투영 행렬, 뷰 행렬/viewpoint배열 생성/윈도우 좌표계로 변형한 좌표 값/배열 viewport에 저장/viewport배열 값/y스크린의 좌표-높이값에서 y를 뺀 값/gl_modelview_matrix의 크기를 구해서 modelview에 값을 저장/glgetdoublev-지정해 두었던 projection배열의 값 저장/glreadpixels-좌표값 읽어오기/gluunproject/윈도우 좌표계에서의 좌표 값/glortho/실행 화면/스플라인 완성
  • 11.33분 스플라인 곡면
    직접적인 선형 보간으로 이루어지는 베이제 스플라인 곡면 실습
    스플라인 곡면/베지어 곡선과 비슷한 과정/곡면 제어점 설정/제어점 설정 함수 파라미터/곡면에서 타겟 먼저 설정/v1과 v2/제어점 배열을 가리키는 controlpoint/glenable함수를 사용해 곡면 그리기 활성화/그리드를 이용한 곡면그리기 함수/파라미터 값 입력/선으로 구성된 2d그리드를 연결해서 계산해주는 함수/파라미터 값/gl_point/gl_line/gl_fill/gl_line으로 그리드 연결/i1과 i2/j1과 j2/3차원 상의 제어점 설정/한 행의 배열/for문/실행/gl_point로 그리드 연결/실행/gl_fill로 그리드 연결 후 실행/다시 gl_line으로 그리드 연결/3차원 카메라 뷰를 키보드 좌표를 이용해서 회전/키보드 함수 선언/키보드 함수 만들기/switch/case/glutreshapefunc/winx/winy값 정의/회전시킬 변수를 넣을 glulookat함수/카메라 변수 초기값 설정/glulookat에 들어갈 파라미터 값/키보드 eyex값 설정/실행/eyez값 설정/openGL 3d카메라는 3차원 함수와 비슷/eyex와 eyez값 동시 설정/실행/x,z를 이용해서 y축을 중심으로 회전하는 코드 작성/sin/cos 사용/실행/9개의 제어점을 이용한 베지어 곡면/2차 베지어 곡면/제어점 4개로 이루어진 3차 베지어 곡선/16개의 제어점으로 이루어진 3차 베지어 곡면/양방향 곡면의 연결/y축값 변경 후 실행/제어점이 많을수록 부드러운 선 완성/16개의 제어점을 가진 곡면 만들기/제어점 설정 완료/실행/그리드 값 변경/부드러운 곡면 완성
  • 12.34분 [실습] 3차원 사람 모형 모델 만들기
    사람모형의 모델 만들기 실습
    배운것들을 종합한 응용예제/3차원 사람 모형 모델 만들기/평면 지형 만들기/glvertex 4개를 가지고 하나의 평면 구성/gltranslatef/평면 구성은 반시계방향/일반적으로 모든 폴리곤의 방향은 반시계방향/setup-glfrontface/glcullface-어느면을 그릴지 지정을 해주는 함수/몸통 안에 들어갈 인자값/glpushmatrix/glcolor3f/glpopmatrix/GLUquadricObj변수 선언/실린더 객체 선언/함수 내부에서 quadric객체 선언/glucylinder함수 안에 객체 생성/파라미터 값 설정/glrotatef/drawbody안에 들어갈 파라미터/카메라 변수 값 설정/실린더 모양의 오브젝트 확인/얼굴 만들기/glpushmatrix/glpopmatrix/cylinder객체 생성/glusphere/머리의 gltranslatef값 조정/팔,다리를 만들기 위한 전역변수 설정/오른쪽 팔 만들기/glpushmatrix/glpopmatrix/color값 설정/실린더 객체 생성/glrotate값 설정/gltranslatef값 설정/생성할 실린더 인자값/왼쪽 팔 만들기/glpushmatrix/glpopmatrix/glrotate/gltranslatef/실행/오른쪽 다리 만들기/glpushmatrix/glpopmatrix/glrotate/gltranslatef/실린더 생성/오른쪽 다리 전역변수 생성/왼쪽 다리 만들기/glpushmatrix/glpopmatrix/실린더 생성/glrotate/gltranslatef/화면 확인
  • 13.35분 [실습] 애니메이션
    사람모형의 모델의 각각 부위별로 타이머를 이용해서 뛰어가는 포즈를 만드는 실습
    타이머를 이용해 걸어가는 모양 만들기/타이머 함수 생성/메인에 타이머 함수 지정/glutpostredisplay함수/drawobject함수 생성/몸통,머리,팔,다리 잘라내고 drawobject함수 안에 붙이기/왼쪽 팔 움직이기/sin/cos함수 사용/화면 실행/오른쪽 팔 움직이기/rightarm_x함수/왼쪽팔과 오른쪽팔 움직임 확인/팔 함수 수정/다리 움직이기/화면 실행/다리 함수 수정/카메라를 돌렸을 때 나오는 화면/몸 전체 움직이도록 반동 넣어주기/x축으로 반동을 넣기위한 rotate/화면 실행/sin값에 절대값/y축 값/자연스러운 걸음걸이 완성/translate를 이용해 y축으로 반동/gltranslatef값 설정/화면 실행/값을 조금 낮추면 더 자연스럽게 뛰는모습 완성/오늘쪽 손 만들기/인자값 y로 지정/glpushmatrix/glpopmatrix/gltranslatef/drawrighthand/화면 실행/손만 따로 움직일 수 있도록 만들기/손의 움직이는 값(절대값)/왼쪽 손 만들기/glpushmatrix/glpopmatrix/gltranslatef/실린더 생성/drawlefthand/인자값 설정/손만 따로 움직일 수 있도록 만들기/손의 움직이는 값(절대값)/오른쪽 발 만들기/함수 생성/glpushmatrix/glpopmatrix/gltranslatef/실린더 생성/drawrightfoot안에 들어갈 값/발의 움직이는 값(절대값)/왼쪽 발 만들기/glpushmatrix/glpopmatrix/실린더 생성/drawleftfoot안에 들어갈 값/발의 움직이는 값(절대값)/관절이 움직이는 각도값 수정/뛰어가는 모습 완성
  • 14.26분 [실습] 스카이박스
    3차원 화면 내의 배경, 스카이박스 만들기 실습
    3차원 화면 내의 배경/스카이박스/스카이박스 그리는 방법/비트맵을 로드할 코드/스카이박스를 만들기 전 사람모형 완성/얼굴에 눈 완성/텍스쳐 로드할 부분 코딩/텍스쳐 변수 설정/비트맵 파일을 불러오는 함수/drawScene에서 loadTexture함수/glEnable함수/glBindTexture/glBegin으로 한면 그리기/glVertex3f입력/glDisable로 마무리 하고 화면 실행/첫번째 앞 면 텍스쳐 확인/나머지 다섯방향의 텍스쳐 만들기/미리 텍스쳐 이름을 저장 후 한꺼번에 로드/텍스쳐 배열로 저장/gluint loadtexture함수 선언/loadtexture를 for문 사용해서 증가/gluint textureid변수 선언/return textureid로 마무리/스카이박스가 그려지는 부분에 gldisable/depth_test 비활성화/스카이박스를 다 그리고 난 뒤 다시 활성화/뒷면 스카이박스/glbegin/glend한 쌍을 이루는 함수/gltexcoord2f좌표/glVertex3f입력/화면 실행/왼쪽 스카이박스/같은 함수 코드는 복사해서 사용/glVertex3f입력/화면 실행/오른쪽 스카이박스/glVertex3f입력 후 화면 실행/위쪽 스카이박스/glVertex3f입력 후 화면 실행/카메라 변수 값 변경/glulookat부분의 파라미터 값 변경/아래쪽 스카이박스/glVertex3f입력/화면 실행/drawterrain비활성/화면 실행/사람모형 위치 조정/카메라 변수 값 변경/glulookat 센터 값 변경/화면 실행 확인
  • 15.1시간 4분 모핑
    삼각형에서 원으로, 원에서 삼각형으로 바뀌는 모핑 애니메이션 실습
    모핑 애니메이션/모핑의 방법/제어점 설정을 통한 모핑 애니메이션/2d 화면으로 전환/ortho-직교 투영으로 변환/2d 화면 설정/화면 실행해서 2d 확인/변수 만들기/원의 제어점 설정/morphingvertex변수 선언/controlpoint/drawscene에 원 만들기/색상 정하기/초기화 값 설정/원을 만드는 공식/첫번째 원 세팅 완료/오류부분 수정/타이머/폴리곤 변수 만들기/타이머 설정/enum설정/polygontype설정/원에서 오각형까지의 모핑 애니메이션/구조체 안에 pentagon 변수 생성/제어점 설정/controlpoint값 증가/제어점의 값/controlpoint에서 빼야 할 값/제어점의 값/제어점을 이용한 모핑 애니메이션 과정/화면 실행/오류 발생/polygontype값이 pentagon/오각형에서 사각형으로 바뀌는 단계/rectangle 변수 생성/초기화값 0으로 설정/제어 판별 변수/제어점 설정하는 과정/화면 실행해서 확인/오각형 왼쪽 상단에 있는 꼭지점 값 변경/화면 실행해서 확인/오른쪽 하단에 있는 꼭지점 값 변경/화면 실행해서 확인/속도 값 변경/왼쪽 하단에 있는 꼭지점 값/화면 실행해서 확인/rectangle에서 bool값을 지정한 이유/polygontype값이 rectangle/사각형에서 삼각형으로 변환/제어점 생성/초기화값 0으로 설정/18번째 제어점 가운데로 이동/162번째 제어점 가운데로 이동/화면 실행/polygontype값이 triangle/삼각형에서 다시 원으로 변환/polygontype값이 circle/화면 실행/타이머 추가/모핑 애니메이션을 진행하면서 color값도 변환/color값에 변수 추가/화면 실행해서 모핑 애니메이션 확인/컨트롤 포인트 제어점 없이 모핑을 진행하는 애니메이션/변수 설정/drawscene내부에 원 그리기/값 설정 후 확인/i값/도형 변화/i++값 제어/reverseCPoint변수 지정/controlpoint값 만들기/controlpoint제어값은 timer에서 설정/실행/도형이 변하는 과정 확인/도형의 위치를 변화하는 작업/moveTimer함수 만들기/xpos의 값 변화/변수 생성/reverseposX값/도형이 왔다갔다 하는 것 확인/ypos값/y축과 x축 계산식 과정 간결하게 작성/도형이 움직이는 과정/reversePosY값을 0으로 설정/ypos값이 150이하인 경우/ypos값이 150에 도달했을 경우/x값은 반전을 하고 y값은 움직이지 않도록 설정/x축의 값은 움직이지 않고 y축의 값은 움직이도록 설정/ypos의 값이 250에 도달했을 경우/범위 설정 중요/ypos값이 350일 경우/최종 위치에 도달했을 경우/if문으로 조건을 나열해서 완성/switch case문 사용/positiontype변수 만들기/case조건 걸기
  • 16.1시간 4분 안티 엘리어싱과 terrain
    엘리어싱, 안티엘리어싱에 대한 실습과 raw데이터를 이용한 heightmap, 높이맵 지형 만들기 실습
    엘리어싱과 안티 엘리어싱 알아보기/코드 확인/drawScene에 원 그리기/2개의 지역변수 생성/glGetFloatv함수 호출/size 0과 size 1의 배열/glPointSize함수 호출/for문의 첫번째 값은 지역변수 angle/glVertex3f/위치 조절/원 확인/엘리어싱 설명/원래 모양과 복원된 모양이 왜곡되어 나타나는 현상/안티 엘리어싱/엘리어싱 감지방법 알아보기/코드 설정/라인 그리기/코드 실행/안티 엘리어싱 기법 사용/혼합 기능 활성화/blend모드 설정/blend함수에 들어가는 파라미터 값/gl_point_smooth값/glhint함수/파라미터 값/glDisable함수/gl_line_smooth활성화/실행 확인/블랜딩 기능, 스무스 함수, 혼합 함수와 스무스 함수를 사용할 때의 비교/변수 추가/color_value라는 배열 생성/red, green, blue값/color_value에 들어갈 값/blendmode가 true의 경우/smoothmode에 들어갈 값/Keyboard사용/glutPostRedisplay작성/index값들을 하나씩 넣어주는 이유/실행 확인/smooth모드 동작/blend와 smooth모드 비활성화/모두 적용 시켰을 경우/blend모드 비활성화/비교 확인/높이맵 지형 만들기/raw데이터/heightmap을 적용시키는 과정/평평한 바닥 만들기/define정의/텍스쳐 변수/비트맵 파일 불러오기/GLuint LoadTexture함수/세팅된 textureid값 return/renderterrain함수 만들기/환경 변수 설정/terrain에 관련된 정보 입력/실행 확인/카메라 살펴보기/카메라 변수 값 조절/실행 확인/높이맵 파일 불러오기/높이맵 변수 설정/int heightmapinfo함수 선언/loadrawfile함수 내용 입력/메인에서 함수 초기화/_height라는 raw데이터 정보를 renderterrain에 가져오기/render에 heightmap정보를 가져와 세팅/for문 사용해서 입력/일정 값 만큼 증가하는 값 정의/glbegin과 glend지정/terrain_size-min_size입력/x, y, z에 해당 vertex정보 저장/x, y, z의 좌표값/vertex좌표를 2개 작성한 이유/heightMapInfo함수 작성/실행 확인/Keyboard입력/glPolygonMode/실행 확인/coord좌표 설정/gltexcoord2f/실행 확인/map_scale 2배로 정의/카메라 변수 값 조정/실행 확인/min_size/RenderTerrain에 파라미터값 int levle추가/min_size를 level로 변경/정교한 terrain확인
  • 17.1시간 9분 카메라와 스카이박스
    키보드를 이용하여 자유자재로 움직이는 카메라 만들기 실습과 지형위로 만들어지는 스카이박스 만들기 실습
    지형 위에 카메라 자유자재로 움직이게 만들기/카메라 설명/openGL의 시점 좌표계/시점 좌표계 설정은 gluLookAt함수 사용/gluLookAt에 의한 카메라의 원점/카메라의 위치가 고정되어 있을 때 eye값만 변화/카메라 회전/keyboard세팅/eyeX, eyeZ, eyeY설정/cos과 sin을 이용한 공식/600이 가지고 있는 의미/반대 방향일 때의 eyeX, eyeZ, eyeY설정/theta라는 각도값에 의해 회전값 변화/실행 확인/y축으로 회전이 가능한 카메라뷰 만들기/변수 선언/centerX, centerY, centerZ의 값/upX, upY, upZ의 값/변수 speed선언/eye를 중심으로 회전하는 카메라 만들기/eye를 center로 변경/eye값 변경/실행 확인/회전되는 각도와 속도의 문제점/600을 300으로 수정/case 'j' centerX와 centerZ에 eyeX와 eyeZ더하기/case 'L' centerX와 centerZ에 eyeX와 eyeZ더하기/실행 확인/이동하게 만들기/case 'i'와 'k'/case i와 k에 speed값 설정/실행 확인/speed값 조절/+와 -를 이용해서 시점 좌표의 중심을 이동시키는것은 무리/J와 L에 더한 eye값 삭제/실행 확인/i와 k를 이용한 카메라의 앞, 뒤 이동/코드 작성/eye와 center 두가지를 같이 움직이고 회전/실행 확인/upX, upY, upZ 설정/X가 up일때의 화면 변화 확인/upX가 0이고 upZ가 축일 경우의 화면/X와 Y 둘다 up인 상태의 화면/Y와 Z의 up인 상태의 화면/바탕에 스카이박스 만들기/6개의 배열로 이루어진 변수 생성/GLuint skyboxObj변수/RenderSkybox함수 호출/for문으로 6개의 텍스쳐 부르기/RenderSkybox함수 작성/depth_test 비활성화/6개의 텍스쳐를 quads로 한면씩 그리기/스카이박스 변수 설정/스카이박스를 만들기 위해 고려해야할 조건/두번째 정점의 좌표/세번째 정점의 좌표/네번째 정점의 좌표/뒷면 스카이박스/glTexcoord2f작성/back 정점 설정/왼쪽 스카이박스/glTexcoord2f작성/left 정점 설정/정점 작성의 방법/오른쪽 스카이박스/right 정점 설정/top 스카이박스/top 정점 설정/정점을 찾기 쉬운 팁/down 스카이박스/glTexCoord2f작성/down 정점 설정/glDepthMask함수/depth_test 활성화/실행 학인/블랜딩/Ortho를 사용해 2d화면으로 만들기/drawScene안에 삼각형 그리기/실행 확인/삼각형 크기 키우기/블랜딩 설명/바탕의 검정색과 삼각형의 노란색 혼합/gl_blend인수 활성화/blend함수에 들어갈 파라미터값/실행 확인/비율값 변경/두번째 삼각형 만들기/노란색 삼각형과 파란색 삼각형의 혼합/바탕색을 흰색으로 변경
  • 18.41분 공튀기기게임
    키보드, 마우스 등을 이용한 OpenGL 공튀기기 게임 만들기
    공튀기기 게임 만들기/drawScene에서 공 만들기/glBegin과 glEnd/for문 사용/공튀기기 변수들/radian변수 선언/xPos변수 선언/원 확인/타이머 만들기/circleTimer함수 선언/확인/화면 밖으로 나가는 공-공의 방향성 설정/변수 directionX와 Y값/if 조건문 사용/yPos/xPos/if문 안에 or연산자 사용/실행 확인/radian값/실행 확인/움직일 수 있는 바 만들기/DrawCircle, DrawBar함수 선언/bar-사각형 그리기/bar움직이기/xBarPos, yBarPos변수 생성/마우스 설정/함수 Mouse안에 들어갈 변수/if 조건문/xBarPos값 설정 후 확인/glutPassiveMotionFunc/인자값 mouse의 x와 y값/실행 확인/공과 bar의 충돌 구현/새로운 조건문 생성/공의 x축이 bar의 x축 범위안에 있는지 확인/실행 확인/새로운 조건문 생성/messageBox팝업 띄우기/PostQuitMessage/공이 bar에 충돌하지 않고 바닥에 떨어질 경우/벽돌 만들기/struct brick 벽돌 구조체 만들기/initialize함수 만들기/초기값 설정/brick i.left와 right값/brick i.top과 bottom값/brick i.r, g, b컬러값 설정/DrawBrick함수 만들기/실행 확인/타이머에서 벽돌 충돌 체크/충돌체크가 되는지 확인/벽돌 컬러값 랜덤하게 만들기/rand 함수 사용/게임을 열 때마다 컬러값 랜덤으로 만들기/공이 벽돌과 충돌했을 경우/visible변수 생성/true와 false 체크/실행 확인/5개의 벽돌을 20개 만들기/initBrickY값/실행 확인
  • 19.31분 적은 연산을 이용한 그림자
    대략적으로 인지하여 조명과 물체간의 공간적인 위치를 고려하여 직접 만드는 간단한 그림자 실습
    그림자 실습/그림자를 만들 물체와 바닥 만들기/사각형으로 바닥 만들기/glVertex3f/drawScene에서 DrawTerrain함수 호출/DrawObject함수 선언/물체를 그릴 위치/컬러값 입력/6개의 사각형을 그려 육면체 만들기/조명과 물체로 그림자 만들기/그림자 변수 생성/ShadowPos값 설정/키보드를 사용해서 그림자 회전과 이동을 시킬 변수/posX와 posZ값/움직이는 부분 만들기/keyBoard함수 작성/switch case/지정된 알파벳을 눌렀을 경우/실행 확인/depth_test와 lighting비활성화/그림자 만들기/DrawShadow함수 정의/조명의 방향/arr, dot변수/새 파라미터 불러오기/calculationNormalVector함수 선언/DrawShadow안에 calculationNormalVector함수 만들기/법선벡터 계산식/벡터 연산/단위 벡터화/단위 벡터로 변환하는 함수/arr의 마지막 배열값 정의/dot 평면상의 한 점 정의/plane/그림자를 위한 연산과정 완료/그림자를 만들 물체와 그림자가 될 것/glMultMatrixf/실행 확인/조명의 위치 확인
  • 20.48분 도형 자르기
    마우스 콜백함수를 이용한 도형 자르기 실습
    실습에 사용될 다각형 2개 만들기/빨간색과 파란색의 다각형/glVertex2f/파란색 다각형은 gl_line_strip/확인/도형 자르기 실습/DrawRect와 DrawBox함수 선언/Mouse함수 선언/MouseDrag함수 선언/MotionFunc안에 들어갈 파라미터값/Mouse함수 정의-if조건문 사용/도형이 잘라지는 효과 만들기/시작점과 끝점 변수 만들기/startMouseX값과 startMouseY값/endMouseX값과 endMouseY값/mouseCheck의 초기값 false/버튼이 눌렸을 경우 mouseCheck값 true/실행 확인/드레그해서 선분 이어주기/실행 확인/포인트와 선분 확인/DrawRect안에 들어갈 파라미터/rectNum변수 생성/DrawRect안에 switch조건문 만들기/RectCut함수/RectCut안에 switch조건문/struct controlPoint만들기/controlPoint 4개의 배열 안에 들어갈 초기값/실행 확인/DrawBox안에 있는 상수 변수로 바꾸기/RectCut함수의 내용-자르기 영역/공식을 이용한 선분의 교차점 구하기/GetIntersectPoint함수 선언/두 선분의 교차점 구하기/t와 s의 값/result x값과 result y값/GetIntersectPoint함수를 가지고 교차점 구하기/0부터 3까지의 4개의 배열 사용/변수 만들기/widthSlice, heightSlice/내부에 변수 생성/자르기 영역 부분 완료/case2의 widthSlice, heightSlice경우/8개의 배열/가로로 잘렸을 때/for문 사용/세로로 잘렸을 때/for문 사용/가로로 잘렸을 때 y축 변화/세로로 잘렸을 때 x축 변화/실행 확인/도형을 4등분 할 경우 만들기/세로 영역/start2와 end2 변수 추가/가로 영역/16개 선분의 각각의 포인트/2개의 사각형 동시에 자르기/배열의 정점 완료 후 for문/실행 확인/y값/실행 확인

강의목록 다운로드                        1:1 강의 질문&답변