프로젝트 개발을 다른 사람들과 협업하여 진행하게 되면 자주 듣는 용어가 있는데, 그 중 하나가 코딩 컨벤션(coding convention) 입니다. 코딩 컨벤션이란, 읽고 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약입니다. 느닷없이 갑자기 코딩 컨벤션을 왜 설명하냐고요? 컨벤션이라는 용어 자체가 협업 상황에서 자주 언급되는 단어이지만, 좀 더 저수준(low-level)에서도 쓰이기 때문입니다. 제목을 보고 이미 짐작을 하시리라 생각됩니다. 호출 규약(콜 컨벤션, calling convention) 이란, 호출자(caller)와 피호출자(callee) 간의 함수의 인자를 전달하는 방식에 대한 규약을 정의한 것을 의미합니다. 위키피디아에서는 호출 규약을 다음과 같이 정의하고 있습니다 : 컴..
이번 포스팅에서는 변환(transformation)에 대해서 배워보겠습니다. 3차원 그래픽은 3차원 세계의 물체의 외부 표면을 근사(approximation)하는 일단의 삼각형으로 물체를 표현합니다(모델의 폴리곤을 생각하시면 될 것 같습니다). 이러한 물체들을 변환함으로써 물체에 변화를 줄 수 있습니다. 3차원 그래픽에 쓰이는 주된 기하학적 변환은 다음과 같습니다 : 이동변환 회전변환 비례변환 그럼 변환에 대해서 천천히 알아가보겠습니다. 선형변환 수학 함수 τ(v) = τ(x,y,z) = (x',y',z') 가 있다고 가정해 보겠습니다. 이 함수는 3차원 벡터 하나를 입력받아 3차원 벡터 하나를 출력합니다. 만약, 함수 τ에 대해 다음과 같은 성질들이 성립하면, τ를 가리켜 선형 변환(linear tra..
이번 포스팅에서는 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로 구성된 ..
3차원 컴퓨터 그래픽에서 행렬(matrix)은 비례나 회전, 이동같은 기하학적 변환을 간결하게 서술하는 데 쓰이며, 점이나 벡터의 좌표를 한 기준계에서 다른 기준계로 변환 하는 데에도 쓰입니다. 위키피디아에서는 다음과 같은 글로 행렬의 정의를 시작합니다 : 수학에서, 행렬(行列, 영어: matrix) 은 수 또는 문자를 괄호 안에 직사각형 형태로 배열한 것이다. 정의 행렬 : m x n 행렬 M 은 m개의 행과 n개의 열로 이루어진 실수들의 정사각 배열입니다. 차원 : 행(row)들의 개수와 열(column)들의 개수의 곱을 행렬의 차원이라고 부릅니다(행이 4개, 열이 4개일 때 차원은 4 x 4입니다). 원소(element) : 행렬을 구성하는 수들을 원소(element), 또는 성분(entry)라고 ..
이번 포스팅에서는 벡터에 대해서 알아보도록 하겠습니다. 벡터는 위키피디아에서 다음과 같이 정의하고 있습니다 : 벡터(vector)는 크기만으로 나타낼 수 있는 스칼라(scalar)와 달리 방향과 크기를 사용하여 나타낼 수 있다. 일상 적으로 사용하는 벡터는 유향선분(방향이 있는 선분)을 사용하여 표현할 수 있다. 벡터 는 현대적인 비디오 게임들의 공통 요소라 할 수 있는 컴퓨터 그래픽과 충돌 검출, 물리 시뮬레이션에서 핵심적인 역할을 하고 있으며, 이번 포스팅에서는 벡터와 벡터의 응용 방법 등을 알아보겠습니다. 벡터 서론에서 위키를 벡터에 대한 정의를 간략하게 인용하였습니다. 여기서 다시 한 번 정의해보고자 합니다. 벡터(vector, 방향량) 는 크기와 방향을 모두 가진 수량(quantity)을 가리키..
메모리 얼라인먼트는 레퍼런스마다 데이터 구조 얼라인먼트(Data Structure Alignment), 데이터 얼라인먼트(Data Alignment) 등으로 불리기도 하며, 위키피디아에서는 다음과 같이 개요가 작성되어 있습니다: Data structure alignment는 컴퓨터 메모리에서 데이터가 정렬되고 액세스되는 방식을 나타냅니다. 데이터 정렬, 데이터 구조 패딩(padding), 패킹(packing) 과 같은 세 가지 개별적인 관련 문제로 구성됩니다. 최신 컴퓨터 하드웨어의 CPU는 데이터가 자연스럽게 정렬 (naturally aligned) 될 때(일반적으로 데이터 주소가 데이터 사이즈의 배수일 때) 메모리에 대한 읽기 및 쓰기를 가장 효율적으로 수행할 수 있습니다. 데이터 얼라인먼트는 정렬되..
- Total
- Today
- Yesterday
- DXGI
- Perforce Streams
- Auto
- 구간합
- c++ hot reload
- Visual Studio C1083
- GoogleTest
- C++
- 언리얼 엔진
- 구글테스트
- 행렬
- C# 익명함수
- 퍼포스 스트림
- UE4
- game hot reload
- C# lambda expression
- visual studio hot reload
- Perforce Stream
- C7568
- 코드 저작권
- C++ Compile error
- 퍼포스 개요
- MSVC C1083
- c++ 핫 리로드
- 알고리즘
- code copyright
- C# 람다식
- P4 Stream
- visual studio 핫 리로드
- P4 Streams
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |