ONLINE CLASS

OPENGL (오픈 지엘)

COURSE FOCUS

이 강의에서 배우는 핵심 실무

OpenGL의 화면좌표와 뷰포트를 설정하고 마우스·키보드 콜백으로 사각형을 움직이는 그래픽 실습을 시작합니다. 조명과 재질, 베지어 스플라인 곡면을 다루며 화면 속 형상이 표현되는 방식을 살펴봅니다. 높이맵 지형 생성과 안티앨리어싱, 마우스를 이용한 도형 자르기로 이어가며 입력 처리와 좌표 계산을 활용한 그래픽 기능을 구현해봅니다.

?

수강 전 꼭 확인하세요

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

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

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

◆
기업이 선택한 신뢰 강의

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

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

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

자세히 보기  >
REAL REVIEW

수강생 리얼후기!

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

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

RECENT Q&A

최근 수강질문

최근 등록된 수강질문을 작성순서대로 확인해 보세요.

ALZIO DEEP GUIDE

OpenGL을 더 깊게 이해하기

20강의 좌표·콜백·투영·깊이·조명·태양계·텍스처·스플라인·사람 모델·애니메이션·지형·카메라·공 게임·그림자·자르기를 연결합니다. 기존 고정 기능 계열의 표현과 현재 Core 조건을 분리합니다.

공식 기술정보 확인20강 커리큘럼 연결2026 현재 기술정보

OPENGL (오픈 지엘) · 20강 · 12시간 45분

01

OpenGL은 무엇인가

OpenGL은 그래픽 렌더링의 명령과 동작을 정의하는 API입니다. 좌표·정점·텍스처·깊이와 출력 단계를 다룹니다. 창 생성·입력·게임 규칙과 렌더링은 별도 역할이며 완성 게임 엔진 자체는 아닙니다.

02

관련 플랫폼과 개발도구의 관계

실제 사용은 그래픽 드라이버·컨텍스트·프로파일과 창·입력 도구에 의존합니다. Core와 Compatibility는 지원 기능이 다릅니다. 기존 고정 기능 기반 코드와 현재 shader 기반 코드의 실행 조건을 구분합니다.

03

OpenGL의 핵심 기능

기술 자체의 기능과 이 강좌의 직접 학습 범위는 다릅니다. 아래 연결 표시는 저장된 공개 커리큘럼에 근거합니다.

좌표·투영

모델과 화면의 관계를 정합니다. 직교·원근 결과를 비교합니다. 화면 좌표와 3D 좌표를 혼동하지 않습니다.

기술 참고 · 직접 학습 여부는 아래 회차 연결표에서 확인

입력·콜백

외부 창 도구의 입력을 동작과 연결합니다. 자료 변경과 렌더링을 나눕니다. 모든 입력 기능이 OpenGL 자체 API는 아닙니다.

기술 참고 · 직접 학습 여부는 아래 회차 연결표에서 확인

깊이·가려짐

겹친 도형의 표시 조건을 다룹니다. 후면 제거와 깊이 처리를 구분합니다. 그리기 순서만으로 모든 가려짐을 해결하지 않습니다.

기술 참고 · 직접 학습 여부는 아래 회차 연결표에서 확인

조명·재질·텍스처

색과 표면 표현을 구성합니다. 좌표·빛·자료의 관계를 읽습니다. 구형 고정 기능과 shader 구현은 다릅니다.

기술 참고 · 직접 학습 여부는 아래 회차 연결표에서 확인

곡선·모델·애니메이션

형상과 시간에 따른 변화를 표현합니다. 제어점과 부위별 변환을 나눕니다. 화면 움직임과 물리 모사를 구분합니다.

기술 참고 · 직접 학습 여부는 아래 회차 연결표에서 확인

프로파일·호환성

사용할 명령과 드라이버 조건을 확인합니다. 기존 코드의 유지보수에 필요합니다. Compatibility 기능을 Core의 현행 명령으로 소개하지 않습니다.

기술 참고 · 직접 학습 여부는 아래 회차 연결표에서 확인
04

이 과정의 실제 작업 흐름

1~7강은 viewport·ortho·콜백·3D·scale·투영·후면과 은면·빛·재질·태양계입니다. 8~13강은 텍스처·곡선·곡면·사람 모델·타이머 애니메이션입니다.

14~20강은 스카이박스·모핑·안티앨리어싱·RAW 높이맵·카메라·공튀기기·간단한 그림자·마우스 자르기입니다. 전체 게임 엔진·현대 shader 코드를 직접 학습한다고 확대하지 않습니다.

  1. 좌표·입력
  2. 투영·가려짐
  3. 빛·표면
  4. 곡선·모델
  5. 시간·지형·카메라
  6. 게임·그림자·자르기
05

핵심 구조를 이해하는 방법

좌표 변환·투영을 거쳐 도형을 화면으로 표현하고 가려진 면·깊이·색을 처리합니다. 모델 자료와 카메라·표시 상태를 나누어 보면 입력에 따른 결과를 설명하기 쉽습니다. 렌더링 API가 충돌이나 물리 규칙을 자동으로 구현하지는 않습니다.

06

실무 적용과 결과 확인

1~9강에서 좌표·투영·카메라·깊이·색의 변화 원인을 나누어 기록해 보세요. 같은 모델을 직교와 원근으로 비교하는 추가 연습입니다. 화면 크기 변경과 모델 크기를 구분합니다.

12~20강은 부위별 변환·타이머·높이 자료·카메라 입력·그림자 위치를 따로 점검하세요. 결과 전후를 비교하는 응용 제안입니다. 간단한 그림자 예제를 물리적으로 정확한 조명 전체로 소개하지 않습니다.

07

이 강좌에서 집중할 전문주제

전문 축은 작은 장면을 반복 제작하며 좌표·변환·표면을 연결하는 것입니다. 태양계·사람 모델·공 게임의 입력·자료·표시 책임을 비교해 보세요.

높이맵·스카이박스·카메라와 간단한 그림자는 후반 공간 구성입니다. RAW의 구체적인 파일 규격은 공개 목록으로 확정하지 않습니다. 모델 로더·완성 엔진·shader 최적화를 강좌 범위에 추가하지 않습니다.

08

현재 기술과 강좌 환경의 관계

정확한 OpenGL·창 라이브러리·드라이버 버전은 미확정입니다. ortho·scale·기존 조명 표현은 고정 기능 계열의 강좌 맥락으로 읽으며 실제 함수와 컨텍스트를 대조합니다.

Khronos 규격은 Core에서 제거된 기존 행렬·조명 명령과 Compatibility 기능을 구분합니다. 기존 코드의 실행 조건과 현재 shader 기반 후속 학습은 별개입니다. 규격 4.6을 강좌 버전으로 표시하지 않습니다.

09

목적에 맞는 기술 선택과 비교

아래 비교는 목적과 작업 구조를 선택하기 위한 안내입니다. 다른 기술 전체를 본 강좌에서 가르친다는 뜻은 아닙니다.

목적에 맞는 기술 선택과 비교
선택지작업 접근이 강좌와의 관계
당시 고정 기능기존 좌표·빛 상태의 구성실제 예제의 명령 확인
Core 프로파일현재 프로그램 가능한 처리별도 후속 shader 학습
게임 엔진장면·입력·자원 등 응용 구조OpenGL API와 구분
10

기술개념과 알지오 커리큘럼 연결

회차는 공개 커리큘럼의 실제 순서입니다. 실습 후 응용 제안과 현재 기술 참고정보를 강의에서 제공하는 실습으로 해석하지 않습니다.

기술개념과 알지오 커리큘럼 연결
기능·개념무엇인가실무 의미강좌 회차학습 상태
좌표·입력·투영viewport·콜백·3D·scale공간과 입력1·2·3·4강강좌에서 직접 학습
가려짐·빛·장면깊이·조명·태양계표시 조건5·6·7강강좌에서 직접 학습
표면·형상·동작텍스처·스플라인·모델·타이머자료와 변환8·9·10·11·12·13강강좌에서 직접 학습
환경·카메라스카이박스·모핑·높이맵장면 구성14·15·16·17강강좌에서 직접 학습
응용 제작공 게임·그림자·자르기실습 결과18·19·20강강좌에서 직접 학습
11

처음 배울 때 자주 생기는 오해

OpenGL이 게임 엔진인가?

렌더링 API입니다. 게임 규칙은 별도입니다. 18강의 실습을 엔진 전체로 확대하지 않습니다.

콜백이 모두 OpenGL 함수인가?

창·입력 도구가 담당할 수 있습니다. 정확한 도구는 미확정입니다. 2강의 코드 역할을 확인하세요.

직교와 원근은 같은 결과인가?

투영 관계가 다릅니다. 4강에서 결과를 비교합니다. 모델 변화와 카메라 변화를 구분하세요.

은면과 후면 제거는 같은가?

서로 다른 표시 조건입니다. 5강의 대상과 깊이를 확인합니다. 그리기 순서만으로 판단하지 않습니다.

옛 조명 코드가 Core에서도 되나?

프로파일의 지원이 다릅니다. 기존 명령은 Compatibility 조건을 확인합니다. 현행 Core 기능으로 바꾸어 설명하지 않습니다.

RAW면 모든 높이 자료가 호환되나?

크기·형식 조건이 필요합니다. 16강의 입력을 대조합니다. 파일 확장자만으로 호환성을 보장하지 않습니다.

12

다음 학습 방향

C++ (기초+실무)

C++ 객체·참조·파일 기반을 보강합니다.

자료 보기 →

OPENCV2 v4 (with C++) 기초+실무

렌더링과 다른 영상 분석·행렬 처리 방향을 비교합니다.

자료 보기 →

OpenGL 관련 과정 비교

입문·실무·심화 과정의 실제 커리큘럼을 목적에 맞게 비교합니다.

자료 보기 →

실습과 복습 계획

새 환경에서 예제를 확인하고 학습 계획을 세우는 방법을 살펴봅니다.

자료 보기 →

기술정보는 Khronos Group의 공식자료를 기준으로 검토했으며, 강좌 범위는 OPENGL (오픈 지엘)의 공개 커리큘럼과 구분했습니다.

공식 기술정보 확인일: 2026-10-05 · 강좌 업데이트일을 의미하지 않습니다.

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

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

수강 전 꼭 확인하세요

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

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 강의 질문&답변






도움이 필요하신가요?
💬
알지오 학습·수강 도우미
운영진이 확인한 안내를 자세히 보고, 필요하면 바로 상담하세요.
상담 상태 확인 중