Loading...
2010. 6. 2. 13:32

평면 그림자

평면그림자는 일반적으로 렌더링 후에 그림자를 위한 블렌딩을 추가하여 만든다. 그림자가 평면이 아닌 임의의 곡면에 맺히는 경우도 처리하고자 한다면 그림자볼륨을 써야 한다. D3DXMatrixShadow는 그림자 평면을 정규화 하고 그림자 평면과 광원의 방향으로부터 그림자변환 행렬을 계산한다. 광원타입이 방향광원인지 점광원인지에 따라 인자값이 다르다. lw(마지막인자)값이 0인것은 방향벡터이며 방향광원이다. lw(마지막인자)값이 1인것은 위치벡터이며 점광원이다. 장면의 모든 물체들을 일반적인 방법으로 그린다. 그 후에 그림자 변환행렬을 사용하여 삼각형들을 그림자가 맺힐 평면으로 납작하게 변환한다. 변환된 삼각형을 어둡게 반투명 블렌딩하여 그림자를 그린다. 그런데 여러개의 납작하게 변환된 그림자 삼각형들은 그..

2010. 6. 1. 07:21

깊이와 스텐실

후하후하..이번에 삽질좀 했군.ㅜㅜ. 기억하기. 깊이테스트든 스텐실 테스트든 결국 그리기의 여부를 판단하는 연산. 스텐실버퍼와 깊이버퍼는 물리적으로 하나의 버퍼를 나누어 사용한다. // 깊이스텐실 텍스처를 생성함. D3D10_TEXTURE2D_DESC descDepth; descDepth.Width = scd->BufferDesc.Width; descDepth.Height = scd->BufferDesc.Height; descDepth.MipLevels = 1; descDepth.ArraySize = 1; descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; //스텐실도 포함. descDepth.SampleDesc.Count = 1; descDepth.SampleDes..

비디오 메모리, 시스템 메모리 체크하는법

출처 : http://gpgstudy.com/forum/viewtopic.php?t=2744 대충 이렇네요.. 코드: view source print? #include ... m_MaxAllocMem = m_pDevice->GetAvailableTextureMem(); ///// LPDIRECTDRAW7 lpDD = NULL; DDSCAPS2 ddsCaps2; DWORD dwTotal; DWORD dwFree; HRESULT hr; hr = DirectDrawCreateEx(NULL, (VOID**)&lpDD, IID_IDirectDraw7, NULL ); if (FAILED(hr)) return FALSE; // Initialize the structure. ZeroMemory(&ddsCaps2, si..

D3D10_SHADER Constants

D3D10_SHADER Constants HLSL compile options. #define Description D3D10_SHADER_AVOID_FLOW_CONTROL Tell compiler to not allow flow-control (when possible). D3D10_SHADER_DEBUG Insert debug file/line/type/symbol information. D3D10_SHADER_ENABLE_STRICTNESS By default, the HLSL compiler disables strictness on deprecated syntax. Specifying this flag enables strictness which may not allow for legacy syn..

D3D10_BLEND_OP Enumeration

D3D10_BLEND_OP Enumeration RGB or alpha blending operation. Syntax Copy typedef enum D3D10_BLEND_OP { D3D10_BLEND_OP_ADD = 1, D3D10_BLEND_OP_SUBTRACT = 2, D3D10_BLEND_OP_REV_SUBTRACT = 3, D3D10_BLEND_OP_MIN = 4, D3D10_BLEND_OP_MAX = 5 } D3D10_BLEND_OP; Constants D3D10_BLEND_OP_ADD Add source 1 and source 2. D3D10_BLEND_OP_SUBTRACT Subtract source 1 from source 2. D3D10_BLEND_OP_REV_SUBTRACT Subt..

D3D10_BLEND Enumeration

Blend options. A blend option identifies the data source and an optional pre-blend operation. Syntax Copy typedef enum D3D10_BLEND { D3D10_BLEND_ZERO = 1, D3D10_BLEND_ONE = 2, D3D10_BLEND_SRC_COLOR = 3, D3D10_BLEND_INV_SRC_COLOR = 4, D3D10_BLEND_SRC_ALPHA = 5, D3D10_BLEND_INV_SRC_ALPHA = 6, D3D10_BLEND_DEST_ALPHA = 7, D3D10_BLEND_INV_DEST_ALPHA = 8, D3D10_BLEND_DEST_COLOR = 9, D3D10_BLEND_INV_DE..

__int8, __int16, __int32, __int64

Microsoft Specific Microsoft C/C++ features support for sized integer types. You can declare 8-, 16-, 32-, or 64-bit integer variables by using the __intn type specifier, where n is 8, 16, 32, or 64. The following example declares one variable for each of these types of sized integers: Copy __int8 nSmall; // Declares 8-bit integer __int16 nMedium; // Declares 16-bit integer __int32 nLarge; // De..

volatile

출처 : http://kldp.org/node/4016 뉴스그룹에서 검색한 volatile 키워드관한 글입니다. 글쓴이Jaeho Kang (onuri__at__kornet.net) 제목Re register와 volatile 키워드 뉴스그룹han.comp.lang.c 날짜2000/04/07 volatile의 경우 어떤 의미에서는 앞에서 설명한 컴파일러의 최적화와 관 계있습니다. 그 외에도 CPU 내, 외부의 캐쉬와 갈은 하드웨어적인 최적화 와도 관계가 있습니다. volatile 키워드가 가장 많이 사용되는 경우의 하나가 memory-mapped I/O 인 경우입니다. 메모리의 특정 영역을 특정 장치와 연결하여 사용하는 방 법입니다. 가장 흔한 예가 비디오 메모리가 되겠고, 그 이외에도 많은 장 치들을 이러..