Heightmap

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Krusby

Betreff: Heightmap

BeitragMo, Apr 15, 2013 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leutz ist mein erster beitrag und zwar geht es um Heightmap's !
Fange erst mit B3D an habe aber schon Jahre in B+ geschrieben also sind mir Grundfunktionen wie Type,Dim,Function etc. bestens bekannt aber wie es meinst so ist happert es am Hintergrund Wissen xDD


Also 1. angenommen ich erstelle eine Heightmap sagen wir mal 1024x1024 Pixel groß bedeutet das dann das jeder Pixel ein sagen wir mal Feld darstellt ?
2.Wenn ich die Map lade liegt die Augangangspostion bei X,Y = 0 und kann man mehrere Heightmap einzeichen lassen und wenn ja ist sowas sinnvoll ?
3.Kann ich die Highmap verschiedene Texturen an verschieden stellen zuweisen ?
4.Gibt es eine Max. Größe der Heightmap (z.b. 10000x100000)
5.Beudet Schwarzer Punkt = 0 und Weißerpunkt = ???? auf der Highmap

Sorry falls es das schon irgentwie gibt aber habe da nichts direktes zu gefunden !
Gewinner des BCC 76

the FR3AK

BeitragMo, Apr 15, 2013 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallöchen,

1. Soweit ich weiß, stellt ein Pixel ein Quad der gerenderten Heightmap dar.
2. Kann man, könnte sinnvoll sein für z.B. große Landschaften, bei denen du immer nur die Heightmaps in deinem Umfeld sichtbar machst und die "unsichtbaren" ausblendest um Ressourcen zu sparen.
3. Kann man, in den Beispielen von B3D sollte es sowas geben.
4. 10000x100000 Pixel würde nicht gehen, da es immer Bilder mit einer 2^n Größe sein sein müssen (also z.B. 64x64, 1024x1024, usw.) Ich glaube, dass das von der Grafikkarte abhängig ist, bin mir aber nicht sicher.
5. Ja.

Und Tschüß :>

Krusby

BeitragMo, Apr 15, 2013 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die schnelle Hilfe das wars dann schon !
Gewinner des BCC 76

DAK

BeitragMo, Apr 15, 2013 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist schon ein wenig her, dass ich mit B3D gearbeitet habe, also kann sein, dass ich mich bei manchem falsch erinnere.

1) Jedes Pixel ist ein Vertex im Terrain, also quasi ein Eckpunkt. Jedes Feld würde sich aus zwei Dreiecken, die sich aus den vier Eckpunkten (=Pixel) rund um das Feld zusammensetzen.
2) Die Ausgangsposition liegt bei 0,0 außer du verschiebst das Terrain mit MoveEntity oder TranslateEntity. Du kannst so viele Terrains laden, wie es dein Computer verkraftet. Das hat hauptsächlich den Sinn, dass du z.B. eine riesige Welt in mehrere Einzelteile zerlegen kannst, und nur die Teile anzeigst, die der Spieler überhaupt sehen kann (stell dir vor, dein Computer müsste die gesamte Welt von z.B. WoW rendern, da würd dir selbst der beste Rechner in die Knie gehen).
3) Ja, mit BlitzBasic: [AUSKLAPPEN]
TextureBlend
. Schaut dann so aus:
BlitzBasic: [AUSKLAPPEN]

texErde = LoadTexture("erde.png")
texStrasse = LoadTexture("strasse.png")
texStrassenkarte = LoadTexture("strassenkarte.png") ;Diese Textur ist schwarz, wo Erde sein soll, und Weiß, wo Straße sein soll

TextureBlend texErde, 3
TextureBlend texStrassenkarte, 2
TextureBlend texStrasse, 2

ScaleTexture texStrassenkarte, 64, 64

EntityTexture terrain, texErde, 0, 2
EntityTexture terrain, texStrassenkarte, 0, 1
EntityTexture terrain, texStrasse, 0, 0


4) Denke nicht. Höchstens durch den Speicher deiner Grafikkarte. Die Frage ist eher, was ist eine sinnvolle Größe des Terrains. Ein Hauptgrund für Terrains ist, dass sie schnell laufen und wenig Speicher fressen, im Vergleich zu anderen Möglichkeiten (wie z.B. Meshterrains). Dieser Effekt geht ein, wenn du zu große Terrains machst.
Bessere Lösung um ein größeres Terrain zu kriegen: BlitzBasic: [AUSKLAPPEN]
ScaleEntity
. Skaliere es auf den X- und Y-Wert hoch, um das Terrain breiter und länger zu machen.

5) Schwarz = 0, Weiß = 1. Willst du das Terrain höher haben, auch hier wieder BlitzBasic: [AUSKLAPPEN]
ScaleEntity
, nur diesmal die Y-Koordinate.



Ansonsten würde ich dir empfehlen, dir ein B3D-Tutorial durchzuarbeiten, wie z.B. das hier. (Ich weiß, Eigenwerbung.. Aber quasi alles, was ich dir gesagt habe, steht in diesem Tutorial drinnen, und alles, wo ich mir nicht mehr sicher war, habe ich da wieder raus gesucht.)


Edit: War wer schneller
Gewinner der 6. und der 68. BlitzCodeCompo

Krusby

BeitragDi, Apr 16, 2013 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles klar werds mir mal angucken und danke für die ausführliche Antwort !
Gewinner des BCC 76

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group