tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
309
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Speedfreak23 Speedfreak23 ist offline Grünschnabel
    Registriert seit
    Apr 2005
    Beiträge
    2
    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.
    Geändert von Speedfreak23 (26.09.08 um 14:31 Uhr)
     

Ähnliche Themen

  1. 10 Pixel im Firefox / 10 Pixel im IE 6
    Von ne0hype im Forum CSS
    Antworten: 2
    Letzter Beitrag: 27.12.07, 01:15
  2. Bilder pixel für pixel auslesen!
    Von tobee im Forum Coders Talk
    Antworten: 9
    Letzter Beitrag: 21.06.06, 00:11
  3. IE stellt 1 Pixel etwa 5 pixel dar
    Von mrtest im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 16.06.05, 00:00
  4. shader
    Von rammellaus im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 04.05.03, 22:03
  5. shader
    Von freekazoid im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 14.03.02, 23:28