Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

게임공장

[Learn OpenGL 번역] 2-10. 시작하기 - 복습 본문

OpenGL

[Learn OpenGL 번역] 2-10. 시작하기 - 복습

짱승_ 2018. 7. 15. 19:57

복습

시작하기/복습

  시작하기 섹션의 끝에 도달한 것을 축하합니다. 이제 여러분은 윈도우 창을 만드는 법, shader를 만들고 컴파일하는 법, 버퍼 객체나 uniform을 통해 vertex 데이터를 쉐이더로 보내는 법, 오브젝트를 그리는 법, 텍스처를 사용하는 법, 벡터와 수학을 이해하고 완전한 3D scene을 생성하기 위해 그 지식들을 카메라를 사용하여 사용하는 법들을 알고 있을 것입니다.


  휴.. 이 것들은 지난 강좌들에서 배웠던 많은 것들입니다. 예제들을 가지고 놀거나 약간의 실험을 해보세요. 그리고 문제에 대한 자신만의 생각과 해결책을 생각해보세요. 우리가 다루었던 모든 자료들을 이해할 수 있다면 다음 강좌로 넘어갈 시간입니다.

용어 사전

  • OpenGL: 각 기능의 출력과 레이아웃을 정의하는 그래픽 API의 공식적인 사양
  • GLAD: OpenGL의 모든 함수 포인터들을 로드하고 설정하여 모든 (현대적인) OpenGL의 함수들을 사용할 수 있게 해주는 확장 기능 로딩 라이브러리
  • Viewport: 우리가 렌더링할 윈도우
  • Graphics Pipeline: 화면위의 픽셀로 변환되기까지 vertex가 거쳐야할 전체적인 과정
  • Shader: 그래픽 카드 위에서 실행되는 작은 프로그램. 그래픽 파이프라인의 여러 단계에서 이미 존재하는 기능들을 대체하기 위해 사용자가 직접 만든 쉐이더를 사용합니다.
  • Vertex: 하나의 점을 나타내는 데이터들의 집합
  • Normalized Device Coordinates: vertex가 clipping과 perspective division이 끝난 후에 있게되는 좌표계. NDC 안의 -1.0 ~ 1.0 범위 안에 있는 모든 vertex들은 폐기되지 않고 화면에 보여지게 됩니다.
  • Vertex Buffer Object: 그래픽 카드가 사용할 수 있도록 메모리를 할당하고 모든 vertex 데이터를 저장하는 버퍼 객체
  • Vertex Array Object: 버퍼를 저장하고 vertex attribute 상태 정보를 저장합니다.
  • Element Buffer Object: indexed drawing을 위한 인덱스들을 저장하는 버퍼 객체
  • Uniform: GLSL의 특별한 타입의 전역(shader program 내부의 각 shader들은 이 uniform 변수에 접근할 수 있습니다)변수이고 오직 한번만 설정되어야 합니다.
  • Texture: 오브젝트를 감싸는 특별한 타입의 이미지이며 오브젝트가 매우 상세히 묘사되어 있는 것처럼 보이게 합니다.
  • Texture Wrapping: 텍스처 좌표가 0 ~ 1 범위 밖으로 넘어갔을 때 OpenGL이 텍스처를 샘플링하는 방법을 정의합니다.
  • Texture Filtering: 선택 가능한 텍셀(텍스처 픽셀)들이 여러가지가 있을 때 OpenGL이 텍스처를 샘플링하는 방법을 정의합니다. 일반적으로 텍스처가 확대되었을 때 일어납니다.
  • Mipmaps: 카메라와의 거리에 따라 적절한 크기의 텍스처를 입히기 위해 저장된 작은 텍스처들의 모음
  • stb_image: 이미지 로드 라이브러리
  • Texture Units: 각각의 다른 텍스처 유닛에 여러가지 텍스처를 바인딩함으로써 하나의 오브젝트에 여러 텍스처를 동시에 사용가능하게 해줍니다.
  • Vector: 어떠한 차원에서 방향과 위치를 정의하는 수학적 개념
  • Matrix: 사각형 배열의 수학적 수식
  • GLM: OpenGL에 맞추어 개발된 수학 라이브러리
  • Local Space: 오브젝트가 시작되는 공간. 모든 좌표는 오브젝트의 원점을 중심으로 합니다.
  • World Space: 모든 좌표는 global 원점을 중심으로 합니다.
  • View Space: 모든 좌표는 카메라의 관점에서 바라본 좌표입니다.
  • Clip Space: 카메라의 관점에서 바라본 좌표들이지만 투영(projection)이 적용되었습니다. vertex 좌표의 마지막에 있어야할 곳이며 vertex shader의 출력입니다. OpenGL은 남은 작업(clipping/perspective division)을 수행합니다.
  • Screen Space: 스크린에서 바라본 모든 좌표. 모든 좌표는 0에서 화면의 너비/높이 까지의 범위안에 존재합니다.
  • LookAt: 주어진 위치와 타겟을 사용하여 사용자가 바라보는 방법을 정의하기 위해 모든 좌표가 회전되거나 이동시켜진 좌표계를 생성하는 특별한 타입의 view 행렬
  • Euler Angles: yaw, pitch, roll을 정의하여 모든 3D 방향 벡터를 구성할 수 있도록 합니다.



출처 : https://learnopengl.com, Joey de Vries

반응형