본문 바로가기

전체 글9

1.1 프로그램과 프로세스 더보기앞으로도 그렇겠지만 이번에 다룰 내용들은 서버에 국한된게 아닌 OS, 하드웨어와 관련해서도 작성할 것이다. 이유는 서버를 공부하는 과정에서 나오는 내용이기 때문이다.프로그램이란 컴퓨터에서 실행되는 명령어 모음이 들어 있는 데이터 덩어리를 의미한다.크게 코드(code)와 데이터(data)로 구성되어 있다. 프로그램 자체로는 아무런 의미가 없고 우리가 그것을 더블클릭하여 실행시면 코드가 한 줄씩 실행되면서 프로그램은 뭔가 활동을 하는 상태가 된다. 이를 프로세스(process)라고 한다. 프로그램에 있는 코드와 데이터는 이 프로세스 메모리로 불러들인다. 프로세스 메모리에는 프로그램 코드와 데이터는 물론 힙(heap)메모리와 스택(stack)메모리도 공존한다. 스택에는 현재 실행 중인 함수들의 호출 기록.. 2024. 6. 12.
[UE5] Error : UnrealBuildTool.dll not found in... 해결 Generate Visual Studio project files를 했을 때, 이런 오류가 떴는데 C:\Program Files\Epic Games\UE_5.3\Engine\Source\Programs\UnrealBuildTool 언리얼엔진 경로에 들어가서 UnrealBuildTool을 찾아 들어간다음UnrealBuildTool.sln을 빌드하니까 해결 됐다. 2024. 2. 15.
[UE5] BackpackRogue #1 Character Stat에 대한 고민을 많이 했다. PC든 NPC든 같은 Stat System을 사용하고 싶었고 Character Stat + Additional Stat(무기 또는 스킬로 인한 추가 스탯, StatModifier) = Calculated Fianl Stat을 어떻게 만들어야 할지 고민해야 했다. 또한 Dexterity와 같은 스탯이 올라가면 CriticalChance같은 스탯에 영향이 갈 수도 있다. 2023. 11. 3.
Programmers - 대소문자 바꿔서 출력하기 #include #include using namespace std; int main(void) { string str; cin >> str; int asciiDiff = 'a' - 'A'; for (int i = 0; i < str.size(); i++) { if (str[i] < 'a') { str[i] += asciiDiff; } else { str[i] -= asciiDiff; } cout 2023. 11. 1.
2-3. 교환 사슬과 페이지 전환 (SwapChain) 전면 버퍼(Front Buffer)에 모든 픽셀이 그려지는 과정을 보여주고 지우 고를 반복하면 유저는 프레임마다 깜빡거리는 화면을 보게 될 것이다. 이를 해결하기위해 더블버퍼링(Double Buffering)이라는 것을 사용하게 되는데 간단히 말해 후면 버퍼(Back Buffer)에 다음프레임을 그린 다음 전면버퍼와 교체하는 과정이다. 후면 버퍼를 전면 버퍼와 교환해서 화면에 표시하는 것을 제시(Presenting)라고 부른다. ( 전통적으로는 버퍼 교환(Buffer Swapping ) 전면 버퍼와 후면 버퍼는 하나의 교환 사슬(Swap Chain)을 형성한다. 두 개의 버퍼를 사용하는 것을 이중 버퍼링(Double Buffering)이라고 부른다. ( 버퍼 세 개를 사용하는 삼중 버퍼링(Triple B.. 2023. 9. 18.
2-2. 텍스처 및 자료 자원 형식 2차원 텍스처는 사실상 자료 원소들의 행렬이다. 2차원 텍스처의 한 가지 용도는 2차원 이미지 자료를 저장하는 것으로, 그런 경우 텍스처의 각 원소는 한 픽셀의 색상을 담는다. 그러나 그것이 2차원 텍스처의 유일한 용도는 아니다. 예를 들어 법선 매핑이라고 하는 고급 기법에서는 텍스처의 각 원소가 아니라 3차원 벡터를 담는다. 따라서, 텍스처라고 하면 흔히 이미지 자료의 저장을 떠올리지만, 실제로는 그보다 훨씬 범용적이다. 다음은 텍스처를 담을 수 있는 자료 형식들의 예이다. DXGI_FORMAT_R32G32B32_FLOAT: 각 원소는 32비트 부동소수점 성분 세 개로 이루어진다. DXGI_FORMAT_R16G16B16A16_UNORM: 각 원소는 [0, 1] 구간으로 사상되는 16비트 성분 네 개로 .. 2023. 9. 18.
2-1. DirectX 11 장치 초기화 (COM) 2장에서 나의 목표는 아래와 같다. 3차원 그래픽 하드웨어의 프로그래밍에서 Direct3D의 역할을 개괄적으로 이해한다. Direct3D에서 COM의 역할을 이해한다. 2차원 이미지의 저장 방식, 페이지 전환, 깊이 버퍼링, 다중 표본화 같은 기초 그래픽 개념들을 배운다. 성능 카운터 함수들을 이용해서 고해상도 타이머 값을 얻는 방법을 배운다. Direct3D를 초기화하는 방법을 파악한다. COM (Component Object Model) COM은 DirectX의 프로그래밍 언어 독립성과 하위 호환성을 가능하게 하는 기술이다. 프로그래머가 알아야 할 것은 필요한 COM 인터페이스로의 포인터를 특별한 함수들 또는 다른 COM 인터페이스의 메서드를 이용해서 얻는 방법뿐이다. COM 인터페이스는 C++의 n.. 2023. 8. 20.
1. Rendering Pipeline 렌더링 파이프라인이란 ? 3차원으로 만들어진 공간을 2차원으로 투영하기 위한 과정이다. [ DirectX 9에서는 주황색과 초록색 부분을 건너 뛴다. ] Input Assembler Stage : 어떤 정점들이 어떻게 연결되어 있는지 정점 정보를 전달해주는 단계이다. Vertex Shader Stage : 정점 변환을 해주는 단계이다. 스키닝, 모핑, 조명 등등 고급 기법들이 들어갈 때 Vertex Shader에서 하게 된다. [ Tessellation Stages, Geometry Shader Stage 둘다 정점을 추가하는 기능. 정점을 왜 추가할까? MMO게임에서 어떤 지형이 있다고 할 때 멀리 있는 지형은 폴리곤을 줄이고 가까이 있는 지형은 디테일하게 폴리곤을 늘릴 때.(Level Of Detai.. 2023. 7. 1.