디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[정보] OpenGL 랩핑할 때 이것만은 숙지해야 할 것들.

liliilli(125.188) 2019.03.21 00:31:03
조회 326 추천 3 댓글 6
														


viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73fee82fa11d02831f7b1fdb67b76037d9d6c024c277f0579e5f4bcee9cfa71007a2d74ac3aa537609e32d47731ac6711b7fdad2ff2



일단 경험상 뼈저리게 느낀 것들만 간추려서 씀...


1. 전역 상태 (glEnable, glDisable, glViewport, glBlend) API 등으로 바로 상태 조절하지 말 것.

프레임버퍼, 쉐이더 스토리지 버퍼, VAO, VBO, EBO 및 텍스쳐들이 갖가지로 교차하는 상태에서 전역 상태 API 을 쓰는 건 구조가 조금만이라도 복잡해지면 엄청 힘들어짐. 개인적으로는 각 상태마다 코드로 스택을 만들어서, 랩핑된 API 로 넣고 뺄 때마다 스택의 Top 값에 따라 코드 내부에서 자동으로 glAPI 을 호출하는 것이 좋은 것 같음.


물론 컨텍스트가 하나가 아니라, 렌더 파이프라인 과정마다 복수개 있으면 그 컨텍스트들 마다 상태가 다 다를테니까 상태 관리는 좀 더 편해질 것 같음. 근데 이렇게 되면 컨텍스트 간의 리소스 공유가 되고 안되는 리미트가 있어서 X빠질 수도 있고... ㅇㅇ


2. GL 컨텍스트 만들 때, 어느 것이 컨텍스트 간 공유가 되고, 안되고를 사전에 알아서 랩핑해야 함.

대표적인 예로 VBO, EBO 는 일반 버퍼라서 컨텍스트 간 공유가 되는데, VAO 는 VBO, EBO 의 포인터를 지정해서 어떻게 쓰겠다고 포맷만 저장한거라 컨텍스트 간 공유가 안됨. 그 외에도 텍스쳐랑 렌더버퍼는 되지만 프레임버퍼 오브젝트는 안됨. 쉐이더 역시 공유가 안됨. 이외에도 여러가지 있을 듯.


https://www.khronos.org/opengl/wiki/OpenGL_Context


3. OpenGL 은 멀티스레드에 완전 고자라서 (어토믹 변수가 있긴 하지만 글쎄다) 멀티스레드로 OpenGL 로 여러가지 작업을 시키게 할 때는 상태 관리 등등이 꼬이는 걸 방지하게 해야함. 가장 편한 솔루션으로는 각 스레드마다 컨텍스트를 하나씩 할당하게 해서 각 스레드에서는 그 컨텍스트로만 쓰게 하기. 저어는 IO 잡 워커 스레드에 2개, 메인 업데이트&렌더 스레드에 1개 만들어서 쓰게끔 하고 있음요.


4. 그냥 Vulkan 쓰세요

추천 비추천

3

고정닉 2

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2858 설문 SNS로 싸우면 절대 안 질 것 같은 고집 있는 스타는? 운영자 24/05/06 - -
28264 공지 완장호출벨 [9] 다믜갤로그로 이동합니다. 21.12.06 38844 9
13440 공지 Github 갤러리 규칙 [5] ㅇㄹ갤로그로 이동합니다. 20.10.16 51154 13
1872 공지 Git 관련 정보 [7] 0xrgb갤로그로 이동합니다. 19.01.29 57260 11
1 공지 github에 관한 이야기를 해주세요. [5] 게으른둔재갤로그로 이동합니다. 18.08.06 49985 3
3 공지 제3자가 명백히 불쾌할 수 있는 허세 및 타당치않은 비난은 지양해주세요. [4] 게으른둔재갤로그로 이동합니다. 18.08.06 50919 10
63773 % 이제는 개발직군 한정으로 최저임금을 폐지해야 백수양산을 막을수있는데 [3] ㅇㅇ(106.102) 07:49 66 1
63772 % 여기 갤은 llm 모델에 크게 관심이 없냐? 요즘 분위기 쎄하던데 [2] ㅇㅇ(125.130) 07:28 127 0
63770 % 본인 여친이 없는 걸 '개발' 탓으로 돌리지 마라 [5] ㅇㅇ(211.234) 03:42 127 2
63769 질문 OAuth2를 이용해서 로그인 구현하려는데 이렇게 하면 맞는건가요? [8] ㅇㅇ갤로그로 이동합니다. 02:50 95 0
63768 % 동적할당 끝끝나면 포인터주소도 초기화시켜줘야함? [3] ㅇㅇ(39.120) 02:49 82 0
63767 % 코테 자바스크립트로 준비하는데 뻘짓인가? [1] ㅇㅇ(121.129) 02:42 51 0
63766 % 와 인스타 광고에 채용공고 떠서 봣는데 ㅅㅂㅋㅋ [4] ㅇㅇ(61.83) 00:00 274 0
63765 % 그냥 할 거 없어서 집에서 프로그래밍 [6] ㅇㅇ(121.161) 05.09 253 6
63764 % 개 ㅈ소인 우리 회사는 노션 이력서 바로 거름 [12] ㅇㅇ(223.38) 05.09 306 1
63763 % AI 등장으로 인한 생산성 -> 고용 증가 or 감소 [2] ㅇㅇ(125.240) 05.09 95 0
63762 % 나랏돈이 학원으로 줄줄샌다 걍 기업을 지원해주라 ㅇㅇ(49.142) 05.09 76 3
63761 % 요즘 안보여서 좋은거 [7] 몬무스갤로그로 이동합니다. 05.09 351 11
63760 % 개좆소 구르느니 금융이 낫지않나? [5] ㅇㅇ(61.82) 05.09 154 0
63759 % 부스트코스 이 개병신 사이트는 배속 인정 안 하네 ㅇㅇ(223.38) 05.09 86 0
63758 % 보안인력이나 좀 체계적으로 양성하지 [4] ㅇㅇ(211.234) 05.09 178 0
63757 질문 플러터) 타일리스트가 영역을 자꾸 벗어나... (코드 간단함) [3] ㅇㅇ(121.162) 05.09 107 0
63756 % 개발아조씨 10만 양성은 아직 진행중 26년에 끝난다. [1] ㅇㅇ(49.142) 05.09 108 1
63755 % 진지하게 국내서 백엔드할거면 자바스프링이 맞음 [3] ㅇㅇ(121.129) 05.09 137 0
63754 질문 안녕하세요. 혹시 이런 것도 질문 가능할까요? [4] ㅇㅇ(203.232) 05.09 91 1
63753 질문 자바 개발자 이번에 vb.net 프로젝트 뛰는데 질문좀 [6] ㅇㅇ(202.215) 05.09 92 0
63752 % 삽입정렬 이거나만어렵냐?ㅠㅠ [6] ㅇㅇ(39.120) 05.09 163 0
63751 질문 버블정렬 이런거 혼자 구현할필요있나? [14] ㅇㅇ(39.120) 05.09 223 0
63750 % 딱 인구 절반 타노스 됐으면 [3] ㅇㅇ(39.7) 05.09 128 0
63748 % 고...고객이 요구사항이 뭔지도 모르는 건 비정상이라 생각해요 [9] 던전마스터2갤로그로 이동합니다. 05.09 250 1
63747 % 컴공 전과 고민 제발 도와주세요 [11] 빅토르최(210.217) 05.09 217 1
63746 % 이 사람 유튜브 유용하네 [2] ㅇㅇ(218.148) 05.09 214 0
63745 % 개발자 일자리는 줄어드는데 한국은 친중민족주의만 강화되고 [2] ㅇㅇ(106.102) 05.09 141 4
63744 % 업무하는데 허무하네 [1] 토큰몬스터갤로그로 이동합니다. 05.09 163 1
63743 % 한국 인구의 1%가 코딩을 한번쯤 해본것까지는 그나마 말이 되는데 [2] ㅇㅇ(106.102) 05.09 231 3
63742 % 역대급 코드뭉치로 세금 날로 쳐먹은 사례.png [6] ㅇㅇ(119.70) 05.09 379 3
63741 % 게임개발을 해보려고 하는데 막막하다 [3] ㅇㅇ(139.180) 05.09 127 1
63740 % 시대와 언어를 초월하여 합리적인 언어와 프레임웤으로 진행하고 배우고 .. [6] 123332(118.38) 05.09 174 0
63739 % 취업힘들면 개발바닥 봐라 ㅇㅇ(118.235) 05.09 162 0
63738 % 개발쪽 레드오션되는거 어쩔 수 없음 ㄹㅇ [1] ㅇㅇ(223.33) 05.09 321 10
63737 % 조선에 개발자가 너무 많다 [2] ㅇㅇ(118.235) 05.09 187 2
63736 % 근데 노력충들 다 거품인거 드러났잔아 [2] ㅇㅇ(218.157) 05.09 250 4
63735 % 트리플 클릭 할때마다 호버 버튼 눌리는 ㅇㅇ(119.196) 05.09 64 1
63734 질문 현업에서 우분투 쓰는 사람들 있음? [11] aa(211.217) 05.09 265 0
63733 % 게임 개발자들 ㅈㄴ 대단한거 같다 [1] ㅇㅇ갤로그로 이동합니다. 05.09 199 0
63732 % 할 거 없으면 필요한 API들 ㅇㅇ(183.96) 05.09 153 0
63731 질문 학식 자료구조 질문좀 [5] ㅇㅇ(223.39) 05.09 125 0
63730 % 갤러리 불평가질 수는 있는데 [2] ㅇㅇ(183.96) 05.09 157 2
63728 질문 upwork 해본 게이 있냐?? [1] ㅇㅇ(139.180) 05.09 71 0
63727 질문 외장하드에 리눅스 설치해서 쓰는사람 있나? [8] 땔감갤로그로 이동합니다. 05.09 133 0
63726 질문 근데 refresh tokken을 탈취당하면 아무의미없는거 아닌가? [20] ㅇㅇ(106.101) 05.09 260 0
63725 % 오늘부터 네카라쿠배는 죽었다 [1] ㅇㅇ갤로그로 이동합니다. 05.09 188 0
63724 % 자바스크립트 좃사기인점 [1] ㅇㅇ(118.235) 05.09 151 0
63723 % ㄹㅇ 프갤 테크트리 그대로 따라가노 [5] ㅇㅇ(211.234) 05.09 499 18
63722 % 쿠팡 물류센터에 컨베이어는 ㅇㅇ(121.130) 05.09 59 0
63721 % 뭔놈의 서류가 붙질 않냐 ㅇㅇ [5] ㅇㅇ(118.235) 05.09 206 1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2