tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
261
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    So Hallo jetzt kommt endlich der Thread mit dem In Textur Rendern
    Habe folgenden Render Code: ( Bitte Kommentare lesen )
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    
    // Dieses D3D ist vergleichbar mit dem Device also g_pDevice->.... iSt halt in meine Engine gekapselt
    // Als erstes alles in eine Textur Rendern  
        Matrix      mProjection;
    //...
     
        D3D->SetRenderTarget(0,pRenderSurface);
        D3D->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(150, 150, 165), 1.0f, 0);
     
        D3D->BeginScene();
     
        // Alles Mögliche Rendern ( Das Geht auch versprochen habe es ja getestet^^ )
        // Auch view world und translationsmatrix wird gesetzt
     
        // Szene beenden
        D3D->EndScene();
     
     
     
        // Dann die Textur, in die gerendert wurde, rendern
     
        D3D->SetRenderTarget(0,pBackBuffer);
        D3D->Clear(0,
                               NULL,
                               D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
                               D3DCOLOR_XRGB(0,0,0),
                               1.0f,
                               0);
        D3D->BeginScene();
     
        D3D->SetTexture(0,pRenderTexture);
     
        // Wie das Funktioniert ist egal es geht^^
        mProjection = MatrixProjection(CALC_DEG_TO_RAD(60.0f), D3D.GetAspect(), 0.1f, 300.0f);
        D3D.SetTransform(D3DTS_WORLD,MatrixIdentity()); // MatrixIdentity Ist quasie der Null wert
        D3D.SetTransform(D3DTS_PROJECTION, mProjection);
     
        D3D->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);
     
    D3D->EndScene();
    In Init steht auser laden noch das:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    D3D->CreateTexture(256,
                                            256,
                                            1,
                                            D3DUSAGE_RENDERTARGET,
                                            D3DFMT_R5G6B5,
                                            D3DPOOL_DEFAULT,
                                            &pRenderTexture,
                                            NULL);
     
        pRenderTexture->GetSurfaceLevel( 0, &pRenderSurface );
     
        D3D->GetRenderTarget(0,&pBackBuffer);
    Die Variablen die es noch zu wissen gibt:
    LPDIRECT3DTEXTURE9 pRenderTexture;
    LPDIRECT3DSURFACE9 pRenderSurface,pBackBuffer;
    So das wars danke fürs lesen
    Nun mein Problem ist das der Bildschirm schwartz bleibt
    Weiß jemand warum? Danke
    PS: Der Bildpuffer wird automatisch Scihtbar gemacht( Ist in einer Schleife)
    PPS: Ich garantiere das Jede Funktion einwandfrei geht.
    MfG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Hallo,

    wo setzt du denn den Vertex Buffer und das Vertex Layout? Ansonsten ist für das Zeichnen eines Full Screen Quads eine perspektivische Projektionsmatrix eher weniger geeignet. Setze die Matrizen alle auf Einheitsmatrizen und zeichne das Rechteck in normalisierten Gerätekoordinaten (Eckpunkte (-1, -1, 0, 1), (-1, 1, 0, 1), (1, -1, 0, 1), (1, 1, 0, 1)).

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Danke ich werde es mla testen aber so steht es im Tutorial: http://www.two-kings.de/tutorials/dx...raphics16.html
    MfG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  4. #4
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Also habe es jetzt geschafft hat wirklich an dem VertexBuffer gelagen.
    Aber ein Problem gibt es. Das Fertige bild ist sehr unscharf und vorallem so naja schelchte qualität eben. Screenshot als anhang!!
    AA Ist aus also die Kanten sind egal. Aber es ist alles unscharf und man hat so komische wellen in den Farben! Warum?
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  5. #5
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Die Unschärfe kommt vermutlich daher, dass deine Textur nur 256×256 Pixel groß ist. Und die Banding-Artefakte („Wellen“) werden durch das Texturformat (D3DFMT_R5G6B5) verursacht, das mit 16 Bit Auflösung nicht alle Zwischenfarben darstellen kann.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  6. #6
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Ok Danke nur wenn ich bei der Größe D3D_DEFAULT angebe bekomme ich bei
    pRenderTexture->GetSurfaceLevel( 0, &pRenderSurface );
    Ne Zugriffs verletztung und wenn ich 512x512 mache bleibt alles schwarz...
    Danke
    MfG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  7. #7
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Wie kommst du darauf, dass du bei der Größe D3D_DEFAULT angeben kannst? Überprüfst du den Rückgabewert von CreateTexture?
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  8. #8
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Naja also ich dacht das bei Default oder 0 die Größe der auflösung genommen wird. Und Nein ich überprüfe den Rückgabewert noch nicht.
    Wiekann ich das eigentlich mit der Farbe lösen? Denn nicht jede Graka unterstützt 32 bit oder?
    Danke
    MfG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  9. #9
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    So nun habe ich das Problem mit der Auflösung hingekriegt aber selbst wenn ich die Textur in der Gleichen auflösung erstlle ist das Bild Leicht unscharf! Außer dem habe ich jetzt ein weiteres problem! AntiAliasing bzw Multisampling funktioniert nicht wenn ich in die Textur Rendere. Wenn ich den Zweiten render Schritt auskommentiere und auch nicht den Render Target auf die Textur setze geht AA wieder!
    Wieso?
    Bracuhe Hilfe
    Danke
    MfG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  10. #10
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Zitat Zitat von MSVCplusplus Beitrag anzeigen
    So nun habe ich das Problem mit der Auflösung hingekriegt aber selbst wenn ich die Textur in der Gleichen auflösung erstlle ist das Bild Leicht unscharf!
    Zeichnest du das Rechteck denn in normalisierten Gerätekoordinaten? Wie sehen die Texturkoordinaten aus?

    Zitat Zitat von MSVCplusplus Beitrag anzeigen
    Außer dem habe ich jetzt ein weiteres problem! AntiAliasing bzw Multisampling funktioniert nicht wenn ich in die Textur Rendere.
    Richtig. Du musst mit CreateRenderTarget ein Render Target mit den gewünschten Multisampling-Einstellungen anlegen und in dieses zeichnen. Anschließend kopierst du den Inhalt in deine Textur (mit StretchRect). Diese kannst du dann wie bisher rendern.

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

Ähnliche Themen

  1. Video-Textur Absturz beim rendern
    Von Dknecht im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 22.02.09, 19:35
  2. In Textur rendern /Mapping Problem
    Von Arachnoo im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 22.01.08, 12:51
  3. Label Textur realistisch rendern
    Von Danielku15 im Forum Cinema 4D
    Antworten: 10
    Letzter Beitrag: 30.10.07, 19:50
  4. Textur Fehler beim rendern
    Von umoyasquad im Forum Cinema 4D
    Antworten: 3
    Letzter Beitrag: 06.10.07, 18:42
  5. Schatten auf Textur rendern?!
    Von glasschwert im Forum Cinema 4D
    Antworten: 9
    Letzter Beitrag: 23.04.05, 12:07