Development37 [STL] vector에서 size(), reserve() 함수의 역할 - size() 함수는 전달된 인자만큼의 요소 갯수를 늘리고 초기화(생성)한다. - reserve() 함수는 전달된 인자가 들어갈 만큼의 메모리를 예약(할당)할 뿐 요소를 추가하지는 않는다. 2013. 12. 11. 복사생성자와 복사 대입 연산자 복사생성자 : 객체 정의시 특정 객체를 매개변수로 사용할 때 호출되는 생성자 예) Widget(const Widget& rhs); - 자기자신의 인스턴스에 대해 대입될 경우 호출된다. - 함수의 인자로 들어갈때 복사되는 과정에서 호출된다. - 함수의 리턴값으로 사용되면서 복사되는 과정에서 호출된다. - 디폴트 복사 생성자가 생성되나 단순히 값에 의한 복사를 함으로 (얕은 복사) 위험한 요소가 있다. - 하여 동적 할당된 메모리를 복사해야 할 경우 사용자 정의 복사 생성자를 정의하여 깊은 복사를 구현해주어야한다. 복사 대입 연산자 : 같은 타입의 다른 객체에 어떤 객체의 값을 복사하는 용도로 쓰이는 함수 예) Widget& operator=(const Widget& rhs); 어떤 객체가 새로이 정의될 때.. 2013. 12. 11. 데이터(data), 스택(stack), 힙(heap) 영역 실행중인 프로그램은 메모리가 할당된다. 이 메모리 공간의 종류는 데이터 영역, 스택 영역, 힙 영역이 있다. 데이터 : 전역변수 (프로그램 시작 후 메모리 공간에 올라가서 종료시까지 존재)를 위한 영역 Static변수 (프로그램 시작과 동시에 메모리 공간에 올라가서 종료시까지 존재)를 위한 영역 스택(Stack)은 지역변수, 매개변수 같은 컴파일 타임에 크기가 결정되는 메모리를 올리는 공간이다. 여기서 컴파일 타임에 크기가 결정된다는 점에 주목하자. 예를 들어 배열을 선언할 경우 int arr[10];이런식의 선언은 컴파일때 40바이트라는 크기가 결정되기 때문에 Stack에 올라간다. int a = 4; 이 경우 int 형 4바이트가 크기로 선언되고, 4라는 값이 들어가는 부분은 런타임시 결정된다. 즉,.. 2013. 12. 11. software rendering 텍스쳐 샘플러 큰 원본 텍스쳐를 확대하는 경우 해상도가 엄청나게 높지 않은이상 픽셀이 깨져보이기 마련이다. 해결하는 방법으로는 레티나 디스플레이처럼 특정 거리 내에서는 인간의 눈으로 화소를 구분하지 못할 정도로 화소를 높이는 방법이 있겠으나 아무래도 비싼 비용이 소모된다. 또 다른 방법으로는 밉맵을 이용하는 방법이 있다. 밉맵은 큰 원본 텍스쳐와 그 외에 작은 해상도의 텍스쳐를 미리 준비하고, 확대될 경우 미리 만들어져있는 해상도의 텍스쳐와 바꿔서 출력하는 기술이다. 렌더링에 사용되는 픽셀 자체의 수가 줄어들기 때문에 실시간 렌더링에 부하가 적게 들고, 렌더링 과정에서 일어나는 손실도 줄일 수 있다. 이때 밉맵에는 안티앨리언싱 효과도 함께 들어가있다. 이는 인접한 픽셀이 맞닥뜨릴때, 이를 보간을 통하여 자연스러운 색 .. 2013. 12. 11. 이전 1 2 3 4 5 6 7 8 ··· 10 다음