Autor Beitrag
inek
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 12.04.08 22:30 
Hallo zusammen, bin gerade dabei mich das erste mal mit Direct3D auseinander zu setzen.

vielleicht kann mir jemand bitte kurz erläutern, warum ich mit folgendem code ausgerechnet ein quadrat und ausgerechnet einen farbverlauf bekomme.


also es funktioniert alles... ich versteh nur nicht warum aus den 4 dreiecken ein quadrat gemacht wird und warum ich einen farbverlauf habe..

und welche codeSegmente dafür verantwortlich sind...

mein presentParameter :
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
m_oPresentParameters = new PresentParameters();

            m_oPresentParameters.SwapEffect = SwapEffect.Discard;
            m_oPresentParameters.Windowed = true;
            m_oDevice = new Device(0, DeviceType.Reference, this, CreateFlags.SoftwareVertexProcessing,m_oPresentParameters);



hier mein Vertex
ausblenden 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:
              //vertex Buffer erstellen
                VertexBuffer oVertexBuffer = new VertexBuffer(typeof(CustomVertex.TransformedColored), 4, form.RenderDevice, Usage.SoftwareProcessing, CustomVertex.TransformedColored.Format, Pool.Managed);


                CustomVertex.TransformedColored[] oVerts = null;


                oVerts = (CustomVertex.TransformedColored[])oVertexBuffer.Lock(0, LockFlags.None);

                oVerts[0].X = 50;
                oVerts[0].Y = form.ClientSize.Height - 50;
                oVerts[0].Color = Color.Red.ToArgb();

                oVerts[1].X = 50;
                oVerts[1].Y = 50;
                oVerts[1].Color = Color.Blue.ToArgb();

                oVerts[2].X = form.ClientSize.Width-50;
                oVerts[2].Y = form.ClientSize.Height-50;
                oVerts[2].Color = Color.Green.ToArgb();

                oVerts[3].X = form.ClientSize.Width-50;
                oVerts[3].Y = 50;
                oVerts[3].Color = Color.Yellow.ToArgb();


und hier meine Render Methode
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
public void Render(RenderDelegate oDelegate)
        {
            if (m_oDevice == null)
                return;

            m_oDevice.Clear(ClearFlags.Target, Color.Blue, 1.0f0);
            m_oDevice.BeginScene();

            if (oDelegate != null)
                oDelegate();

            m_oDevice.EndScene();
            m_oDevice.Present();
        }
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 13.04.08 12:04 
Sieht nach Managed DX 1.1 aus. Du hast es wahrscheinlich schon gehört ;) , aber dann muss ich dich darauf hinweisen, dass mDX quasi tot ist und durch XNA ersetzt wurde.
user profile iconinek hat folgendes geschrieben:
ich versteh nur nicht warum aus den 4 dreiecken ein quadrat gemacht wird und warum ich einen farbverlauf habe..
4 Vertices, nicht 4 Dreiecke. Und aus wie vielen Punkten besteht ein Viereck :zwinker: ? Der Farbverlauf kommt dann dadurch zustande, dass die Farben der einzelnen Verts über die gesamte Triangle-Fläche interpoliert werden, also einfacher gesagt ineinander verlaufen. Es gibt sicher irgendwelche Webseiten, die dass _etwas_ ausführlicher beschreiben ;) .
SilverMoonGirl
Hält's aus hier
Beiträge: 1

Win XP
MS Visual C# Express Edition
BeitragVerfasst: Fr 18.04.08 11:22 
Hallo inek :-)

Kann es sein, dass dein Beispiel, das Beispiel aus dem Buch "Managed DirectX und C#" ist? Wenn ja, könntest du mal deinen ganzen Quelltext veröffentlichen? Ich arbeite gerade am selben Beispiel und habe leider kein farbiges Rechteck, sondern nur ein weißes. Ich finde leider auch meinen Fehler nicht. Eigentlich habe ich alles so gemacht, wie das in dem Buch steht :gruebel:
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 18.04.08 13:27 
Wenn du immer "TransformedColored" angegeben hast, kann da eigentlich nicht viel schiefgehen :gruebel: . inek wirst du jedenfalls hier wahrscheinlich schneller erreichen.
inek Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 19.04.08 18:54 
Oh... sorry, hab irgendwie nich so viel Zeit gehabt.

hier nochmal meine Solutionnim anhang.
Einloggen, um Attachments anzusehen!