Denkanstoß 3D Objekte 2D Darstellen
-
Zudem ist dieses OrthoLH für die projectonsmatrix und nicht für die weltmatrix.
vielleicht solltest du dich noch ein bischen mit denGrundlagen in diesem Gebiet beschäftigen, da gibt es auch auchreichend in der sdk doku.
-
Decimad schrieb:
von 0...1 in z-richtung ist bestimmt etwas knapp bemessen.
Was wären denn geeignetere werte deiner Meinung nach?
D3DXMATRIX ProjectionMatrix; D3DXMatrixPerspectiveFovLH(&ProjectionMatrix, D3DXToRadian(45), float(float(Width) / float(Height)), 1.0f, 150.0f); D3DXMATRIX Mat, Test; D3DXMatrixOrthoLH(&Mat, 400, 400, 0, 1); D3DXMatrixMultiply(&Test, &Mat, &ProjectionMatrix); Device->SetTransform(D3DTS_PROJECTION, &Test);
Sieht jetzt immernoch so aus wie wenn ich das auf die World anwende.... Wie kommt das?
Mit diesen 3 Matritzen und der Renderpipline das kenn ich eigentlich noch so von OpenGL -> Habe nur mit den Directx funktionen jetzt ein wenig zu kämpfen aber ich bin bester dinge das ich das mit eurer Hilfe und nach meinem kleinem Projekt dann soweit geschaft hab und mich reingefummelt habe das auch der rest kein Problem ist.
-
Ich hab nochmal ein wenig rumspielen können
Ergebniss ist jetzt folgendes:
http://f.imagehost.org/view/0741/gut
Genau so hab ich mir das gedacht!
Problem ist jetzt wenn ich das ganze verschiebe sprich die Kameraposition ändere kommt sowas:
http://f.imagehost.org/view/0875/schlecht
Das ist natürlich nicht so schön das dahinter wöde ich ja gerne nicht sehen.
Wie mache ich das?
mfg nils
-
-
Mit anderen worten, passe mit der Kamerabewegung auch die Blickrichtung an.
Ich schätze mal du verwendest zum bestimmen der Richtung die passende D3DX-Funktion. Der für die Blickrichtung bestimmte vektor gibt da keine Richtung sondern einen Punkt an.
-
Kahino schrieb:
Mit anderen worten, passe mit der Kamerabewegung auch die Blickrichtung an.
Ich schätze mal du verwendest zum bestimmen der Richtung die passende D3DX-Funktion. Der für die Blickrichtung bestimmte vektor gibt da keine Richtung sondern einen Punkt an.Das klingt sehr gut. Das klappt jetzt auch hab nur noch 2 Fragen:
Erstens:
D3DXMatrixOrthoLH(&Mat, 400, 400, 0, 1);
Welche Werte sind hier für die beiden Letzten Parameter gut?
Ich gesetehe ich versteh nicht ganz was mit znear und zfar gemeint ist.Zweitens:
http://g.imagehost.org/view/0721/WorldRotate
So sieht das immo aus. Das ist nunja augenscheinlich bei den gedrehten sachen etwas komisch. Hier der Code:void View::Render() { switch(Type) { case DreiD: case Front: break; case Top: MyDirectx->SetWorldRotation(0, 90); break; case Left: MyDirectx->SetWorldRotation(270, 0); break; case Right: MyDirectx->SetWorldRotation(90, 0); break; default: ResetTypeMessage(); ResetType(); break; } MyDirectx->SetViewport(x, y, Width, Height); if(Type != DreiD) { MyDirectx->SetOrtho(); } MyDirectx->MoveCamera(Adjustment.x, Adjustment.y, Adjustment.z); MyDirectx->RotateCamera(Rotation.x, Rotation.y); MyDirectx->SetViewMatrix(); RenderMeshs(); RenderTypeText(); MyDirectx->RotateCamera(-Rotation.x, -Rotation.y); MyDirectx->MoveCamera(-Adjustment.x, -Adjustment.y, -Adjustment.z); MyDirectx->SetViewMatrix(); if(Type != DreiD) { MyDirectx->UnSetOrtho(); } MyDirectx->SetWorldRotation(0, 0);
void Directx::SetWorldTransform(float x, float y, float z) { D3DXMatrixTranslation(&MatTranslate, x, y, z); SetWorld(); } void Directx::SetWorldRotation(float x, float y) { D3DXMATRIX MatRotx, MatRoty; D3DXMatrixRotationX(&MatRotx, x); D3DXMatrixRotationY(&MatRoty, y); D3DXMatrixMultiply(&MatRotate, &MatRotx, &MatRoty); SetWorld(); } void Directx::SetWorld() { D3DXMATRIX World; D3DXMatrixMultiply(&World, &MatRotate, &MatTranslate); Device->SetTransform(D3DTS_WORLD, &World); }
Ich hoffe ihr könnt mir verraten wo ich was falsch mache bzw. wo ich nen Denkfehler habe.
mfg nils
-
-
In der Doku steht:
zn
[in] Minimum z-value of the view volume which is referred to as z-near.
zf
[in] Maximum z-value of the view volume which is referred to as z-far.Nur weiß ich nicht was damit gemeint ist.
Und ich denke auch nicht das die Parmaeter was mit meinem immomentigen Problem zutun haben ich hab damit etwas rumgespielt und die scheinen andere auswirkungen zu haben....
mfg nils
-
Hast du Lese- oder Englischprobleme? Es ist der minimale bzw. maximale Z-Wert des Sichtvolumens, steht doch alles da! f'`8k
AutocogitoGruß, TGGC (Das kommt gut)
-
TGGC schrieb:
Hast du Lese- oder Englischprobleme? Es ist der minimale bzw. maximale Z-Wert des Sichtvolumens, steht doch alles da! f'`8k
AutocogitoGruß, TGGC (Das kommt gut)
Weder noch.... Also da man es mir ja nicht erklären will versuch ich mal das zu schildern was ich dahinter vermute:
Der Bereich zwischen Kamera und Object ist dieses Sichtvolumen und dann wie groß der Maximal bzw Minimal sein darf?
Naja meine Probleme lösen sich damit iwie nicht....
mfg nils
-
nilres schrieb:
Der Bereich zwischen Kamera und Object ist dieses Sichtvolumen und dann wie groß der Maximal bzw Minimal sein darf?
Nein. Schau einfach mal in die Doku. Da ist es doch erklaert. Mit Bildern, damit es der letzte Drops kapiert. f'`8k
AutocogitoGruß, TGGC (Das kommt gut)
-
Ok damit is das thema hier beendet