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);
}
...
拉伸取決於您在Pixel Shader採樣中使用的紋理座標。你可以給你的像素着色器的代碼? –
紋理地址模式(重複,鏡像,換行,鉗制)取決於您爲紋理設置的[D3D11_TEXTURE_ADDRESS_MODE](http://msdn.microsoft.com/zh-cn/library/windows/desktop/ff476256.aspx)採樣器(使用參數[D3D11_SAMPLER_DESC](http://msdn.microsoft.com/en-us/library/windows/desktop/ff476207.aspx))創建。 –
看起來很可怕,所以我把它作爲下面的答案發布。紋理顯示正常,直到窗口調整大小是我發現的。我知道我正在將貼圖映射到2x2塊。 (-1.0f到1.0f),所以它們在窗口被調整大小。理想情況下,我希望我印刷的紋理始終具有相同的尺寸,除非我希望它們改變。我只是不知道該怎麼做,或者如果可能的話。 – user2600628