DirectX12 외에도 일반적인 선형 대수 및 DirectX 응용 프로그램에 공통적인 그래픽 수한 연산을 위한 SIMD(single instruction multiple data) 친화적인 C++ 형식(type) 및 함수를 제공합니다. 이 라이브러리는 Windows 32-bit(x86), Windows 64-bit(x64), Windows RT 플랫폼에서 SSE2 및 ARM-NEON 인트린직(instrinsic) 지원을 Visual Studio 컴파일러를 통해서 최적화된 버전으로 지원합니다. 이번 포스팅에서는 그 중에서 벡터의 표현을 나타내는 데 사용할 수 있는 XMFLOAT 및 XMVECTOR의 차이에 대해서 알아보겠습니다. XMVECTOR XMVECTOR 타입은 DirectXMath에서 사용되는 핵..
두 함수 모두 눈에 보여지는 결과로써는 두 함수 모두 현재 윈도우를 종료하는 것처럼 보이기 때문에 차이가 없을 수 있다고 생각할 수 있지만, 두 함수는 로직 상의 차이로 인해 적절한 상황에 맞게 구분되어 사용되어야 합니다. PostQuitMessage 함수 시그니처 : void PostQuitMessage(int nExitCode); PostQuitMessage 함수는 메시지 큐에 WM_QUIT을 포스트하는 함수입니다. 메시지 큐에서 해당 메시지(WM_QUIT)를 읽으면, 메시지 루프의 조건식이 거짓으로 반환되면서 루프를 탈출하게 됩니다. 하지만, 종료를 위한 어떠한 처리를 하지 않고 단순히 메시지 루프만을 탈출하기 때문에 프로세스가 가지고 있는 각종 핸들을 놓아주거나(release), 파괴하는 등의 처..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bdUdMq/btqzDs9eVgX/svMKW3IRy3ZAez7A49rfJK/img.jpg)
이번 포스팅에서는 변환(transformation)에 대해서 배워보겠습니다. 3차원 그래픽은 3차원 세계의 물체의 외부 표면을 근사(approximation)하는 일단의 삼각형으로 물체를 표현합니다(모델의 폴리곤을 생각하시면 될 것 같습니다). 이러한 물체들을 변환함으로써 물체에 변화를 줄 수 있습니다. 3차원 그래픽에 쓰이는 주된 기하학적 변환은 다음과 같습니다 : 이동변환 회전변환 비례변환 그럼 변환에 대해서 천천히 알아가보겠습니다. 선형변환 수학 함수 τ(v) = τ(x,y,z) = (x',y',z') 가 있다고 가정해 보겠습니다. 이 함수는 3차원 벡터 하나를 입력받아 3차원 벡터 하나를 출력합니다. 만약, 함수 τ에 대해 다음과 같은 성질들이 성립하면, τ를 가리켜 선형 변환(linear tra..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/S8gI6/btqzrXaHA0i/DvldrwjufAgqHy2yocwKZ0/img.png)
펜윅 트리는 효과적으로 요소를 업데이트하고 수 배열의 구간합을 계산할 수 있는 자료구조입니다. 위키피디아에서는 다음과 같이 정의하고 있습니다 : 펜윅 트리 또는 바이너리 인덱스드 트리 는 효과적으로 요소를 업데이트하고 수 배열의 구간합을 계산할 수 있는 자료구조입니다. 1989년 Boris Ryabko에 의해 처음 제안되었으며 1992년 추가로 수정되었습니다. 펜윅 트리는 Peter Fenwick에서 이름이 유래하였습니다. 일반 배열과 비교했을 때 구간 합에 대해 배열은 선형 시간이 필요하며, 이는 배열 요소를 업데이트하는 데에도 똑같이 적용됩니다. 펜윅 트리는 두 가지 작업 모두에 대해 O(log n) 시간에 수행할 수 있습니다. 이러한 자료구조 필요한 이유는 다음 상황들에 대해 효율적으로 처리할 수 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/KEgVL/btqzuiU08Fj/X3dzGliEZmsIX2LV9l7kXK/img.jpg)
이번 포스팅에서는 2의 보수에 대해서 알아보겠습니다. 먼저 보수란, '보충하는 수', '수를 거꾸로 세는 방식' 등을 의미합니다. 일반적으로 N진법에 대해서 N의 보수와 N-1의 보수가 존재하며 다음과 같습니다 : N의 보수 : 자릿수를 한 자리 늘리기 위해서 필요한 보수. 10진수 33의 10의 보수 : 100 - 33 = 67 N-1의 보수 : 같은 자릿수에서 가장 큰 값이 되기 위해 필요한 보수. 10진수 33의 9의 보수 : 99 - 33 = 66 N진법에 대한 N의 보수 및 N-1의 보수는 아래에서 2진법에 대한 2의 보수 및 1의 보수로 연결되니 이해하시면 좋습니다. 컴퓨터의 음수 표현 우리가 음수를 표현할 때에는 - 부호를 선택함으로써 음수를 표기할 수 있습니다. 하지만, 0과 1로 구성된 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b0mofP/btqzdyWHR5e/ubkgmuR3DmS16rfKA4LlAK/img.png)
이번 포스팅에서는 행렬의 곱셈의 구현과 최적화 방법에 대해서만 집중적으로 분석합니다. 행렬에 관한 내용은 행렬 대수 포스팅을 읽어보시거나 다른 레퍼런스를 확인하시면 되겠습니다. 행렬의 곱셈은 왼쪽 행렬의 i번째 행, j번째 열에 있는 요소에 대해 왼쪽 피연산자 행렬의 i번째 행과 오른쪽 피연산자 행렬의 j번째 열을 내적한 값을 산출한다고 행렬 대수에서 언급했습니다. 그림으로 나타내면 다음과 같습니다. 이것을 구현하는 것은 어려운 일이 아닙니다. 빠르게 작성된 행렬 곱셈 연산의 구현은 다음과 같습니다 : #include using namespace std; /* 빠르게 작성된 2x2 행렬을 곱하는 코드 */ int main() { int a[2][2] = { 1,2,3,4 }; int b[2][2] = {..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c0BP6J/btqy7JyNj76/Jz7StwQKkYHJQQdAdVwIxk/img.jpg)
최근에 논문 쓸 일이 있어서 관련 참고 문헌을 찾는데 어려움을 겪다가 발견한 블로그에서 사이트 모음을 해뒀기에, 이를 정리하고자 합니다. 논문 참고 사이트 DBPia - https://www.dbpia.co.kr/ 국회전자도서관 - http://dl.nanet.go.kr/index.do 학술연구정보서비스(RISS) - http://www.riss4u.net/index.do 위키백과(한글) - https://ko.wikipedia.org 구글 학술 검색 - https://scholar.google.co.kr/schhp?hl=ko ScienceDirect - https://www.sciencedirect.com/ 뿐만 아니라 아래 레퍼런스의 Naver 블로그에서 논문 작성과 관련된 팁을 포스팅하고 있으니, ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ViWXs/btqy9dMgtuW/sTCnz9ZuuBK0TNR4449G0k/img.png)
3차원 컴퓨터 그래픽에서 행렬(matrix)은 비례나 회전, 이동같은 기하학적 변환을 간결하게 서술하는 데 쓰이며, 점이나 벡터의 좌표를 한 기준계에서 다른 기준계로 변환 하는 데에도 쓰입니다. 위키피디아에서는 다음과 같은 글로 행렬의 정의를 시작합니다 : 수학에서, 행렬(行列, 영어: matrix) 은 수 또는 문자를 괄호 안에 직사각형 형태로 배열한 것이다. 정의 행렬 : m x n 행렬 M 은 m개의 행과 n개의 열로 이루어진 실수들의 정사각 배열입니다. 차원 : 행(row)들의 개수와 열(column)들의 개수의 곱을 행렬의 차원이라고 부릅니다(행이 4개, 열이 4개일 때 차원은 4 x 4입니다). 원소(element) : 행렬을 구성하는 수들을 원소(element), 또는 성분(entry)라고 ..
- Total
- Today
- Yesterday
- 퍼포스 스트림
- GoogleTest
- 구간합
- Perforce Streams
- Auto
- visual studio 핫 리로드
- Visual Studio C1083
- visual studio hot reload
- c++ hot reload
- P4 Streams
- 코드 저작권
- C++
- Perforce Stream
- DXGI
- C# 익명함수
- code copyright
- UE4
- 알고리즘
- game hot reload
- C7568
- 구글테스트
- 언리얼 엔진
- C# 람다식
- 퍼포스 개요
- c++ 핫 리로드
- C# lambda expression
- 행렬
- C++ Compile error
- P4 Stream
- MSVC C1083
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |