Deaktivieren der Texturfilter im Pixel-Shader

Speedfreak23

Grünschnabel
Hallo,

ich habe ein Rechteck bestehend aus 2 Vertex. Diese möchte ich mit einer Textur überziehen die nicht gefiltert wird. Diese Textur enthält 4 Werte(rgba) die angeben wie weit ein Subpixel verschoben werden soll. Diese Textur soll wie eine große Tabelle genutzt werden. Die Farbwerte werden nun durch irgend einen Filter gefiltert. Dabei werden die Werte in der Textur verfälscht und das Ergebnuss stimmt nicht mehr überein. Hier der code zur erstellung des Rechtecks. _heigth und _wigth geben dabei die größe der Textur an. Die -0.5 zentrieren den Pixel. Das Projekt ist ein managed DirectX Projekt unter C# und HLSL als Shadersprache.

this.m_oVertexBuffer2D = new VertexBuffer(typeof(CustomVertex.TransformedTextured), 4, this.Direct3DDevice, Usage.WriteOnly, CustomVertex.TransformedTextured.Format, Pool.Managed);
this.m_oVerts2D = new CustomVertex.TransformedTextured[4];

this.m_oVerts2D[0].X = 0 - 0.5f;
this.m_oVerts2D[0].Y = _heigth - 0.5f;
this.m_oVerts2D[0].Z = 0.0f;
this.m_oVerts2D[0].Tu = 0.0f;
this.m_oVerts2D[0].Tv = 1.0f;

this.m_oVerts2D[1].X = 0 - 0.5f;
this.m_oVerts2D[1].Y = 0 - 0.5f;
this.m_oVerts2D[1].Z = 0.0f;
this.m_oVerts2D[1].Tu = 0.0f;
this.m_oVerts2D[1].Tv = 0.0f;

this.m_oVerts2D[2].X = _wigth - 0.5f;
this.m_oVerts2D[2].Y = _heigth - 0.5f;
this.m_oVerts2D[2].Z = 0.0f;
this.m_oVerts2D[2].Tu = 1.0f;
this.m_oVerts2D[2].Tv = 1.0f;

this.m_oVerts2D[3].X = _wigth - 0.5f;
this.m_oVerts2D[3].Y = 0 - 0.5f;
this.m_oVerts2D[3].Z = 0.0f;
this.m_oVerts2D[3].Tu = 1.0f;
this.m_oVerts2D[3].Tv = 0.0f;

Ich vermute das es entweder ein Filter ist oder die Textur nicht richtig adressiert wurde. Im PixelShader sind auch alle Filter deaktiviert. Hier der Code des PixelShaders für den Sampler.

texture CorrectionTexture
<
string ResourceName = "";//Optional default file name
string UIName = "CorrectionTexture Texture";
string ResourceType = "2D";
>;

sampler2D CorrectionTextureSampler = sampler_state
{
Texture = <CorrectionTexture>;
MinFilter = None;
MagFilter = None;
MipFilter = None;
AddressU = Wrap;
AddressV = Wrap;
};

Ich habe mit eine Textur bestehend aus einem schwarzen Hintergrund und einem horizontalen und einem vertikalen Strich der 1 Pixel breit ist. Dieser wird gefiltert indem die Nachbarpixel mit einbezogen werden.

Ich brauche dringend Hilfe da ich sonst bei meiner Diplomarbeit nicht weiter komme.
 
Zuletzt bearbeitet:
Zurück