본문 바로가기

분류 전체보기612

[C++] 스레드(thread) & 뮤텍스(mutex) 스레드 ? 스레드는 프로세스 내에서 실행되는 작은 실행 단위 이며 한 프로세스는 여러개의 스레드를 가지고 있을 수 있습니다. 스레드는 독립적인 실행 경로를 가지고 프로세스 내의 자원을 공유합니다. 이런 특성으로 인해 프로세스의 실행 속도와 효율성을 향상 시킬 수 있습니다. 여러 작업들을 한번에 실행(병행)할 수 있으나 서로 다른 스레드 간의 동기화와 조율이 필요하게 됩니다. 동기화에 필요한 것이 뮤텍스 입니다. 뮤텍스 ? 뮤텍스는 상호 배제(Mutual Exclusion)를 의미하며 공유 자원에 대하여 동시 엑세스를 조절합니다. *임계 구역(Critical Section)에 들어가는 스레드가 지원을 독점할 수 있도록 허용하며 다른 스레드는 임계 구역에 진입할 수 없도록 제어하는 기능을 합니다.(임계 구역.. 2023. 8. 11.
[Graphics] D3D11 렌더링 파이프 라인(Rendering Pipeline) 렌더링 파이프라인 ? DirectX 3D Graphics에서의 렌더링 파이프라인은 그래픽스 카드에서 3D 모델을 렌더링하는 과정을 각각의 단계별로 나타낸 것입니다. 렌더링 파이프라인은 크게 두가지 버전으로 나뉘게 됩니다. 1. 고정 함수 파이프라인 2. 프로그래머블 파이프라인(DirectX 10 이후부터 지원 현재 배우는 기준은 DirectX11) 두가지의 버전중에서 프로그래머블 파이프라인이 더 우연하며 강력한 기능을 제공합니다. 때문에 프로그래머블 파이프라인을 기준으로 각 단계에 대하여 정리하도록 합니다. 렌더링 파이프 라인의 단계(생략가능, 필수) 1. 입력 어셈블러(IA - Input Assembler) 정점(버텍스)데이터를 가져와 점, 선, 삼각형 등의 프리미티브를 조합 생성합니다. 버텍스 버퍼,.. 2023. 8. 10.
[C++/자료구조] 우선순위 큐(Priority Queue) 우선순위 큐 ? C++의 표준 라이브러리(Library)에서 제공되는 priority_queue 는 우선순위 큐 자료구조를 구현한 클래스 입니다. 우선순위 큐는 데이터를 삽입과 동시에 자동으로 정렬이되고 정해진 기준에서 가장 높은 우선순위를 가진 요소가 항상 상단에 위치하도록 유지 합니다. priority_queue 를 사용하기 위해서는 헤더 파일의 선언이 필요합니다. 1. 우선순위 큐의 기본 동작 및 특성 1. 정렬 순서는 기본 내림 차순으로 가장 큰 값이 상단에 위치합니다. 2. 요소의 삽입, 삭제가 이루어 질때마다 자동으로 정렬을 실행합니다. 3. 힙(heap) 자료구조를 기반으로 구현되어 효율적으로 작동합니다. *힙(heap) 자료구조 복습하기(아래 접은글) 더보기 힙(heap) 힙은 특정한 규칙.. 2023. 8. 9.
[DirectX3D] 환경 맵핑(Environment Mapping) 환경 맵핑 ? 환경 맵핑은 컴퓨터 그래픽스에서 사용되는 기술중 하나 입니다. 3D 모델의 표면에 주변 환경(배경)을 반사시켜 실시간으로 더욱 현실적인 느낌을 줄 수 있습니다. 주로 반사, 굴절, 환경등의 변환에 따른 질감을 향상시키는데 사용합니다. 환경 맵핑값의 변화에 따른 반사 확인하기 위의 영상에는 무료 배포된 던전앤파이터의 "던파 연단된 칼날" 폰트를 사용하였습니다. >NEXON LEVEL UP (레벨업) – 넥슨 브랜드 인벤토리 LEVEL UP의 첫 단계로 게임에서 경험했던 느낌을 서체에 담아 표현했습니다. 서체의 기능적인 부분 외에도 즐거운 경험들을 전달하고자 하는 또 다른 도전의 시작입니다. levelup.nexon.com -아래접은글 > DirectWrite(DWRITE) 복습- 더보기 DW.. 2023. 8. 8.
[백준/C++] 11286 절댓값 힙 우선순위 큐(priority_queue)를 사용하는 문제 입니다. 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 입력값이 0이 아니라면 추가하고. 입력값이 0이라면 추가된 값들중 절대값이 가장 작은 원소를 출력 후 제거합니다. 원소의 갯수가 없을경우에 0이 입력되면 0을 출력합니다. 우선순위큐 priority_queue를 사용하며 구조체 cmp 내부의 operator 함수를 통해서 정렬 구조를 만들어주고난뒤에 입력받은 것을 큐에 push 하여 넣어주고 입력값이 0이라면 큐가 비어있는지 확.. 2023. 8. 7.
[Graphics] RTT & Post Effect & Blur 관계성 앞에서 정리한 RTT(Render To Textur), Post Effect, Blur 는 그래픽스에서 연관되어 사용되는 개념들 입니다. RTT(Render to Texture) 요약 RTT는 렌더링된 결과를 텍스처로 저장하는 기술입니다. 일반적으로 렌더링된 이미지를 화면에 바로 출력하지 않고 추가적인 텍스처에 렌더링 결과를 저장하여 메모리에 보관하는 작업을 합니다. 이렇게 메모리에 저장된 텍스처는 다른 작업을 위하여 사용이 가능합니다. https://rhksgml78.tistory.com/371 [Graphics] 텍스처에 그리기 RTT(Render To Texture) Render To Texture ? 렌더투텍스처(Render To Texture)(이하 RTT)를 의미합니다. 3D 그래픽스에서 매우.. 2023. 8. 7.