Terrain-Größen Problem[erledigt]
Übersicht

Penthouse PauperBetreff: Terrain-Größen Problem[erledigt] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey Spezis,
ich habe ein kleines Problem mit einem Terrain. Das erste Mal trat das Problem auf, als ich versucht habe, eine HUD-Karte von dem Terrain zu basteln: Der Kartenmaßstab stimmte nicht mit dem des Terrains überein. War der Player am rand der HUD-Karte, stand jedoch nicht am Rand des Terrains. Ich dachte, es würde an meinen mathematischen Fähigkeiten liegen und darum lies ich die Geschichte ruhen... Beim Multitexturing benutzte ich nun eine Maske für die Wasserteile und die ließ sich nicht ordentlich rüberziehen... also wieder das gleiche Problem. Hier mal ein wenig Source-Code(Auszüge). Die Karte ist 4096px groß, die Maske auch. Das Terrain soll 2:1 (breit,hoch)sein. Y auf 200 gescalet, damit die Höhe herauskommt. Code: [AUSKLAPPEN] land=LoadTerrain( "terrain_alpha2.bmp" ) ScaleEntity land,2,200,1 ;<---- PositionEntity land,-2048,-98,-1024 EntityType land,TYPE_TERRAIN TerrainDetail land,6000,False TerrainShading land,True [...] ScaleTexture mask, 2, 1 [...] map_HUD=LoadImage( terrain_map$ ) ScaleImage map_HUD, (2.0/25), (1.0/25) mapx# = 1000-(ImageWidth(map_HUD)/2) mapy# = 200+(ImageHeight(map_HUD)/2) [...] DrawImage map_HUD,(1000-ImageWidth(map_HUD)),(200) [...] Function DrawHUD_mapitem( item.Player ) xCord# = EntityX(item\entity, 1) yCord# = EntityZ(item\entity, 1) Oval mapx#+(xCord#*(2.0/75)), mapy-(yCord#*(1.0/75)), 2, 2 End Function Ich habe zum Test sogar schon eine Variable für die Scale-Werte eingesetzt und versucht dann sozusagen Realtime-Scaling per Tastaturbefehle zu bewerkstelligen... nach einem Wert von 8000, 4000 war ich nahe dran, leider aber keine Übereinstimmung... Hier die Bilder http://www.1kor13.de/Galerie/I...ater01.jpg http://www.1kor13.de/Galerie/I...alpha2.jpg Hoffe das sind genug Infos. Danke für eure Hilfe!!! |
||
- Zuletzt bearbeitet von Penthouse Pauper am Sa, Aug 12, 2006 16:00, insgesamt einmal bearbeitet
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab da nicht so ganz überblick aber wenn es ein 4096² Bild ist, dann solltest du auch das terrain auf die richtige position setzen.
(scale * 2 also x=-4096) (y ist mir egal ^^) (scale * 1 also z=-2048) |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Terrain wäre bei einer 4096x4096 und scaling 2,1 danach 8192,4096 gross, da 1 Pixel zu 1 Unit Länge führt. (sprich normalerweise nimmt man kleinere Heightmap, da sonst garnichtsmehr wie eine Farbe erkennbar ist ![]() Allerdings kannste das net als Textur laden um es drauf zu pappen, da nur die neueste Grafikkartengeneration mit solch grossen Texturen überhaupt umgehen kann. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Penthouse Pauper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh, ehrlich nicht? Das ist ja blöd. Wie soll ich denn dann ordentliche Texturen raufziehen? Mein Plan war es Gewässerboden- und Detailstruktur draufzukleben, dann die Maske draufzumoppeln und danach die Sandtextur rauf.
Wenn er natürlich bei der Maske Probleme macht fällt das ganze Texturing in den Bach... |
||
Penthouse Pauper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich hab jetzt mal die Textur verkleinert und damit wirds schon besser.
Neue Maße sind 512x256. Meine Frage nun aber ist, wieviel Pixel eine Unit LE darstellen. Gibts da ne pauschale Regel? Vielen Dank für eure Hilfe |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
kommt natürlich drauf an, wie nah du dran bist ![]() |
||
MrKeks.net |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1 Pixel wird beim Terrain einer 3D Einheit entsprechen wenn ich mich recht erinner.
Für Realworld -> 3D gibts keine Regel, da das vom CameraZoom abhängt (wie es dann aussieht). musst du also selbst festlegen, was wieviel entspricht ![]() Texturieren mit solchen Tricks geht übrigens schon, nur wirds dann ein wenig komplizierter |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Penthouse Pauper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Inarie hat Folgendes geschrieben: kommt natürlich drauf an, wie nah du dran bist
![]() *Nöööt* falsch. Hast du z.B. schonmal einen Baum gesehen, der wächst wenn du nahe rangehst? Texturen sind i.d. Regel konstant. Die Maserung im Holz ist immer die gleiche... was du meinst ist wohl eher das, was man 3.Dimension nennt ![]() Zu Dreamora: Wenn ich mit einem 1:1 (Pixel:LE) Verhältnis rechne, dann sieht das so aus: Textur 512x256, Terrain 8192x4096 ---> 8192:512 = ScalingFaktor Setze ich das jedoch um, dann liegt die Textur nicht 1:1 auf meinem Terrain. Daher muss es eine andere Übersetzung sein. Größer... Was ich mir noch überlegt habe, war, ob es nicht noch eine Möglichkeit gäbe mit Blitz eine UV-Map über das Terrain zu legen, dann würde die Textur automatisch passen, wenn ich ein Plane nehme, oder? |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: *Nöööt* falsch. nicht so vorlaut bitte ![]() hatte deine frage wohl offensichtlich missverstanden. dachte, du wolltest wissen, wie viele pixel auf dem bildschirm eine LE ausfüllt... so, dann tippe ich mal, du willst was anderes wissen in zusammenhang mit texturen und terrains. dann zeugt deine frage allerdings auch irgendwie von technischem unverständnis ^^. also, die pixel deiner ausgangsbilder verlieren in 3d größtenteils ihre bedeutung. da für texturen in 3d uvkoordinaten von 0 bis 1 gelten, ist es egal, welche maße die textur hat. sie wird immer dieselbe fläche ausfüllen. du lädst also ein terrain. seine seitenlänge wird der des ausgangsimages entsprechen. (es sind nur quadratische terrains möglich) hat deine terrain-ausgangsdatei also 256x256 pixel (und das wird eigentlich immer ausreichen es sei denn du willst wirklich ein riesiges terrain), dann hat dein terrain am anfang 256x256 LE. daran wirst du vermutlich noch rumskalieren müssen, damits in deinen spielmaßstab passt. für die texturierung ist es aber ganz egal, wie du da das terrain rumskalierst. wenn du nix an der texturskalierung änderst, wird b3d (wenn ich das richtig in erinnerung habe) die textur 256x256 mal auf das terrain pappen, also für jede lade-LE enmal. soll deine textur also das ganze terrain füllen, musst du ScaleTexture deine_textur,256,256 schreiben. bzw. allgemeiner formuliert heißt das dann: ScaleTexture deine_textur,TerrainSize(dein_terrain),TerrainSize(dein_terrain) so wird jede textur, unabhängig von ihrer größe, jedes terrain immer ganz ausfüllen ^^. |
||
MrKeks.net |
Penthouse Pauper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah, okay, das wird dann schon eher etwas.
Vielen Dank! ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group