렌더링(Rendering) 렌더링이란 3차원 공간에 객체(Object)를 2차원 화면인 하나의 장면(Scene)에 바꾸어 표현하는 것을 말한다. 즉 2차원에 표시된 물체를 3차원에 물체처럼 보이게 하는 것이라고 이해하면 쉽다. 렌더링 과정에는 크게 변환(Transformation)과 색칠(Color, Ligthing) 과정으로 구분할 수 있는데 변환 과정이란 3차원 모델 좌표계의 정점들을 2차원 모델 화면 좌표계로 바꾸는 것이고 색칠 과정이란 화면에 그려지는 객체의 색체와 조명 또는 매핑 등으로 원하는 효과 또는 실제 물체와 동일한 물체로 표현하는 것을 말한다. 여기서 좌표 변환 과정에서의 내용을 조금 더 세부적으로 알아볼 수 있는데 이런 일련의 렌더링 과정이 진행되는 렌더링 파이프라인을 보며 알 수 있..
프로그래밍 관련
[행동 패턴] 반복자 패턴 - Iterator 반복자 패턴은 리스트와 같은 집합 객체들이 내부 표현부를 노출하지 않고 어떤 집합 객체에 속한 원소들을 순차적으로 접근하는 패턴입니다. (C++ 에서는 기본적으로 STL 컨테이너를 순회하는 iterator를 기본으로 제공합니다.) 목적 내부 표현부를 노출하지 않고 어떤 집합 객체의 속한 원소들을 순차적으로 접근할 수 있는 방법을 제공합니다. 활용 - 정의한 방법과 다른 방법으로 원소들을 순회하고자 할 때- 동일한 리스트에 대해서 하나 이상의 순회방법을 정의하고 싶을 때- 객체 내부 표현 방식을 모르고도 집합 객체의 원소에 접근하고 싶을 때- 집합 객체를 순회하는 당양한 방법을 지원하고 싶을 때- 서로 다른 집합 객체 구조에 대해서도 동일한 방법으로 순회하고 ..
[디자인 패턴] 관찰자 패턴 - Observer 해당 패턴에 들어가기에 앞서 관찰자 디자인 패턴은 닷넷에 (무려! MSDN!!)에 설명되어 있고 또한사용 가능한 인터페이스를 제공해주고 있습니다. [MSDN 관찰자 패턴] push_back(ob);} void Subject::Detach(Observer* ob){ _observers->remove(ob);} void Subject::Notify(){ auto iter_observer = _observers->begin(); for (iter_observer; iter_observer != _observers->end ; iter_observer.operator++) { (*iter_observer)->Update(this); }}Colored by Colo..
트리 TREE 트리 구조(tree 構造, 문화어: 나무구조)란 그래프의 일종으로, 여러 노드가 한 노드를 가리킬 수 없는 구조이다. 간단하게는 회로가 없고, 서로 다른 두 노드를 잇는 길이 하나뿐인 그래프를 트리라고 부른다. 트리에서 최상위 노드를 루트 노드(root node 뿌리 노드[*])라고 한다. 또한 노드 A가 노드 B를 가리킬 때 A를 B의 부모 노드(parent node), B를 A의 자식 노드(child node)라고 한다. 자식 노드가 없는 노드를 잎 노드(leaf node 리프 노드[*])라고 한다. 잎 노드가 아닌 노드를 내부 노드(internal node)라고 한다. 트리 (Tree) 트리 구조란 계층적인 구조를 가지는 자료형태를 말합니다. 노드로 구성된 자료구조이며, 회사의 조직구..
큐 QUEUE 큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다. 영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다 나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다. 프린터의 출력 처리나 윈도 시스템의 메시지 처리기, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용된다. 선형 큐 (linear queue) 은행업무에소 표를 뽑거나 줄을 서서 기다리는 사람들을 생각하면 쉬울 것 같습니다. 크기가 제한되어 있고 빈 공간을 사용하려면 모..
스택 STACK 스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)으로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸시(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 하는데, 이때 꺼내지는 자료는 가장 최근에 보관한 자료부터 나오게 된다. 이처럼 나중에 넣은 값이 먼저 나오는 것을 LIFO 구조라고 한다. 쉽게 어떠한 박스에 물건을 하나씩 담아 넣고 꺼낼려면 위에서부터 꺼내야 하는 상황을 생각하면 될 것 같습니다. 배열을 이용한 스택 구현 class ..
행렬 - MATRIX 수학에서, 행렬(行列, matrix)은 수나 기호, 수식 등을 네모꼴로 배열한 것으로, 괄호로 묶어 표시한다. 3차원 이미지를 2차원 평면에 투영하거나 사실적인 움직임을 그려내기 위해서 사용한다 행렬은 행(row)가 열(column)이 있는 격자모양 배열에 스칼라를 나열한 것입니다. 행렬 안에 나열된 스칼라를 요소(element)라 부르고 a11처럼 나열할 수 있습니다. 유니티와 다이렉트 X에서는 4*4 행렬을 사용합니다. (정사각형 행렬) 행열의 요소에 관해서 일때 a와 b가 같은 요소들을 대각요소(diagonal element)라고 합니다. 정사각형 행렬에서 대각 요소를 제외한 나머지 요소가 모두 0인 행렬을 대각행렬(diagonal matrix) 이라고 합니다. 1. 단위 행렬..
다만, 다른 입력값에서 동일한 해시 값이 발생되는값이 같을 때 발생하는 충돌(Collision)문제가 있는데, 이것을 해결해야 하는 방법이 필요합니다. 1. 열린 어드레싱 방법 (Open Addressing Method) 선형 조사법(Linear Probing) : 충돌이 발생했을때 그 옆자리가 비어있는지 살펴보고, 비어있을 경우 그 자리에 대신 저장하는 방식 [이미지 출처 : http://faculty.cs.niu.edu/] 쉽게 옆자리가 비어있으면, 그 옆자리로.. 그 옆자리가 이미 있으면 그 옆자리로..계속 식으로 이동하게 되는 것 입니다. 계산이 단순하다는 장점이 있지만, 검색에 시간이 많이 소요되고, 테이블 내에 데이터들이 일정한 키 값으로 모이는 현상이 발생합니다. 이차 조사법 (Quadrat..