게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
OpenGL 기반 3D 개발 라이브러리: OpenSceneGraph
게시물ID : programmer_11829짧은주소 복사하기
작성자 : REGENTAG
추천 : 4
조회수 : 3037회
댓글수 : 7개
등록시간 : 2015/07/02 23:22:30
2008~9년에 이녀석을 가지고 3D 프로그램을 개발했었는데 밑의 글에 OpenSeneGraph를 쓰시려는 분이 계셔서 오랫만에 생각났네요.
몇년만에 홈페이지 들어가니 깔끔하게 싹 바뀌었군요.
http://www.openscenegraph.org/

OSG는 이름에서도 알 수 있듯이 Scene Graph라는 구조를 취하고 있습니다.
장면(Scene) 내의 각각의 객체들을 그래프 구조 저장하고, 각각의 객체의 속성을 변경시키면 그것이 화면에 반영되는 것이지요.

osg-road-truck-crates.png
그림출처: http://www.stackedboxes.org/~lmb/en/computer-stuff/asittbpo-open-scene-graph/chapter-1-the-basics

즉 OpenGL의 함수들을 쓰지 않고 객체지향적으로 개발을 할 수 있다는 뜻입니다!
게다가 OSG는 Scene Graph 구조라 객체가 여기저기서 참조되다 보니 기본적으로 스마트 포인터를 사용합니다.
C++의 포인터를 다루는 수고스러움이 많이 줄어든다는거죠.

제가 제일 처음 만들었던 C++ 프로젝트가 이거였어요.
덕분에 MFC라는 C++ 객체지향의 최대 함정에 빠지지 않았고, 이때 배운 개념들 가지고 지금 Qt를 하면서 열심히 써먹고 있습니다.ㅎㅎ
(MFC는 객체지향이라는 관점에서 보면 정말 끔찍합니다... OSG나 Qt는 정말 깔끔하구요.)

또 한가지 좋은점은 OSG에는 이미 3D 프로그램이라면 필요로 할만한 기능들을 대부분 내장하고 있습니다.
각종 화면 효과라던가, 마우스/키보드 조작에 사용되는 모듈, 3차원 텍스트 출력, 애니메이션, 여러 종류의 모델 파일 형식 지원, 심지어 지형을 그려주는 모듈이나 시뮬레이션을 구현하기 위한 모듈도 있지요.

OSG를 기반으로 하는 프로젝트들도 많이 존재합니다.
구글어스처럼 3D로 지형/지도를 그려주는 osgEarth( http://osgearth.org/ ),
비행 시뮬레이션 FlightGear( http://www.flightgear.org/ ) 같은 것들이 대표적입니다.

예전엔 없었는데 검색하다보니 osgjs 라는 것도 있네요.
WebGL을 OSG와 비슷한 컨셉으로 사용하게 해 주는 자바스크립트 라이브러리라고 합니다.
http://osgjs.org/
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호