Terrain-Texturgrösse nicht untersützt-Was nun?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Der_Schläfer

Betreff: Terrain-Texturgrösse nicht untersützt-Was nun?

BeitragDi, Sep 11, 2007 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo leuts

also:
ich bin grad an meinem 3d-level editor für son spile, das kommt dann später im showcase, und hab jetzt son 512^2 hightmap-terrain mit textur.

diese textur ist 2048^2 pixel gross, die male ich am anfang mit einigen tilemap-bildern voll.

soweit alles klar, jetzt habe ich aber versucht die textur ein bissl grösser zu machen so 4156, und es passiert nichts: sie bleibt 2048....
ich habe das gefühl, das liegt an meiner grafikkarte... weiss jemand wie ich mein problem am besten löse?
weil die auflösung passt so nicht, das level währe sonst zu klein...

merci im voraus Very Happy

Lunatix

BeitragDi, Sep 11, 2007 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Textur aneinanderreihen oder mehrere Texturen benutzen, heisst aber auch mehrere Surfaces und somit auch wieder mehr Geschwindigkeitslastig. Normal reicht ein wiederholen der textur, man kann auch einen bestimmten abschnitt, z.b. einen Weg als extra Surface(s) mit extra weg texuren nehmen und den rest wiederholen lassen.
Aber eine Endlostextur wie bei der Quake Wars Megatexture Technik wirst du mit B3D nicht realisieren können.
Bedenke auch das 4096*4096*4 = 67108864 byte = 64mb speicher braucht... eine 1024x1024 Texture grad mal 4mb...
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

sdjh

BeitragDi, Sep 11, 2007 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst nur Größen in der 2er Potenz nutzen. Sprich: 256, 512, 1024, 2048, etc. Alle anderen Texturen werden gestreckt. Ich meine mich erinnern zu können, dass immer die nächst größere Potenz genommen wird.
Aber ich hatte mal eine TNT2. Die mochte auch nur maximal 2048. Abgesehn davon, dass sie B3D überhaupt nicht abkonnte, aber egal.

Aber wozu brauchst du eine solch große Textur? Selbst beim detailierten Rendern ist 1024 schon luxus. Skaliere das Level einfach. Und wenn du Abschnitte hast, die detailierter sein sollen, dann ist es eine bessere Idee, das Terrain gleich als Mesh zu laden und die Stellen im Editor per Hand mit mehr Polygonen zu versorgen.

Der_Schläfer

BeitragMi, Sep 12, 2007 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die raschen Antworten Wink Schonmal gut...

"Du kannst nur Größen in der 2er Potenz nutzen."
Ich weiss. Ich hab mich vertippt, sorry, ich meinte 4096 Sad

Die Textur aneinanderreihen geht nicht, weil ich ja ein Tilemap-System machen wollte und sich die Textur folglich nicht widerholen darf...

Was ich Fragen wollte ist, wie ich das Problem am besten lösen soll.

Ich könnte z.b. mehrere Texturen für das Terain nehmen, oder mehrere Terrains anneinanderreihen, ...

Was würdet ihr machen?
 

ChristianK

BeitragMi, Sep 12, 2007 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde die Textur auf jeden Fall verkleinern. Eine 4096er-Textur braucht im Speicher 48 MB (!) und das ist reine Verschwendung. Selbst eine 2048er würde noch 12 MB brauchen.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Matthias

BeitragMi, Sep 12, 2007 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay. Ich würde an deine Steller eine 1024ger Textur nehmen und dazu noch ein 256ger StruckturLayer Gekachelt das du drüber blendest damit nicht alles so Flächenartig aussieht.

Also so ungefär:
Code: [AUSKLAPPEN]

T=CreateTerrain(1024,1024)
T1=loadTexture("Textur1024")
ScaleTexture T1,1024,1024

T2=LoadTexture("Strucktur")
scaleTexture T2,.1,.1
EntityTexture T,T1,0,0
EntityTexture T,T2,0,1

Allerdings müste diese StruckturTextur sehr hell sein. Weil sie ja gemicht wird.
Aber soviel ich weiß gibt es im Blitz3D SamplesOrdner genug Beispiele.
Mfg Matthias

Kernle 32DLL

BeitragFr, Sep 21, 2007 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal was ganz offtopic... wenn man eine Textur hat, die.. sagen wir mal um die 4000 (mir fällt gerade die richtige 2er Potenz nicht ein) groß ist, und auf das Terrain gelegt wird... ist das auch geschwindigkeitseinbuße ? Das ganze Terrain besteht ja nur aus einem mesh und einer Surface ^^

beziehe meine Frage auf Junkprogger's Aussage ^^

Grüßle:
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009
 

Dreamora

BeitragFr, Sep 21, 2007 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja hat es.

Eine 80 MB grosse Textur in den RAM zu schieben und zu rendern hat recht gravierende Performance einbussen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

ZaP

BeitragFr, Sep 21, 2007 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Soweit ich weiß macht selbst DX9 nich mehr als 4096 * 4096 pixel mit.
Starfare: Worklog, Website (download)
 

ChristianK

BeitragFr, Sep 21, 2007 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Die maximale Texturgröße ist nicht von der DirectX-Version abhängig. Das ist eine Sache der Grafikkarte. Die meisten Karten haben ein Maximum von 2048², manche auch 4096², worauf man sich aber nicht verlassen sollte.

@Dreamora
[klugscheisser] 64 MB, ohne Alpha-Kanal 48 MB. Wink [/klugscheisser]
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group