목록전체 글 (125)
멈추지 않고 끈질기게
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 .Net 5.0 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 추상 클래스에 대해 알아보겠습니다. 1. 추상 클래스(abstract class)의 정의 추상 함수(abstract function)는 함수의 내용을 구현하지 않는 함수로, 함수의 반환형 앞에 abstract 키워드를 붙여 선언하고 구현부를 생략하고 세미콜론(;)으로 마무리합니다. 이러한 추상 함수를 1개이상 포함하는 클래스를 추상 클래스(abstract class)라고 합니다. 반대로 말하자면, 클래스 안에 추상 함수를 선언했다면 해당 클래스는 반드시 추상 클래스로 만들어야 합니다. 추상 함수 외에 일반적인 멤버 변수나 함수도..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 C++ 14 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 가상 함수에 대하여 알아보겠습니다. 1. 가상 함수(virtual function) 가상 함수(virtual function)란 상속 받은 클래스에서 재정의할 멤버 함수를 말합니다. 함수 이름 앞에 virtual 키워드를 작성하여 선언할 수 있습니다. 가상 함수는 상속 받은 클래스에서 재정의할 수 있으며, 재정의된 함수는 부모 타입의 포인터로 호출하더라도 해당 객체에 맞는 함수가 호출됩니다(반드시 재정의 해야하는 것은 아닙니다). 일반 멤버 함수 또한 하위 클래스에서 동일한 함수를 선언할 수 있으나, 이 경우 가상 함수와는 달리 부..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다. ※ 해당 포스팅은 하기 출처들을 참조하였습니다. - 오지현, 유니티 그래픽스 최적화 스타트업, 비엘북스, 2019 이번 포스팅에서는 라이트 프로브와 리플렉션 프로브에 대해 알아보겠습니다. 1. 라이트 프로브(Light Probe) 라이트 프로브의 필요성 라이트 맵은 비싼 라이팅 연산을 저렴한 비용으로 처리할 수 있는 좋은 방법이지만, static 오브젝트에만 반영된다는 한계가 있습니다. 동적 오브젝트는 위치에 따라 다른 라이팅을 받아야 하지만, 라이트맵을 사용하면 동일한 라이팅이 적용됩니다. 그림 1을 보면 그림자 안에 있는 오브..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 C++ 14 버전을 기준으로 작성되었습니다. 이번 포스팅에서는 C++의 타입 변환 연산자에 대해 알아보겠습니다. 1. static_cast static_cast는 논리적으로 문제가 없는 형 변환에 사용하는 연산자입니다. 예를 들어 정수 소수 간 변환(int float)이나 자식부모 클래스 간 형변환을 지원합니다. class Animal { }; class Dog : public Animal { }; class Cat : public Animal { }; int main() { // float 변환 X float ratio1 = 10 / 100; cout 자식) 형변환 모두 지원함을 알 수 있습..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다. ※ 해당 포스팅은 하기 출처들을 참조하였습니다. - 오지현, 유니티 그래픽스 최적화 스타트업, 비엘북스, 2019 이번 포스팅에서는 정적 라이트를 표현하는 기법인 라이트 맵에 대해 알아보겠습니다. 1. 라이트 맵(Light Map)이란 라이트 맵(Light Map)이란 전역 조명(GI, Global Illumination)과 그림자 등을 포함한 라이팅 정보를 미리 연산하여 텍스처로 저장하는 기능을 말합니다. 유니티에서 해당 기능을 사용하려면 씬에 광원을 배치하고 사전에 연산하여 라이트 맵을 생성해야 하며, 이 과정을 Bake 라고..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 하기 출처들의 내용을 참고하였습니다. - https://mangkyu.tistory.com/15 - https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-22편-TCP-3-WayHandshake-4-WayHandshake - https://www.cloudflare.com/ko-kr/learning/ddos/glossary/user-datagram-protocol-udp/ 이번 포스팅에서는 TCP와 UDP에 대해 알아보겠습니다. 서론 네트워크 계층마다 사용하는 프로토콜이 존재하며, 제 4계층인 전송 계층은 데이터 전송을 위한 프로토콜을 포함하고 있습니다. 이러한 ..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 하기 출처들을 참고하였습니다. - 애덤 우드벡, Go 언어를 활용한 네트워크 프로그래밍, 제이펍, 2022 이번 포스팅에서는 네트워킹 표준화를 위한 OSI 참조 모델에 대해 알아보겠습니다. 1. OSI 참조 모델 OSI(Open System Interconnection) 참조 모델은 국제 표준화기구(ISO)에서 발표한 네트워킹 표준화를 위한 모델로서, 네트워크 통신 과정을 7개의 계층으로 나누어 OSI 7계층(OSI 7 Layer) 라고도 합니다. 각 계층을 독립적인 구조로 구분하고 역할을 명확하게 정의하여 네트워크 통신 구조를 이해하는데에 중요한 역할을 합니다. 2. 계층 구조 레이어 OSI..
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다. ※ 해당 포스팅은 Unity 2021.3.15f1 버전을 기준으로 작성되었습니다. ※ 해당 포스팅은 하기 출처들을 참조하였습니다. - 오지현, 유니티 그래픽스 최적화 스타트업, 비엘북스, 2019 이번 포스팅에서는 그림자를 그리는 방식인 쉐도우 매핑에 대해 알아보겠습니다. 1. 쉐도우 매핑의 원리 쉐도우 매핑은 카메라에서 측정한 깊이값(Depth)과 광원에서 측정한 깊이값이 다를 경우 이를 이용하여 그림자를 그리는 방식입니다. 우선 카메라로부터 픽셀의 위치까지의 거리를 렌더링하여 뎁스 텍스처(Depth Texture)를 생성합니다. 한마디로 카메라를 기준으로 픽셀까지의 거리(깊이)를 저장합니다. 여기에 추가로 ..