TScopedPointer
·
Unreal Engine 4/Unreal Engine 4
범위 포인터는 선언된 블록의 끝에서 자동 삭제되는 포인터다. 범위는 첫 번째 닫기 괄호가 나타날 때까지 지속된다. ex) { int x; { int y; } // y의 범위 } // x의 범위 범위 포인터는 사용 기간 동안 참조 카운트 오브젝트(대상은 범위 밖으로 나갈 위험이 있는 오브젝트)를 유지하는 것이 중요할 때 유용하다. ex) TScopedPointer warrior(this); TScopedPointer 변수 타입은 참조 카운트를 자동으로 추가하며, 이를 통해 범위 포인터의 수명 동안 기본 오브젝트의 할당이 해제되지 않는다.
TSharedPtr, TSharedRef
·
Unreal Engine 4/Unreal Engine 4
원시포인터를 사용하지 않길 원하면서 C++코드에서 수동으로 UObject 파생이 아닌 오브젝트를 추적하고 삭제하는 상황에 TSharedPtr, TSharedRef같은 스마트 포인터가 좋은 후보이다. TSharedPtr : 1. 쓰레드로부터 안전한 참조 카운터 포인터 타입으로 공유 오브젝트를 나타낸다. -> 두 번째 파라미터를 ESPMODE::ThreadSafe를 전달한 경우 2. 공유 오브젝트는 더 이상 참조가 없을 때 할당 해제된다. TAutoPtr 1. 쓰레드로부터 안전하지 않은 공유 포인터 C++ 원시포인터를 가져다가 TSharedPtr, TSharedRef, TWeakPtr, TAutoPtr중 하나에 해당하는 생성자 호출로 포장하면 된다. ex) //UObject에서 파상되지 않은 C++ 클래스 ..
윈도우즈 프로그래밍 3주차
·
학교수업
Drawing WM_PAINT message handler -> OnPaint 함수를 이용 CPaintDC dc(this); // 그리기 위한 디바이스 컨텍스트 dc.Rectangle(x1,y1,x2,y2); 사각형 dc.Ellipse(x1,y1,x2,y2); 원형 WM : 윈도우에서 제공하는 기본 메세지 WM_PAINT : 화면을 다시 그릴 필요가 있다고 판단될 경우 발생하는 메세지 - 무효 영역 : 윈도우의 일부가 지워졌을 때 지워진 작업 영역을 무효로 만들어 다시 그리도록 하는 것 -> 다시 그리도록 강제 무효화 함수 InvalidateRect WM_PAINT 호출시기 (OS가 호출) 1. 윈도우가 생성될 때 2. 윈도우 크기 변경, 최소화, 최대화 시 3. 다른 윈도우에 가려졌다가 다시 나타날 때..
UNIX서버 2주차
·
학교수업
gcc 컴파일러(GNU cc컴파일러) / 상업용 cc컴파일러도있다. 컴파일 $gcc [-옵션] 파일 컴파일 $gcc longest.c -> $a.out //default 실행 파일 -c 옵션(compile) $ gcc -c longest.c //longest.o 목적 파일 생성 longest.c를 compiler가 assembly code로 변환시키고 assembler가 이를 longest.o(기계어 코드) 목적파일로바꾼다 -o 옵션(compile & link) $ gcc -i longest(실행파일) longest.o // link, longest:실행 파일 혹은 $ gcc -i longest longest.c //compile & link $ longest //실행 파일 명 $ a.out < inpu..
컴퓨터 그래픽스 기초 2주차
·
학교수업
컴퓨터 그래픽스는 영화나 게임에서 실제 세상보다 과장하여 표현하여 몰입감을 증가시킨다. Geometric Modeling Methods 1. Constructive Solid Geometry 합집합, 차집합, 교집합을 이용한 방식 -> CAD/CAM(캐드)에서 자주 사용 장점 : function을 이용하여 모델을 구현할 수 있다. -> 2가지 모델을 합치는 경우에도 각각의 함수를 합치는 방식으로 구현한다. 함수1+함수2 => 함수3 2. Bezier Curved Surface - 1차 Bezier Curves => 직선 - 2차 Bezier Curves => 곡선 - 3차 Bezier Curves => 매끄러운 곡선을 그리기 우히ㅏㄴ 방식 3. Simplification Surfaces(간략화) -> 삼..
게임공학개론 2주차
·
학교수업
뷰포트 시점 변경 원근(3D) : 원근감을 사용해 맵을 렌더링하는 시점 직교 좌표(2D) : 상단, 정면, 측면의 단면도 표시 (상단 가장 많이 사용) -> 멀티 뷰 지원 지오메트리 브러시 -> 영구적으로 고정된 영역을 나타냄 -> 레벨 윤곽 작업으로 사용 (테스트 후 최종 레이아웃 생성) 지오메트리 마다 속성값이 다르다 - 박스 : x,y,z - 원뿔 : 높이, 바닥 반지름, 면수 - 굽은계단 : 반지름, 높이, 폭, 굽은각도, 계단수 - 직선계단 : 길이, 높이, 폭, 계단수, 계단 높이 조명 - 디렉셔널 라이트 : 방향만 중요(위치 중요X), 하나를 이용해 맵 전체 시야 확보, 배치 위치 중요하지않음 지오메트리 브러시 사용 - transform scale이 아닌 brush의 크기를 가지고 영역 크기..