점심 식사는 잘 하셨나요? ^-^)
3D 이미지가 포함된 앱을 만들려고 하는데, 제가 원래 개발자 출신도 아니고 관련 지식도 얕아서 고생중입니다.
마땅히 물어볼 사람이 없어서 구글링을 통해서 3D 관련 지식을 얻고자 했는데, 며칠동안 제가 원하는 내용을 찾기가 힘들어서 이렇게 질문 드립니다. 질문 내용이 저속하더라도 양해 부탁 드립니다.
구글링을 해본 결과 보통 안드로이드 3D 그래픽 개발은,
1. opengl 라이브러리를 통해 하거나,
2. C, C++에서 3d 그래픽 관련 코딩을 해서 ndk build해서 사용하거나
3. unity 3d와 같은 엔진을 사용해서 진행하는 걸로 알고 있습니다.
opengl 라이브러리를 통해 하는 방법은 대략적으로 알겠는데 찾아본 예제가 다 만들어진 3D 이미지를 사용하는게 아니라, 큐브형태의 이미지를 그려서 하는 예제만 확인 하였습니다.
제가 궁금한 사항은, 예를들어 구글의 스케치업이나 유명한 3D 프로그램을 이용하여 만들어진 3D 이미지 파일을 안드로이드에 불러와서 사용할 수 있는 방법이 있을까요? 있다면 그 소스도 알 수 있을까요?
아니면 구글링을 통해 http://edndoc.esri.com/arcobjects/9.2/java/api/arcobjects/com/esri/arcgis/geoprocessing/tools/analyst3dtools/Import3DFiles.html 에 이라는 class을 사용해서 가능할 수도 있다는 사실을 알았는데, 해당 라이브러리를 구할 수 있는 방법이 있을까요?
알려주시면 대단히 감사하겠습니다.
대박나는 하루 되십시요.




우선은 openGL 이라는 것에 대한 개념을 잡으셔야 할 것 같습니다.
opengl 은 단순한 그래픽 라이브러리가 아닌 그래픽 하드웨어로 접근을 해주고 접근을 할수있는 최소한의 통로를 확보해 주는 것입니다.
즉, C/C++, NDK, 자바 등을 사용할때도 opengl 을 사용하게 되는 것입니다.
한마디로 말하자면 보통의 3D 엔진이라함은 opengl을 사용하는 하이레벨 함수군입니다.
언리얼엔진, 퀘이크엔진 유니티 3d등이 이에 속합니다.
opengl 이외의 하위레벨 개념으로는 다이렉트X 가 있습니다.
즉, 거의 대부분의 3d 엔진은 openGL 아니면 다이렉트3D 를 이용해서 상위 개념의 함수군을 만드는 것입니다.
고로 C, C++ 을 이용해서 NDK로 만드신다고 해도 openGL 을 이용하셔야되는겁니다.
유명한 3d 툴의 데이터를 불러오기 위해서는 3d 개념을 먼저 파악하셔야 됩니다.
3D를 잘 모르면 2D bitmp을 불러오듯 쉽게 불러올수 있지는 않습니다.
당장에 그냥 데이터만 불러와서 보여주는 것이라면 어딘가에는 오픈된 소스가 있을 것입니다.
그러나 불러와서 무엇인가 해야한다면 최소한 스케일, 이동 및 회전에 대한 이해가 필요합니다.
그리고 머터리얼과 라이트, 카메라 등의 추가 이해가 필요하구요.
저번에도 글을 올리신듯 합니다만...
3D는 2D처럼 쉽게 속성으로 배울만한 기술이 아닙니다.
특히 프로그래밍 분야라기보단 수학/물리학적 개념이 더 중요하기 때문입니다.
그런 이해가 부족한 분들을 위해서 나온게 유니티 3D구요.