ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
493
493
EMPFEHLEN
-
01.05.05 11:15 #1
hi!
Ich arbeite mich gerade in MDX ein und wollte mittels IndexBuffer nen Würfel erstellen.
Ich hab die Standard-Form-Funktionen hier mal weggelassen.Code :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 80 81 82 83 84 85 86 87 88 89 90 91
public class Form2 : System.Windows.Forms.Form { private Device device; private VertexBuffer vBuffer; private IndexBuffer iBuffer; CustomVertex.PositionOnly[] verts; int[] indices; public Form2() { InitializeComponent(); PresentParameters presentParams = new PresentParameters(); presentParams.SwapEffect = SwapEffect.Discard; presentParams.Windowed = true; device = new Device(0,DeviceType.Hardware, this.Handle, CreateFlags.SoftwareVertexProcessing, presentParams); CreateCube(); } private void CreateCube() { vBuffer = new VertexBuffer(typeof(CustomVertex.PositionOnly), 8, device, Usage.Dynamic, CustomVertex.PositionOnly.Format, Pool.Default); iBuffer = new IndexBuffer(typeof(int), 36, device, Usage.Dynamic, Pool.Default); //creating vertices verts = new CustomVertex.PositionOnly[8]; //vorne verts[0] = new CustomVertex.PositionOnly(25,25,25); verts[1] = new CustomVertex.PositionOnly(75,25,25); verts[2] = new CustomVertex.PositionOnly(75,75,25); verts[3] = new CustomVertex.PositionOnly(25,75,25); //hinten verts[4] = new CustomVertex.PositionOnly(25,25,75); verts[5] = new CustomVertex.PositionOnly(75,25,75); verts[6] = new CustomVertex.PositionOnly(75,75,75); verts[7] = new CustomVertex.PositionOnly(25,75,75); //setting data vBuffer.SetData(verts,0,LockFlags.None); //setting indices indices = new int[36] { //vorne 0,1,3, 1,2,3, //rechts 1,5,2, 5,6,2, //hinten 5,4,6, 4,7,6, //links 4,6,7, 6,3,7, //oben 4,5,0, 5,1,0, //unten 3,2,7, 2,6,7 }; iBuffer.SetData(indices,0,LockFlags.None); device.Indices = iBuffer; } public void Render() { device.Clear(ClearFlags.Target, Color.White, 1.0f, 0); device.BeginScene(); SetupCamera(); device.SetStreamSource(0,vBuffer,0); device.VertexFormat = CustomVertex.PositionOnly.Format; device.DrawIndexedPrimitives(PrimitiveType.LineList, 0, 0, verts.Length, 0, indices.Length/3); device.EndScene(); device.Present(); } private void SetupCamera() { device.Transform.View = Matrix.LookAtLH(new Vector3(), new Vector3(100,100,100), new Vector3(0,1,0)); device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI/2, (float)Width/Height, 1.0f, 150.0f); device.RenderState.ZBufferEnable = false; device.RenderState.CullMode = Cull.None; } }
Das Problem bei der ganzen Sache ist, dass das Ergebnis etwas komisch aussieht (ich häng mal nen screenshot an).
Ich find den Fehler einfach net. Kann mir jemand bitte helfen?!
mfg broetchen
Ähnliche Themen
-
managed DirectX: x-File mit Animation
Von ma-pi im Forum .NET CaféAntworten: 1Letzter Beitrag: 10.06.08, 13:28 -
.Net managed etc..
Von chmee im Forum .NET CaféAntworten: 0Letzter Beitrag: 10.01.06, 17:51 -
[DirectX // Win 32] DirectX im Fenster?
Von Nizomi im Forum C/C++Antworten: 8Letzter Beitrag: 31.08.05, 23:26 -
Managed DirectX - Kamera richtig positionieren
Von broetchen im Forum .NET ArchivAntworten: 2Letzter Beitrag: 16.06.05, 15:36 -
Animation aus X-Datei per Managed DirectX lesen und abspielen
Von dxkackboon im Forum .NET ArchivAntworten: 0Letzter Beitrag: 28.03.05, 18:50





Zitieren
Login





