Entwickler-Ecke
Multimedia / Grafik - Erste Schritte in DirectX
inek - Sa 12.04.08 22:30
Titel: Erste Schritte in DirectX
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 :
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
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:
| 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
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.0f, 0); m_oDevice.BeginScene();
if (oDelegate != null) oDelegate();
m_oDevice.EndScene(); m_oDevice.Present(); } |
Kha - So 13.04.08 12:04
Titel: Re: Erste Schritte in DirectX
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.
inek 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 - 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:
inek - Sa 19.04.08 18:54
Oh... sorry, hab irgendwie nich so viel Zeit gehabt.
hier nochmal meine Solutionnim anhang.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!