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
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »DerMark« (12.01.2011, 09:33)
C#-Quelltext |
|
1 |
List<CustomVertex.PositionNormalTextured> pointRenderList = new List<CustomVertex.PositionNormalTextured>(); |
C#-Quelltext |
|
1 2 3 4 5 6 7 |
VertexBuffer vb = new VertexBuffer(typeof(CustomVertex.PositionNormalTextured), pointRenderList.Count, device, Usage.WriteOnly, CustomVertex.PositionNormalTextured.Format, Pool.Default); GraphicsStream stream = vb.Lock(0, 0, 0); stream.Write(pointRenderList.ToArray()); vb.Unlock(); device.VertexFormat = CustomVertex.PositionNormalTextured.Format; |
C#-Quelltext |
|
1 2 |
device.SetStreamSource(0, vb, 0); device.DrawPrimitives(PrimitiveType.TriangleList, 0, (pointRenderList.Count / 3)); |
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
struct MyVertex { public float X; public float Y; public float Z; public float Nx; public float Ny; public float Nz; public int Color; public float Tu; public float Tv; public static readonly VertexFormats Format = VertexFormats.Position | VertexFormats.Normal | VertexFormats.Diffuse | VertexFormats.Texture0; } |
C#-Quelltext |
|
1 |
public static readonly VertexFormats Format = VertexFormats.Position | VertexFormats.Normal | VertexFormats.Diffuse | VertexFormats.Texture0; |
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
struct MyVertex { public Vector3 Position; public Vector3 Normal; public int Color; public float Tu; public float Tv; public static readonly VertexFormats Format = VertexFormats.Position | VertexFormats.Normal | VertexFormats.Diffuse | VertexFormats.Texture0; } |
C#-Quelltext |
|
1 2 3 4 5 6 7 8 |
MyVertex p1 = new MyVertex(); p1.Position = v; p1.Tu = tu; p1.Tv = tv; p1.Color =c.ToArgb(); p1.Normal = n; pointRenderList.Add(p1); |
Zitat
Wie genau die Fields selbst angeordnet sein müssen müsstest du aber selbst mal schauen, möglicherweise ist mein beispiel da noch fehlerhaft.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Das Problem mit der "Durchschnittsfarbe" habe ich lösen können =)
Da gabe es einen kleinen Fehler in der Struktur, statt VertexFormats.Texture0; muss man VertexFormats.Texture1; setzten, da VertexFormats.Texture0; besagt, dass eben keine Textur vorhanden ist. Somit kann ich nun Farben und Texturen wechseln =)
Aber es ist ein weiteres Problem, oder einfach etwas unschönes aufgetaucht.
Dadurch, dass ich eine Farbe und eine Textur in der Struktur habe, wird, wenn die Textur angezeigt werden soll, zusätzlich auch die Farbe angezeigt, also wenn ich zum Beispiel eine Struktur mit Textur "Gras" habe und die Farbe Rot, erhalte ich rotes Gras. Ist intressant und kann man sicherlich brauchen =)
Nur: Im Moment etwas ungünstig. HAbe das so gelöst, dass wenn eine Textur angezeigt werden soll, die Farbe einfach Weiss ist, dann gibt es keine Konflikte.
Oder weist du da abhilfe?
Danke auf jedenfall =)
Werbeanzeige