한창 USB 소프트들에 빠져서 자료를 찾다가 우연히 OpenGL 을 사용한
다양한 유틸리티를 보게 되었다. 그중 눈에 띄는게 있었는데 리눅스 버젼의
3D Desktop 이었다. 화면전환 하는 프로그램들은 많이 봐왔지만 이렇게
재미있게 만들수도 있구나 하는 생각이 들었다.
그래서 내친김에 OpenGL을 조금 공부했는데 처음 접하는 3차원 좌표때문에
많이 버벅였다. 이런저런 샘플들을 가지고 테스트를 여러차례 해가면서
하나하나 풀어가는데 가장 몇가지 문제 때문에 몇주의 시간을 소비했다.
첫번째로 직면한 문제는 카메라 각도와 거리를 제대로 잡지 못해서 한참을
고심했는데 이런 저런 꽁수를 써서 간신히 잡고 한숨 돌렸지만 이런 방식으로
잡는게 맞나 하는 의아한 생각이 든다. 아직도 제대로 돌아가는건지 조금
의심스럽긴한데 뭐 여튼 결과적으론 문제없이 돌아간다.
두번째로 찾아온 문제는 OpenGL 또는 Direct3D 에선 2의 n승 크기의 넓이와
높이를 가진 이미지를 읽어들일땐 엄청빠를 속도를 내지만 그 이외의 크기를
가지고 있는 이미지를 읽어들일땐 크게는 50배 이상 저속으로 읽어들인다는
것이었다. 솔직히 아직도 왜 그런지 모르지만 아마도 그래픽 카드에 담겨진
그래픽 엔진들과 관련이 있을거라는 생각이 든다. 처음엔 OpenGL의 한계라
생각하고 모든 소스를 Direct3D 로 변경 했는데 Direct3D 또한 똑같은 결과를
가져왔다. 결국 어떤 방식을 취하든 소프트웨어의 문제가 아니라는 결론에
다시 OpenGL에서 답을 찾기로 했다. 특별히 OpenGL 이 성능이 좋거나
보다 많은 함수를 가지고 있거나 해서 Direct3D 가 아닌 OpenGL 을 선택한건
아니고 그냥 DirectX 관련 기술들을 별로 좋아하지 않아서다.
3D 샘플을 만드는데는 3주 이상의 시간을 소비했는데 4Way 소스와 결합 하는데는
하루에 끝나버렸다.
나름대로 원하는 결과물이 나오긴 했는데 솔직히 적어도 나는 사용하지 않을것 같다.
메모리를 너무 많이 잡아먹는다. 1280*800 해상도에선 30M 정도의 메모리를
사용하지만 모니터에 연결해서 1680*1050 모드에서 돌리면 70M 정도 차지한다.
어떻게든 메모리 소비를 줄일려고 노력해 봤지만 그럴경우 너무 속도가 느려져서
사용하는데 답답하다. 뭔가 방법을 찾아야 하는데 아직 OpenGL 의 기능을
제대로 이해하고 있지 못해서 메모리 문제는 다음 과제로 남겨두기로 했다.
다양한 유틸리티를 보게 되었다. 그중 눈에 띄는게 있었는데 리눅스 버젼의
3D Desktop 이었다. 화면전환 하는 프로그램들은 많이 봐왔지만 이렇게
재미있게 만들수도 있구나 하는 생각이 들었다.
그래서 내친김에 OpenGL을 조금 공부했는데 처음 접하는 3차원 좌표때문에
많이 버벅였다. 이런저런 샘플들을 가지고 테스트를 여러차례 해가면서
하나하나 풀어가는데 가장 몇가지 문제 때문에 몇주의 시간을 소비했다.
첫번째로 직면한 문제는 카메라 각도와 거리를 제대로 잡지 못해서 한참을
고심했는데 이런 저런 꽁수를 써서 간신히 잡고 한숨 돌렸지만 이런 방식으로
잡는게 맞나 하는 의아한 생각이 든다. 아직도 제대로 돌아가는건지 조금
의심스럽긴한데 뭐 여튼 결과적으론 문제없이 돌아간다.
두번째로 찾아온 문제는 OpenGL 또는 Direct3D 에선 2의 n승 크기의 넓이와
높이를 가진 이미지를 읽어들일땐 엄청빠를 속도를 내지만 그 이외의 크기를
가지고 있는 이미지를 읽어들일땐 크게는 50배 이상 저속으로 읽어들인다는
것이었다. 솔직히 아직도 왜 그런지 모르지만 아마도 그래픽 카드에 담겨진
그래픽 엔진들과 관련이 있을거라는 생각이 든다. 처음엔 OpenGL의 한계라
생각하고 모든 소스를 Direct3D 로 변경 했는데 Direct3D 또한 똑같은 결과를
가져왔다. 결국 어떤 방식을 취하든 소프트웨어의 문제가 아니라는 결론에
다시 OpenGL에서 답을 찾기로 했다. 특별히 OpenGL 이 성능이 좋거나
보다 많은 함수를 가지고 있거나 해서 Direct3D 가 아닌 OpenGL 을 선택한건
아니고 그냥 DirectX 관련 기술들을 별로 좋아하지 않아서다.
3D 샘플을 만드는데는 3주 이상의 시간을 소비했는데 4Way 소스와 결합 하는데는
하루에 끝나버렸다.
나름대로 원하는 결과물이 나오긴 했는데 솔직히 적어도 나는 사용하지 않을것 같다.
메모리를 너무 많이 잡아먹는다. 1280*800 해상도에선 30M 정도의 메모리를
사용하지만 모니터에 연결해서 1680*1050 모드에서 돌리면 70M 정도 차지한다.
어떻게든 메모리 소비를 줄일려고 노력해 봤지만 그럴경우 너무 속도가 느려져서
사용하는데 답답하다. 뭔가 방법을 찾아야 하는데 아직 OpenGL 의 기능을
제대로 이해하고 있지 못해서 메모리 문제는 다음 과제로 남겨두기로 했다.
Recent Comment