Loading...
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..

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..

2010. 5. 24. 00:39

RasterizerStateMesh

정점을 처리하는 기하처리 단계에서 정점을 입력받아 단편(fragment)들을 출력한다. 각 픽셀의 정보들을 클립공간에서 표현한 것이다. 뷰포트 변환을 사용하여 클립공간에서의 정점의 위치와 렌더타겟에서의 픽셀의 위치와의 관계를 계산한다. 래스터화 스테이지는 기본도형들을 클리핑하고, 기본 도형들 내의 픽셀들을 계산하여 각 픽셀마다 단편을 생성하여 픽셀셰이더를 호출하는 기능을 수행한다. .cpp 에서의 지정 D3D10_RASTERIZER_DESC rsdesc; ::ZeroMemory(&rsdesc, sizeof(rsdesc)); rsdesc.FillMode = D3D10_FILL_SOLID; rsdesc.CULLMode = D3D10_CULL_BACK; rsdesc.FrontCounterClockwise = ..

2010. 5. 23. 22:10

x파일 로딩

dx10에서는 dx파일을 위한 api를 지원하지 않아 dx9의 api를 사용하여 컨버팅 해야 한다. 책 예제의 클래스를 들고와서 유니코드 부분만 조금 고쳤다.

2010. 5. 23. 17:54

메쉬에 맵핑

아놔..먼가 계속했던거 하는 느낌이야..ㅡㅡ;. 언제까지 울궈먹을려고하는겐지... 기본 빛계산은 까먹으면 안되니까 다시 적어주고. float4 PS( PS_Input input ) : SV_Target { float3 lightDirection = float3(1.0f, -1.0f, 1.0f); float4 A = float4(0.2f, 0.2f, 0.2f, 1.0f); float3 E = float3(0.0f, 1.0f, -2.0f); float3 L = -normalize(lightDirection); float3 N = normalize(input.normal); float P = 8.0f; // power float D = saturate(dot(input.normal, L)); // diffus..

2010. 5. 23. 15:15

Texture Mapping

딱히...할만한.말이.없다. 굳이 있다면. 실수하지 말자는 정도. 그리고 상수값이 업데이트 되는 정도에 따라 상수버퍼를 따로 잡는게 좋다. cbuffer cbNerverChange { matrix matView; }; cbuffer cbChangeOnResize { matrix matProjection; }; cbuffer cgChangeEveryFrame { matrix matWorld; }; cbuffer cbConstant { float3 lightDirection = float3(1.0f, -1.0f, 1.0f); float4 ambientColor = float4(0.1f, 0.1f, 0.1f, 1.0f); }; float4 PS( PS_Input input ) : SV_Target { floa..