Hallo Leute in der epvp*coders Sektion,
ich habe eine Frage an euch Directx/ C# + Directx Coders.
Ich Arbeite momentan an einem Terrain Viewer für Metin2, den schreibe ich in C#.
Zur Darstellung von 2D und 3D verwende ich Directx.
Meine Frage bezieht sich auf das Texturieren eines Terrains:
Ich verwende eine tilemap "tile.raw" in der Abgespeichert ist, an welchen stellen sich die Texturen auf dem Terrain befinden.
Die "tile.raw" lade ich mit diesem Code:
Mein Terrain hat eine Größe von 258*258 PX, und die "tile.raw" hat auch eine Größe von 258*258 PX.
Momentan wird das Terrain nur durch die Vertex.Color texturiert.
Im Terrain Viewer sieht das dann so aus:
[Only registered and activated users can see links. Click Here To Register...]
Ich möchte von euch Wissen, wie man Texturen aus einer Datei zbs . "gras.jpg" benutzt, ähnlich wie meine Methode :
Es muss mehrere Texturen unterstützen können wenn möglich!
(Hab auch schon Gegoogelt aber nichts geeignetes gefunden!)
Freue mich auf eure Antworten!!
Wäre dankbar wenn mir jemand weiterhelfen kann mit Source, Links zu Tutorials oder Beispielen!
ich habe eine Frage an euch Directx/ C# + Directx Coders.
Ich Arbeite momentan an einem Terrain Viewer für Metin2, den schreibe ich in C#.
Zur Darstellung von 2D und 3D verwende ich Directx.
Meine Frage bezieht sich auf das Texturieren eines Terrains:
Ich verwende eine tilemap "tile.raw" in der Abgespeichert ist, an welchen stellen sich die Texturen auf dem Terrain befinden.
Die "tile.raw" lade ich mit diesem Code:
Code:
private float[,] tileData;
private void loadTileMap()
{
tileData = new float[259, 259];
FileStream fs = new FileStream("C:\\Map Viewer\\tile.raw", FileMode.Open, FileAccess.Read);
BinaryReader tileMap = new BinaryReader(fs);
for (int X = 0;i< 258;i++)
{
for (int Y=0; Y< 258; Y++)
{
byte tile = (byte)(tileMap.ReadByte());
tileData[258 - 1 - Y, 258 - 1 - X] = tile;
}
}
tileMap.Close();
}
Momentan wird das Terrain nur durch die Vertex.Color texturiert.
Code:
private void VertexDeclaration()
{
vb = new VertexBuffer(typeof(CustomVertex.PositionColored), WIDTH * HEIGHT, device, Usage.Dynamic | Usage.WriteOnly, CustomVertex.PositionColored.Format, Pool.Default);
vertices = new CustomVertex.PositionColored[WIDTH * HEIGHT];
for (int x = 0; x < WIDTH; x++)
{
for (int y = 0; y < HEIGHT; y++)
{
vertices[x + y * WIDTH].Position = new Vector3(x, y, heightData[x, y]);
if (tileData[x, y] == 1) {
vertices[x + y * WIDTH].Color = Color.Orange.ToArgb();
} else if (tileData[x, y] == 3) {
vertices[x + y * WIDTH].Color = Color.YellowGreen.ToArgb();
} else if (tileData[x, y] == 4) {
vertices[x + y * WIDTH].Color = Color.Yellow.ToArgb();
} else if (tileData[x, y] == 5) {
vertices[x + y * WIDTH].Color = Color.Green.ToArgb();
} else if (tileData[x, y] == 6) {
vertices[x + y * WIDTH].Color = Color.LightGreen.ToArgb();
} else if (tileData[x, y] == 8) {
vertices[x + y * WIDTH].Color = Color.Gray.ToArgb();
} else if (tileData[x, y] == 9) {
vertices[x + y * WIDTH].Color = Color.Silver.ToArgb();
} else if (tileData[x, y] == 12) {
vertices[x + y * WIDTH].Color = Color.OrangeRed.ToArgb();
} else {
vertices[x + y * WIDTH].Color = Color.White.ToArgb();
}
}
}
vb.SetData(vertices, 0, LockFlags.None);
}
[Only registered and activated users can see links. Click Here To Register...]
Ich möchte von euch Wissen, wie man Texturen aus einer Datei zbs . "gras.jpg" benutzt, ähnlich wie meine Methode :
Code:
} else if (tileData[x, y] == 12) {
vertices[x + y * WIDTH].Color = Color.OrangeRed.ToArgb();
(Hab auch schon Gegoogelt aber nichts geeignetes gefunden!)
Freue mich auf eure Antworten!!
Wäre dankbar wenn mir jemand weiterhelfen kann mit Source, Links zu Tutorials oder Beispielen!