durchsichtiger würfel



  • Hi Leute,
    ich habe schwierigkeiten beim rendern eines Würfels. Wenn er auf den Bildschirm gebracht dann ist immer die vordere Seite durchsichtig, ich kann also in den Würfel schauen und alle anderen seiten sehen. Auch wenn ich ihn drehe, ist die mir zugewandte Seite durchsichtig. Nur die 2 letzten Dreiecke die ich zeichnen lasse sind nicht durchsichtig.
    Woran kann das liegen?
    Meine Vertices hab ich alle im Uhrzeigersinn initiiert. Selbst wenn ich die abgewandten Dreiecke zeichnen lasse ändert sich nichts.



  • Was wolltest du überhaupt erreichen?
    Nen komplett durchsichtigen Würfel?
    Oder nen komplett undurchsichtigen Würfel?
    Oder sonst was?



  • Backfaceculling abschalten evtl.





  • @ AndreasXXL:
    Einen Stinknormalen Würfel halt, der nicht durchsichtig ist.

    @Davidpb:
    Meinst du das?:

    pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
    

    da passiert auch nix.

    Woran kann denn so ein Effekt generell liegen?



  • Du renderst sicher im falschen Uhrzeigersinn...



  • wie im falschen uhrzeigersinn?

    Und wenn das so wäre, mit

    pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
    

    müsste das doch egal sein oder?



  • Und wenn das so wäre, mit
    C/C++ Code:
    pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

    ja müsste es..
    ich weiß ja nicht ob es daran liegen kann...aber vielleicht ist die zugewandte seite zu nahe dran und wird deshalb nicht angezeigt?



  • Scripta schrieb:

    wie im falschen uhrzeigersinn?

    Und wenn das so wäre, mit

    pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
    

    müsste das doch egal sein oder?

    Stimmt 🙄 ja dann eh schneidets die near plane weg kann ich mir aber nicht vorstellen...



  • Nein,
    der Effekt bleibt Egal von welcher Seite oder vin welchem Winkel ich es auch betrachte. Aber warum zeigt er mir die beiden letzten Flächen die gezeichnte werden immer an?
    Muss man irgendwelche Matrizen änder oder anders setzen.
    Ich hab bis jetzt eine Welt- und Projektionsmatrix gesetzt

    D3DXMATRIX mxProjection;
    	D3DXMatrixPerspectiveFovLH(&mxProjection, D3DX_PI/4, iWindowWidth/iWindowHeight, 0.1f, 50.0f);
    	pD3DDevice->SetTransform(D3DTS_PROJECTION, &mxProjection);
    
    	D3DXMATRIX mxWorld;
    	D3DXMatrixTranslation(&mxWorld, fWorldPosX, fWorldPosY, fWorldPosZ);
    	pD3DDevice->SetTransform(D3DTS_WORLD, &mxWorld);
    


  • ohne deinen code werden wir dir nicht viel helfen können...
    vielleicht stimmt was mit dem vertexbuffer nicht? (also vlt werden nur die letzten beiden übergeben?)



  • Ich benutze DrawPrimiteUP mit ner TRIANGLE_LIST.
    Welchen Teil braucht ihr denn? Vom Code?

    EDIT:
    Also von innen sieht man alles wunderbar. Wenn ich im Würfel bin dann ist alles gut. Warum zeichnet er es aussen nicht so wie innen?



  • Poste mal bitte den code wo du den buffer füllst



  • möglicherweise n bissl am zBuffer herumgefummelt, und GREATEREQUAL als vergleichsfunktion eingegeben und nicht wieder umgeändert? sowas könnte auch zu seltsamen ergebnissen führen.

    @dali: hm, yo könnte schlicht und einfach dran liegen, dass die eckenkoordinaten irgendwie falsch eingegeben wurden.

    @scripta: zeichne doch ma zuerst einen normalen tetraeder, da ist weniger platz für fehler... 🤡


Anmelden zum Antworten