전체 글 116

__stdcall과 __cdecl

__cdecl에 대한 마소의 설명문 __cdecl은 C 및 C++ 프로그램의 기본 호출 규칙입니다. 스택은 호출자에 의해 정리되므로 vararg 기능을 수행할 수 있습니다. __cdecl 호출 규칙은 각 함수 호출에 스택 정리 코드를 포함해야 하기 때문에 __stdcall보다 더 큰 실행 파일을 생성합니다. 다음 목록은 이 호출 규칙의 구현을 보여줍니다. __cdecl 수정자는 Microsoft에만 적용됩니다. 변수나 함수 이름 앞에 __cdecl 수식자를 붙입니다. C 명명 규칙과 호출 규칙이 기본이므로 x86 코드에서 __cdecl을 사용해야 하는 경우는 /Gv(vectorcall), /Gz(stdcall) 또는 /Gr(fastcall) 컴파일러 옵션을 지정한 경우뿐입니다. /Gd 컴파일러 옵션은 _..

C++ 2024.01.26

Unreal Build Tool (UBT) & Unreal Header Tool (UHT)

1. Unreal Build Tool (UBT): - UBT는 Unreal Engine 프로젝트를 빌드하고 컴파일하는 데 사용되는 주요 빌드 도구입니다. Unreal Engine은 큰 규모의 게임 및 시뮬레이션 프로젝트를 다루기 위한 복잡한 코드 기반을 가지고 있으며, UBT는 이러한 프로젝트를 빌드하는 데 필요한 도구입니다. - UBT는 Visual Studio, Xcode, 또는 다른 C++ 컴파일러와 통합하여 C++ 코드를 컴파일하고, 게임 모듈 및 플러그인을 빌드합니다. - Unreal Engine의 C++ 코드는 일반적으로 `.cpp` 파일과 `.h` 파일로 구성되며, UBT는 이러한 파일을 컴파일하여 실행 가능한 게임 또는 애플리케이션으로 생성합니다. Unreal Build Tool (UBT)..

Unreal Engine 2023.10.05

오쿨루전 텍스쳐

오쿨루젼 텍스처(Occlusion Texture)"는 그래픽스 및 컴퓨터 그래픽스에서 사용되는 텍스처의 일종. 이 텍스처는 주로 오쿨루젼 매핑(Occlusion Mapping) 기술에서 사용되며, 그림자와 조명 효과를 시뮬레이션하거나 표현하기 위해 활용된다. 오쿨루젼 매핑 (Occlusion Mapping): 오쿨루젼 매핑은 그림자 및 조명 효과를 시뮬레이션하기 위해 사용되는 기술 중 하나입니다. 이 기술은 빛이 특정 지점에서 얼마나 차단되었는지를 나타내는 텍스처를 사용하여 그림자와 그림자에 영향을 주는 오브젝트들을 렌더링하는 데 활용됩니다. 오쿨루젼 텍스처 (Occlusion Texture): 오쿨루젼 텍스처는 오쿨루젼 매핑을 지원하기 위해 사용되는 이미지 또는 텍스처입니다. 이 텍스처는 주로 흑백 또..

3D Rendering 2023.10.04

알베도 텍스쳐

알베도 텍스처(Albedo Texture)는 그래픽스 및 컴퓨터 그래픽스에서 사용되는 텍스처의 한 종류. 알베도는 표면의 색상 및 반사율을 나타내며, 객체나 재질의 기본 색상이나 표면 특성을 나타내는 데 주로 사용된다. 1) 색상 및 반사율 정보: 알베도 텍스처는 픽셀 단위로 표면의 기본 색상을 저장합니다. 이것은 물체의 빛에 대한 반사율을 결정하는 데 중요한 역할을 합니다. 더 어두운 픽셀은 빛을 덜 반사하고 더 밝은 픽셀은 더 많은 빛을 반사합니다. 2) 재질 및 표면 특성 표현: 알베도 텍스처는 물체의 재질과 표면 특성을 표현하는 데 사용됩니다. 예를 들어, 나무, 돌, 금속 등 다양한 물체의 표면을 모방하기 위해 알베도 텍스처가 사용됩니다. 3) 빛과의 상호 작용: 알베도 텍스처는 물체가 주변 조..

3D Rendering 2023.10.04

텍스쳐 포맷과 픽셀 포맷

텍스쳐 포맷과 픽셀 포맷 텍스처 포맷 (Texture Format): 텍스처 포맷은 그래픽 텍스처의 데이터 구조와 저장 방식을 나타내는 것입니다. 텍스처 포맷은 주로 그래픽 카드 및 그래픽 API와 관련이 있으며, 텍스처 데이터를 어떻게 저장하고 압축하는지를 지정합니다. 예를 들어, DXT1, DXT5, ETC1, ASTC 등은 다양한 텍스처 포맷의 예시입니다. 이러한 포맷은 압축률, 품질, 투명도 처리 등에 대한 다른 기능을 제공하며 특정 하드웨어 및 플랫폼에서 지원됩니다. 텍스처 포맷은 주로 그래픽 엔진 개발자 및 게임 개발자와 같은 프로그래머들이 다룹니다. 픽셀 포맷 (Pixel Format): 픽셀 포맷은 이미지의 각 픽셀을 표현하는 방식을 나타냅니다. 이것은 이미지 데이터의 컬러 및 알파 채널 ..

3D Rendering 2023.10.04

텍스쳐 압축

1. BMP BMP 파일 포맷은 비트맵 디지털 그림을 저장하는 데 쓰이는 그림 파일 포맷이다 BMP는 말그대로 Bit 들의 Map이고, 오래된 이미지 포맷이다. 압축을 전혀 하지 않기 때문에 BMP로 저장하면 매우 큰 사이즈로 저장이 된다. BMP는 Indexed color, Direct color 속성을 가지고 있다. 그러나 파일 사이즈가 불필요하게 커서 이 포맷은 많이 사용되지 않지만 디코딩 할 것이 별로 없어 속도가 빠르다는 장점이 있다. 기본적으로 1~24비트의 색을 표현할 수 있다. 1비트는 2가지 색이며 24비트는 16777216가지 색이다. 알파 채널을 포함한 32비트 포맷이 윈도 XP에서 발표되었다. 일반적으로 데이터를 압축하지 않고 사용되지만, RLE 압축 방식도 지원한다. 장점 : 처리..

3D Rendering 2023.10.04

Delegate(언리얼 엔진)

C++ 에서는 델리게이트 시스템이 없지만, 언리얼은 자체적으로 델리게이트를 제공하고 있다. 델리게이트를 이용하는 것은 기존에 함수 포인터 등을 이용했던 것보다 간편하며 안전하다. 대리자를 통해 함수를 호출하므로 호출할 함수나 이를 포함하는 객체가 없어져도 대리자가 체크해 안전하게 함수를 호출할 수 있으며, 동일한 형을 가진 함수 여러 개를 대리자가 묶어서 관리하고 필요할 때 동시에 모두 호출할 수도 있다. 가장 간단히 익숙한 C++의 문법으로 델리게이트를 이해하려면 함수포인터 배열이라고 생각하면 된다. 다만, 함수포인터 배열보다는 안정성과 편의성을 조금 더 높였고, Blueprint와의 연계도 고려된 것이 언리얼의 Delegate이다. 델리게이트 오브젝트는 복사해도 완벽히 안전하다. 델리게이트는 값으로 ..

Unreal Engine 2023.10.04