Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
// Render-Funktion tbResult Render(float fNumSecsPassed) { HRESULT hResult; tbMatrix mRotation; // Rotationsmatrix tbMatrix mTranslation; // Translationsmatrix tbMatrix mWorld; // Vereinende Weltmatrix // Rotations- und Translationsmatrix des Dreiecks erzeugen mRotation = tbMatrixRotationY(TB_DEG_TO_RAD(g_fTime * 90.0f)); mTranslation = tbMatrixTranslation(tbVector3(0.0f, 0.0f, 2.0f)); // Beide Matrizen kombinieren und als Weltmatrix einsetzen mWorld = mRotation * mTranslation; g_pD3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)(&mWorld)); // ------------------------------------------------------------- // Den Bildpuffer und den Z-Buffer leeren if(FAILED(hResult = g_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(234, 234, 234), 1.0f, 0))) { // Fehler beim Leeren! MessageBox(g_hWindow, "Fehler beim Leeren der Puffer!", "Fehler", MB_OK | MB_ICONEXCLAMATION); TB_ERROR_DIRECTX("g_pD3DDevice->Clear", hResult, TB_STOP); } // Szene beginnen g_pD3DDevice->BeginScene(); g_aTriangleVertex[0].dwColor = tbColor(.7f, .7f, .7f); g_aTriangleVertex[1].dwColor = tbColor(.7f, .7f, .7f); g_aTriangleVertex[2].dwColor = tbColor(.7f, .7f, .7f); g_pD3DDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); // Nun das Dreieck zeichnen if(FAILED(hResult = g_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, // Dreiecksliste 1, // 1 Dreieck g_aTriangleVertex, // Vertexdaten sizeof(SVertex)))) // Vertexgröße { // Fehler beim Zeichnen! MessageBox(g_hWindow, "Fehler beim Zeichnen des Dreiecks!", "Fehler", MB_OK | MB_ICONEXCLAMATION); TB_ERROR_DIRECTX("g_pD3DDevice->DrawPrimitiveUP", hResult, TB_STOP); } g_aTriangleVertex[0].dwColor = tbColor(0.0f, 0.0f, 0.0f); g_aTriangleVertex[1].dwColor = tbColor(0.0f, 0.0f, 0.0f); g_aTriangleVertex[2].dwColor = tbColor(0.0f, 0.0f, 0.0f); //g_pD3DDevice->SetRenderState( D3DRS_DEPTHBIAS, 10 ); //g_pD3DDevice->SetRenderState( D3DRS_SLOPESCALEDEPTHBIAS, 10 ); g_pD3DDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME); g_pD3DDevice->DrawPrimitiveUP(D3DPT_LINESTRIP, 2, g_aTriangleVertex, sizeof(SVertex)); // Szene beenden g_pD3DDevice->EndScene(); // Der große Moment: den Bildpuffer sichtbar machen g_pD3DDevice->Present(NULL, NULL, NULL, NULL); return TB_OK; } |
Ja, dann hast du das Problems nicht verstanden. Der Rest hat damit nichts zu tun. Ich beziehe mich auch auf nichts anderes. Lies doch bitte einfach die Doku, bevor wir hier Abhandlungeden darueber schreiben muessen.@TGGC: Was du mit Rasterisierungsregeln meinst, habe ich nicht verstanden. Bezieht sich das auf die Antialiasing Thematik die xardias oben schon beschrieben hat?
Ich weiß, dass ich das Problem und das was du in deinem Beitrag angedeutet hast, nicht verstanden habe. Was meinst du jetzt mit "Rest" und du beziehst dich "auf nichts anderes"? Am Antialiasing liegt es, wie ich beschrieben habe nicht. Wenn du weißt ob oder wie das Problem zu lösen ist, wäre ich dir für einen konkreten inhaltlichen Satz dankbar. Wenn du es nicht weißt oder es mir nicht sagen möchtest, ist es aber auch ok.Ja, dann hast du das Problems nicht verstanden. Der Rest hat damit nichts zu tun. Ich beziehe mich auch auf nichts anderes. Lies doch bitte einfach die Doku, bevor wir hier Abhandlungeden darueber schreiben muessen.@TGGC: Was du mit Rasterisierungsregeln meinst, habe ich nicht verstanden. Bezieht sich das auf die Antialiasing Thematik die xardias oben schon beschrieben hat?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »stoic« (29.10.2010, 11:43)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Hm, bin ich mit dem DEPTHBIAS auf der falschen Fährte? Welche Doku meint ihr eigentlich? Ich habe nur das "DirectX Software Development Kit". Hast du einen Link zu einer besseren Doku die ich dazu durcharbeiten kann? Ich würde allerdings lieber das Buch von David weiter durcharbeiten. Werde ich die Lösung dort auch finden? Anscheinend wollt ihr ein Quiz mit mir spielen.Lies doch einfach die Doku. Dann hast Du das Problem zumindest einmal vollständig durchgearbeitet und nicht nur halbwegs lavede hingebogen.
Indem du einen eigenen Rasterizer schreibst, der nach Regeln arbeitet, die zu dem von dir gewuenschten Ergebnis fuehren.Wenn du weißt ob oder wie das Problem zu lösen ist, wäre ich dir für einen konkreten inhaltlichen Satz dankbar.
Werbeanzeige