Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 18:59

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C# DirectX Terrain Texturen zuweisen nach tilemap

Discussion on C# DirectX Terrain Texturen zuweisen nach tilemap within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
Anohros's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 288
Received Thanks: 1,170
C# DirectX Terrain Texturen zuweisen nach tilemap

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:
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();
}
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.
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);
}
Im Terrain Viewer sieht das dann so aus:


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();
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!
Anohros is offline  
Thanks
4 Users
Old 07/31/2010, 19:31   #2
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Free push
.BritainAndy is offline  
Old 08/01/2010, 11:59   #3
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Push
.BritainAndy is offline  
Old 08/01/2010, 12:18   #4
 
P-a-i-n's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
gibt doch bsp im i-net



und dein bild was du da hast das ist kein texture das wird mehr oder weniger mit meshes gemacht
P-a-i-n is offline  
Thanks
2 Users
Old 08/02/2010, 06:40   #5
 
Anohros's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 288
Received Thanks: 1,170
Morgen,
Das 1. Tutorial zeigt wie man eine Texture für das ganze Terrain verwendet.
Ich brauch Multitexturing das nach einem Array (das Aussagt welche Texture sich an Punkt X/Y befindet) das Terrain Texturiert;
(Aber konnt noch was anderes daraus entnehmen, und bei mir im Code verbessern)

Das 2. Tutorial befasst sich mit dem Rendern der RAW Heightmap.
Das 3. Tutorial macht es auch über Vertex.Color.
Anohros is offline  
Old 08/02/2010, 12:19   #6
 
P-a-i-n's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 1,258
Received Thanks: 396
du findest doch alles auf der seite

P-a-i-n is offline  
Thanks
1 User
Reply

Tags
client, map editor, metin2, visual studio


Similar Threads Similar Threads
ot in der terrain.epk
05/24/2010 - Metin2 Private Server - 0 Replies
hi hab mal ne frage ich wollte die ot tesxturen in feuerland ändern aber ich find den ot texturordner in der terrain.epk nicht welcher ist es?
.gr2 Dateien Texturen zuweisen
04/11/2010 - Metin2 Private Server - 8 Replies
Hi Leute, da ich letztens ja bissl mit Waffenmodden angefangen habe und des bei einigen ganz gut ankam, hat mich einer gefragt ob ich seine selbstmodellierte Waffe bissl ändern kann. Jedoch weiß keiner von uns beiden wir man die dann den modell zuweisen kann. Und um das zu ändern bräuchte ich auch erstmal die Grundform. Wir haben also beide kp wie man des macht wollens aber trotzdem versuchn. Weis einer von euch vllt wie man das macht ? Wäre echt nice ^^ Mfg.22Uhr06
.gr2(warrior_lord.gr2) hat keine Texturen (Source File zuweisen?)
04/08/2010 - Metin2 Private Server - 2 Replies
Wie oben schon steht habe ich bei einer bearbeiteten Rüstung (mit 3ds max7) keine Texturen drauf? Woran liegt das?(ganz normal abgespeichert wieder als .gr2 X dingens geamcht do es klappt einfach nicht) Wie kann ich einer .gr2 eine Source file zuweisen?
Desert terrain now as Bird Island terrain!!!
10/30/2007 - Conquer Online 2 - 27 Replies
Preview: http://img241.imageshack.us/img241/5958/betterter rainzq4.png Overview: This changes the bright yellow desert terrain to the nice dark green terrain of Bird Island. If you hunt or are leveling at Desert City, you may find this very helpful! So now items are alot easier to be seen and your eyes aren't being burned out by the brightness of this annoying map, especially when you gotta level there for like 20 levels.



All times are GMT +1. The time now is 19:02.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.