2008~9년에 이녀석을 가지고 3D 프로그램을 개발했었는데 밑의 글에 OpenSeneGraph를 쓰시려는 분이 계셔서 오랫만에 생각났네요. <div>몇년만에 홈페이지 들어가니 깔끔하게 싹 바뀌었군요.</div> <div><a target="_blank" href="http://www.openscenegraph.org/">http://www.openscenegraph.org/</a> <div><br></div> <div>OSG는 이름에서도 알 수 있듯이 Scene Graph라는 구조를 취하고 있습니다.</div> <div>장면(Scene) 내의 각각의 객체들을 그래프 구조 저장하고, 각각의 객체의 속성을 변경시키면 그것이 화면에 반영되는 것이지요.</div> <div><br></div> <div><div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201507/1435845812XZnIPw2JJiB.png" alt="osg-road-truck-crates.png" style="border:none;width:320px;height:268px;"></div> <div style="text-align:left;">그림출처: <a target="_blank" href="http://www.stackedboxes.org/~lmb/en/computer-stuff/asittbpo-open-scene-graph/chapter-1-the-basics">http://www.stackedboxes.org/~lmb/en/computer-stuff/asittbpo-open-scene-graph/chapter-1-the-basics</a></div> <div style="text-align:left;"><br></div> <div style="text-align:left;">즉 OpenGL의 함수들을 쓰지 않고 객체지향적으로 개발을 할 수 있다는 뜻입니다!</div> <div style="text-align:left;">게다가 OSG는 Scene Graph 구조라 객체가 여기저기서 참조되다 보니 기본적으로 스마트 포인터를 사용합니다.</div> <div style="text-align:left;">C++의 포인터를 다루는 수고스러움이 많이 줄어든다는거죠.</div> <div style="text-align:left;"><br></div>제가 제일 처음 만들었던 C++ 프로젝트가 이거였어요.</div> <div>덕분에 MFC라는 C++ 객체지향의 최대 함정에 빠지지 않았고, 이때 배운 개념들 가지고 지금 Qt를 하면서 열심히 써먹고 있습니다.ㅎㅎ</div></div> <div>(MFC는 객체지향이라는 관점에서 보면 정말 끔찍합니다... OSG나 Qt는 정말 깔끔하구요.)</div> <div><br></div> <div>또 한가지 좋은점은 OSG에는 이미 3D 프로그램이라면 필요로 할만한 기능들을 대부분 내장하고 있습니다.</div> <div>각종 화면 효과라던가, 마우스/키보드 조작에 사용되는 모듈, 3차원 텍스트 출력, 애니메이션, 여러 종류의 모델 파일 형식 지원, 심지어 지형을 그려주는 모듈이나 시뮬레이션을 구현하기 위한 모듈도 있지요.</div> <div><br></div> <div>OSG를 기반으로 하는 프로젝트들도 많이 존재합니다.</div> <div>구글어스처럼 3D로 지형/지도를 그려주는 osgEarth( <a target="_blank" href="http://osgearth.org/">http://osgearth.org/</a> ),</div> <div>비행 시뮬레이션 FlightGear( <a target="_blank" href="http://www.flightgear.org/">http://www.flightgear.org/</a> ) 같은 것들이 대표적입니다.</div> <div><br></div> <div>예전엔 없었는데 검색하다보니 osgjs 라는 것도 있네요.</div> <div>WebGL을 OSG와 비슷한 컨셉으로 사용하게 해 주는 자바스크립트 라이브러리라고 합니다.</div> <div><a target="_blank" href="http://osgjs.org/">http://osgjs.org/</a></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.