Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- ubuntu
- rotation
- google drive upload
- 고정ip할당
- Python
- Winform
- NodeMCU
- 아두이노 설치
- apt update
- google drive 업로드
- 정보처리기사
- sshkey
- 우분투 opencv 설치
- opencv resize
- c#
- opencv
- libopencv-dev
- opengl
- vim명령어
- 아두이노
- Google Drive API
- opencv apt설치
- api사용해서 google drive에 폴더만들기
- translation
- annotating
- 정보처리기사후기
- vi
- vtk
- vim
- esp32
Archives
- Today
- Total
내가 보려고 만든 블로그
openGL 공부 본문
반응형
OpenGL
- 그래픽 하드웨어의 기능 사용하게 해주는 API
- 하드웨어 / 운영체제와 독립적으로 사용할 수 있는 인터페이스 제공
- 그렇기 때문에 window 기능 같은 건 다른 걸 사용해야함
- 3차원 오브젝트나 사진 같은 걸 다루는 기능도 없음
- 점, 선, 삼각형, 패치와 같은 geometric primitive로 치환해서 사용해야함
- 이미지를 렌더링하기 위한 OpenGL 어플리케이션의 주요 연산들
- 그릴 data가 OpenGL의 geometric primitive의 어떤 shape인지 정하기
- 여러 쉐이더를 통해 input primitive의 위치, 색 등의 렌더링 속성을 결정
- input primitive의 수학적인 표현을 screen에 대한 위치로 표현한 fragment로 치환
- rasterization이라 부름
- rasterization에 의해 생성된 fragment들에게 fragment shader를 실행하여 fragment의 최종 색과 위치를 결정함
- 필요하다면 추가적인 fragment 단위 연산을 수행함
- 생성된 fragment에 해당하는 오브젝트가 시야에 존재하는지 여부
- fragment의 색과 현재 screen에 실제 위치의 색과 섞기 등
- OpenGL은 클라이언트-서버 시스템.
- 프로그래머가 작성한 어플리케이션이 클라이언트
- 그래픽 하드웨어 제조사가 작성한 OpenGL 실제 구현이 서버
- 그래서 몇몇 OpenGL의 경우 네트워크로 연결된 서로 다른 기기에서 클라이언트와 서버가 돌 수도 있음 (X Windows System)
- 최근에는 그래픽카드(하드웨어 그래픽스 가속기)가 OpenGL 대부분 구현하거나 CPU에 빌트인된 경우, 혹은 마더보드에 따로 회로에 빌트인 된 경우가 있음. 이 경우 어플리케이션이 클라이언트고 그래픽카드가 서버인 것임.
렌더링
-컴퓨터가 모델로부터 이미지를 생성하는 과정
* OpenGL은 rasterization 기반 시스템
* raytracing과 같은 다른 방법들도 있음
* 이 방법 쓰더라도 이미지를 출력하거나 이미지에 대한 연산을 할 때 OpenGL 쓸 수도 있음 모델 (오브젝트) * geometric primitive로 구성됨
* 점 * 선 * 삼각형 (버텍스로 정의됨)
쉐이더 * 그래픽카드가 실행하는 특수한 함수 * GPU 전용 작은 프로그램이라고 생각하면 됨
* OpenGL 내부에 쉐이더 소스코드를 GPU가 실행할 수 있게 컴파일해주는 도구들이 있음
* 6 개의 쉐이더 단계가 존재 * vertex shader (제일 흔함) * vertex data를 처리 * fragment shader (제일 흔함) * rasterizer가 생성한 fragment를 처리 픽셀 * 최종 생성된 이미지를 구성함. * 디스플레이에서 시각적으로 볼 수 있는(가시적인) 최소 단위 * framebuffer에 저장됨 * 그래픽카드가 관리하는 메모리의 한 덩어리 * 이거를 디스플레이 장치에 전달하는 것
여기보고 공부해야겠음!!
반응형
'OpenGL' 카테고리의 다른 글
opengl 삼각형, 사각형, 정육면체 index (0) | 2022.08.25 |
---|---|
opengl 참고사이트 (0) | 2022.08.24 |
우분투환경에서 opengl 설치 (0) | 2022.08.04 |
OpenGL super bible 책에서 소스코드 실행하기(ubuntu환경) (0) | 2022.06.30 |
opengl cmake 경고창 뜰때 (0) | 2022.06.30 |