Graphics Directx 11纹理映射

Graphics Directx 11纹理映射,graphics,directx,game-engine,directx-11,directx-9,Graphics,Directx,Game Engine,Directx 11,Directx 9,我一直在寻找这个,我确信它是可以做到的 有人知道我怎样才能阻止纹理被拉伸到过大的面上吗 我记得在一些游戏设计中,你可以选择将图像拉伸到物体上,或者进行重复 编辑:好的,我使用了像素坐标,问题仍然存在。顶点很好。我试图做的是加载一个位图,并保持大小不变,无论分辨率是什么,或图像的大小。我希望图像仅使用20x20物理像素 我希望这是有意义的,因为我不认为我以前的解释有意义 Texture2D Texture; SamplerState SampleType { Filter = TEXT_

我一直在寻找这个,我确信它是可以做到的

有人知道我怎样才能阻止纹理被拉伸到过大的面上吗

我记得在一些游戏设计中,你可以选择将图像拉伸到物体上,或者进行重复

编辑:好的,我使用了像素坐标,问题仍然存在。顶点很好。我试图做的是加载一个位图,并保持大小不变,无论分辨率是什么,或图像的大小。我希望图像仅使用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);
}

答案是hwnd=CreateWindow(…)

使用WS_弹出窗口意味着我删除了边界,我的纹理能够正确地映射自己

您需要使用GetClientRect()


谢谢大家的帮助。:)

拉伸取决于在像素着色器采样中使用的纹理坐标。你能给出你的像素着色器的代码吗?纹理地址模式(重复、镜像、包装、夹紧)取决于你为纹理采样器(用参数创建)设置的颜色。这看起来很可怕,所以我在下面将其作为答案发布。我发现,在调整窗口大小之前,纹理显示良好。我知道我正在将纹理映射到2x2块。(-1.0f到1.0f),因此在打开窗口时,它们会调整大小。理想情况下,我希望打印的纹理始终保持相同的大小,除非我希望它们发生更改。我只是不知道该怎么做,或者是否可能。那个么当用户调整窗口大小时,你们必须调整交换链的大小。这与纹理采样无关。根据StackOverflow的规则,编辑帖子添加代码比添加新答案要好。完成。谢谢你,这会有帮助,但这不会改变原来的问题。纹理会略微挤压-即使在原始窗口中也是如此。我想知道是否有一种方法可以显示纹理中的每个像素?(我使用的是关闭深度的二维环境。)