- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록DirectX (9)
드럼치는 프로그래머
평면의 표현 평면의 내적 평면의 생성 평면의 정규화 평면의 변환 평면의 표현 D3DX는 공간상의 평면에 대한 표현 및 함수를 지원한다. 공간상의 평면 표현 하나의 노말벡터 n과 한 점 p(0)로 표현된다. 임의의 한점 p가 평면상에 있다면 n · ( p - p(0) ) = 0을 만족 따라서 n · p + d = 0 ( d = -n · p ) 로 정리할 수 있다. n을 단위벡터라고 가정하면 d가 원점에서 최단거리에 해당하고 부호를 가진다. 부호화된 최단거리란, 평면에서 원점으로의 방향이 n과 같은 방향이면 양수이고, n의 반대방향이면 음수이다. 평면의 노말을 n = (a, b, c)라고 하면 평면은 하나의 4차원 벡터 (a, b, c, d)로 표현 할 수 있다. 평면의 식은 ax + by + cz + dw..
변환 행렬 이동변환 이동변환은 점 p = ( p(x), p(y), p(z) )를 ( t(x), t(y), t(z) )만큼 이동하는 변환이다. 즉 점 p가 p' = ( p(x) + t(x) , p(y) + t(y) , p(z) + t(z) )로 변환된다. 이 변환에 대한 행렬을 아래의 코드로 얻을 수 있다. D3DXMatrixTranslation(&T, tx, ty, tz); 이동변환 행렬은 다음과 같은 형식의 행렬이 된다. T ( t(x), t(y), t(z) ) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 이동변환 행렬의 특성으로 T ( t(x), t(y), t(z) ) 의 역행렬이 T ( -t(x), -t(y), -t(z) )이다. 회전변환 회전변환을 위한 행렬을 쉽게 구할 수 있도록..
행렬의 표현 Direct3D에서는 4 X 4 크기의 행렬만 지원한다. 4 X 4 행렬의 표현을 위해서 C++ 구조체 타입인 D3DXMATRIX를 제공한다. 행렬에 대한 연산자 겹지정(operator overloading)과 타입 변환(type casting)의 장점을 지원한다. D3DXMATRIX에서는 먼저 변수만 선언하고, 이후에 행렬을 채우는 식의 작업이 일반적이다. D3DXMATRIX mat; // Direct3D에서 4 X 4행렬의 표현을 위한 D3DXMATRIX타입 변수선언 ZeroMemory (&mat, sizeof(D3DXMATRIX)); // 0으로 초기화 위와같이 0으로 초기화 한후 아래와 같이 값을 대입할 수 있다. mat._11 = 0.64f; mat._22 = 0.48f; 겹지정 연..
벡터표현 D3DX는 3차원 벡터 표현을 위해서 C++ 구조체 타입인 D3DXVECTOR3을 제공한다. 2차원 벡터 표현을 위해서 D3DXVECTOR2가 제공되며 4차원 벡터 표현을 위해서 D3DXVECTOR4가 제공된다. 2차원 벡터표현에서는 필드로 x, y를 가지며, 4차원 표현에서는 x, y, z, w를 필드로 가진다. 모든 연산자 정의는 동일하다. 겹지정 연산자를 통한 벡터 연산 벡터연산은 겹지정된 연산자를 통해서 연산이 가능하다. 벡터의 덧셈은 벡터의 각 요소별 덧셈으로 정의된다. D3DXVECTOR3 u(1.0f, 0.0f, 2.0f); D3DXVECTOR3 v(0.0f, -1.0f, 3.0f); D3DXVECTOR3 sum = u + v; 첫번째 벡터는 (1, 0, 2)이고 두번째 벡터가 (0..
행렬이란 행렬은 벡터를 변환하는 용도로 사용된다. 4 X 4 크기의 행렬 M은 16개의 스칼라 원소들이 4 X 4의 격차로 배치된다. i번째 열과 j번째 행에있는 원소를 m(ij)라고 표시하자. 항등행렬(Identity Maxrix(단위행렬)) : 대각선 값들만 1이고 나머지들은 모두 0인 행렬 0행렬 : 모든 원소들이 0인 행렬 전치행렬(M^T) : 행렬 M의 각 원소들의 위치를 m(ij)에서 m(ji)로 바꾼 행렬 역행렬 : 행렬 M에 대해 NM = MN = I(단위행렬)을 만족하는 행렬 N, (N = M^-1) 두 행렬을 곱하면 새로운 행렬이 되며 그 원소들은 한 행렬의 행과 다른 행렬의 열을 내적하여 구한다. 벡터의 변환 행렬의 가장 중요한 기능은 벡터의 변환이다. 행렬은 벡터를 다른 벡터로 변환..
= 벡터(vector) = 스칼라(scalar) : 하나의 실수값 벡터(vector) : 여러개의 실수들을 의미 있는 순서로 묶어둔 것 => 3차원 공간에서는 보통 3개의 실수를 묶고 이를 3차원 벡터라고 한다. ..... a, b, c 는 스칼라 / u, v, w는 벡터로 표현.... 벡터에 정의된 두개의 연산 - 두 벡터의 덧셈연산 : 두 벡터의 각 원소끼리의 덧셈으로 새로운 벡터를 만드는 연산 - 벡터와 스칼라의 곱셈연산 : 스칼라를 벡터의 각 원소에 곱하여 새로운 벡터를 만드는 연산 벡터는 크기와 방향의 의미를 가진다. 벡터의 덧셈에서는 결합법칙과 교환법칙이 성립한다. 0 벡터는 모든 원소들이 0인 벡터 (0,0,0)이다. 길이가 1인 벡터는 단위벡터이다. 두 벡터를 내적하면 그 결과는 스칼라이다..
백터 상등 D3DXVECTOR u(1.0f, 0.0f, 1.0f); D3DXVECTOR v(1.0f, 0.0f, 1.0f); if(u==v) return true; // 같은지 확인 if(u!=v) return true; // 다른지 확인 벡터의 크기 계산 FLOAT D3DVec3Length{ //크기를 리턴한다. CONST D3DXVECTOR3* pV // 길이를 계산하려는 벡터 ); D3DXVECTOR3 v(1.0f, 2.0f , 3.0f); float magnitude = D3DVec3Length( &v ); // = sqrt(14) 벡터의 정규화 D3DXVECTOR3 *D3DXVec3Normalize( D3DXVECTOR3* pOut, // 결과 CONST D3DXVECTOR3* pV // 정규화..
카페 > 게임 개발자 네트워크 (jz.. | 자존심 http://cafe.naver.com/jzsdn/24 이글은 김학규(neolith)님께서 http://www.lameproof.com/ 홈페이지에 작성하신 글을 옮겨 놓은 글입니다. 3D 프로그래밍을 한다고 하면 단계별로 알아야 할 것들이 있다. 첫번째는 기본적인 수학적 지식, 즉 행렬이나 벡터를 활용하여 3차원 공간상의 물체(object)를 어떻게 수치로 표현(representation)하는가에 대한 원리 (vertex, face 등의 개념을 비롯하여) 를 알고, 그 표현된 물체를 화면에 나타내도록 변환(transformation) 하는 방법과 단계 (transform pipeline) 등에 대해 아는 것이다. 많은 3D 이론서들이 이에 대해 언급하..
속도 빠른 게임 및 멀티미디어의 Windows 환경을 위해 필수적인 DirectX입니다. DirectX의 핵심은 응용 프로그래밍 인터페이스(Aapplication Programming Interfaces : API)로, API는 하드웨어와 소프트웨어가 서로 "대화"할 수 있는 교량 역할을 하는 도구입니다. DirectX API는 멀티미디어 어플리케이션이 3D 그래픽 가속 칩이나 사운드카드 등의 고성능 하드웨어 특성에 접촉할 수 있도록 합니다. 그리고 2D 그래픽 가속, 조이스틱이나 키보드, 마이크와 같은 입력 디바이스 지원, 사운드 믹싱과 출력 제어 등과 같은 Low-level 기능을 제어합니다. 결과적으로 DirectX는 사용자의 컴퓨터가 더 나은 품질의 3D 그래픽과 사운드의 재생을 가능하게 합니다...