2013-07-22 2 views
0

나는 이것을 찾았으므로 그것을 할 수 있다고 확신한다.Directx 11 텍스처 매핑

대형 패싯에서 텍스처가 늘어나는 것을 어떻게 막을 수 있는지 아는 사람이 있습니까?

일부 게임 디자인에서는 개체 위에 이미지를 늘리거나 반복 실행하는 옵션이 있습니다.

편집 : 좋아, 그래서 픽셀 좌표를 사용하고 문제가 여전히 남아 있습니다. 버텍스는 괜찮습니다. 내가 뭘 하려는지 비트 맵을로드하고 해상도에 관계없이 동일한 크기를 유지하거나 이미지의 크기입니다. 이미지에 20x20 픽셀 만 사용하도록합니다.

나는 이전의 설명이 그렇게하지 않았기 때문에 의미가 있기를 바랍니다.

Texture2D Texture; 

SamplerState SampleType 
{ 
    Filter = TEXT_1BIT; 
// AddressU = Clamp; 
// AddressV = Clamp; 
}; 

struct Vertex 
{ 
    float4 position : POSITION; 
    float2 tex : TEXCOORD0; 
}; 

struct Pixel 
{ 
    float4 position : SV_POSITION; 
    float2 tex : TEXCOORD0; 
}; 

Pixel FontVertexShader(Vertex input) 
{ 
    return input; 
} 

float4 FPS(Pixel input) : SV_Target 
{ 
    return Texture.Sample(SampleType, input.tex); 
} 

...

+0

늘이기는 픽셀 셰이더의 샘플링에 사용하는 텍스처 좌표에 따라 다릅니다. 픽셀 쉐이더의 코드를 줄 수 있습니까? –

+0

텍스처 주소 모드 (반복, 미러링, 랩핑, 클램핑)는 텍스처에 대해 설정 한 [D3D11_TEXTURE_ADDRESS_MODE] (http://msdn.microsoft.com/en-us/library/windows/desktop/ff476256.aspx)에 따라 다릅니다. 샘플러 (매개 변수 [D3D11_SAMPLER_DESC] (http://msdn.microsoft.com/en-us/library/windows/desktop/ff476207.aspx)로 생성). –

+0

끔찍한 것처럼 보이므로 아래 답변으로 게시했습니다. 창 크기를 조정할 때까지 질감이 잘 표시됩니다. 텍스쳐를 2x2 블록에 매핑하려고한다는 것을 알고 있습니다. (-1.0f ~ 1.0f)이므로 창 크기에 따라 크기가 조정됩니다. 이상적으로 나는 인쇄하고있는 텍스처를 내가 바꿀 때까지 항상 같은 크기가되도록하고 싶습니다. 나는 이것을 수행하는 방법이나 가능하다면 그냥 모른다. – user2600628

답변

0

대답은 HWND = CreateWindow 함수 (...)이다;

WS_POPUP을 사용하면 테두리를 제거하고 텍스처를 올바르게 매핑 할 수있었습니다.

GetClientRect()를 사용해야합니다.

여러분 모두에게 감사드립니다. :)