본문 바로가기

Programming/Architecture

Architecture my OpenGL engine core3 일단 가장 큰 자료의 마지막에 도달했어요. 이번 컨트롤 전반적인 설계를 포스팅 하고 난 후에는 구현을 하느라 몇 일 동안 포스팅은 어려울 듯 하지만, 그래도 최대한 후다닭 해보도록 노력해야죠 :) 컨트롤 설계 역시 일단 추상적인 생각부터 해야 겠죠. 장비(Device)와 입력(Input) 컨트롤은 임의의 장비(Device)로 부터 임의의 신호(Input)를 받아서 처리 해주는 거에요. 임의라는 말은 일반화 되어 있지 않은 추상 클래스로 만들어야 겠죠? 컨트롤의 입장에서는 여러 개의 Device들을 가질 수 있어요. 키보드, 마우스, 조이스틱, 카메라, ... 그것들은 모두 Device를 상속 받겠죠? 그럼 아래와 같은 설계를 생각할 수 있을 거에요. 액션(Action)과 액션 맵(ActionMap) 신호.. 더보기
Architecture my OpenGL engine core2 지난 설계에 이어 디스플레이에 대한 설계와 설명을 진행 할게요. 포스팅 하기에 앞서, 확인 해 보고 싶은 몇 가지가 있었어요. 일단, 현재 만들었던 프로젝트는 확장성을 거의 염두 안하고 만든 대다가 오브젝트를 그리는 방법 자체도 전혀 원시적인 방법을 사용해서 테스트하는데 시간이 좀 걸렸네요^^;;; 빛이 오브젝트에 어떻게 영향을 받는지에 대해서 진행한 테스트 였는데, 왜 이런 테스트를 진행 했는지는 포스팅을 보면 이해가 가실 테구요. 단일 광원, 다수 오브젝트 다수라고 해봐야 두 개에요ㅋㅋ. 일단, 이 테스트는 굉장히 간단해요. 단일 광원이 오브젝트에 쐬였을 때 어떻게 보여질까~? 이고, 결과는 아래와 같아요. 다시 한번 말하지만, 지금 정점과 법선 벡터등의 설정이 전혀 되있지 않은 상태에서 테스트를 위.. 더보기
Architecture my OpenGL engine core1 일단, 한바탕 울음을 쏟고 포스팅을 시작 해야겠어요. ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 기존에 만들어 놓은걸 살포시 갈아엎고 다시 설계하기 시작 했거든요. 기존 설계는 확장을 하려면 너무 하드코딩하는 다형성이 전-혀 들어가 있지 않은 설계를 했기에, 어느정도 공부 후에 다시 시작 하고 있습니다.ㅜ 크흙 다행스러운건 기존의 함수들을 구지 없애 면서 할 필요는 없기 때문에, 프로세스에는 그렇게 큰 영향은 없어 보이는 거? 그래서 설계 초기 부터 생각의 흐름자체를 쭉- 정리해 나가는 게 설명하기도 좋을거 같고, 나중에 이런 부분이 제 스스로도 스킬적인 역량으로 쌓인다는 희망을 가지고 시작 할게요 :) 전체적인 구성과 목적 설계에 앞서 구성을 먼저 해야 겠죠? 제가 알아본 부분과 앞으로 이렇게 만들어야 겠다~ 하는 .. 더보기
06 Collaboration Diagram 협력 다이어그램 자체는 내용이 많거나 어려운 부분이 없기 때문에 이런저런 도입부 없이 바로 넘어 갈게요 :) 협력(Collaboration) 다이어그램 앞선 포스트와 매우 연관 있는 다이어그램 이에요. 시퀀스(Sequence) 다이어그램 이나 협력 다이어그램이나 객체간의 관계에 대해서 표현하는 것이고, 의미적으로 다른 게 있다면 시퀀스 다이어그램은 동적인 상태를 보여 주고 협력 다이어그램은 정적인 상태를 보여 준다는 거죠. 사용되는 요소 보기(box1) 사용 되는 요소 역시 간결해요 :D (개인적으로 많은 것을 공부하지 않아도 쉽게 익힐 수 있는 이런거 조으다조으다 요..ㅋ) 일단은, 협력 다이어그램을 만들어 볼까요? 협력 다이어그램 생성(Create Collaboration Diagram) 앞선 포스팅.. 더보기
05 Sequence Diagram 슬슬 마무리를 향해 가고 있는 다이어그램 포스팅 이네요 :) 으쌰 으쌰 힘내서 가볼까요?! 시퀀스 다이어그램(Sequence Diagram) 사용되는 요소 보기 시퀀스 다이어그램(Sequence Diagram)은 별도의 직역을 모르겠네요. 원래 원어 그대로 읽고 이해 하는걸 좋아라 하기 때문에, 일단은 시퀀스 다이어그램이라고 해 둘게요. 실제로 구현 상에서는 클래스 그 자체를 사용하지 않고, 클래스로 부터 만들어진 "객체"를 사용하는 건 다들 알고 계실 거에요. 그런 객체가 자신이 하게 되는 "일"을 구현상에서는 함수 또는 메소드(Function or Method)라고 하는데, 의인화 시킨다면 객체가 다른 객체에게 "메시지"를 전달 하는 거라고 보면 되요. 시퀀스 다이어그램(Sequence Diagram.. 더보기