Jump to content
Unity Insider Forum

Textur gebogen zeichnen?


Elharter

Recommended Posts

Hallo,

 

wenn ich auf einem Terrain mit dem Pinsel eine Textur zeichne erscheint die Textur immer gleich gedreht - egal welche ich nehme.

 

Es wirkt als würde ich mit dem Pinsel einfach die Textur 1:1 so aufzeichnen wie sie abgespeichert ist.

 

Ich würde aber gerne eine Textur "gebogen" zeichnen um Curbs in einem Rennspiel zu simulieren.

 

Wie krieg ich das hin?

Bin völlig planlos. Das ganze wäre mit Texturen und Pinsel fein, da ich es dann in einen späteren Map-Editor auch umsetzen könnte.

 

Also kurz gesagt: ich möchte gerne Curbs variabel mit der Maus, entlang einer Kurve, zeichnen können.

 

lg

 

 

mike

Link zu diesem Kommentar
Auf anderen Seiten teilen

So wie du dir das vorstellst funktioniert das nicht.

 

Auf ein Terrain wir keine Textur gemappt so wie du es vielleicht von einem Mesh (Plan) kennst.

Wenn du ein Terrain hättest das beispielsweise 1024 *1024 m groß ist und du würdest darauf eine 1024px * 1024 üx Textur legen dann hättest du pro qm gerade mal ein Pixel.

Darum verwendet man bei Terrain einen Trick in dem man mehre Texturen gekachelt über das Terrain legt.

(Diese legst du ja in den Terrain Settings fest)

 

Mit dem Pinsel zeichnest du das die Textur aufs Terrain sondern du definierst nur wo welche Textur auf dem Terrain sichtbar sein soll.

 

Wenn du in Photoshop schonmal mit Masken gearbeitet hast dann weißt du das es dort Schwarz/ Weiß Masken gibt. Bei einem Terrain gibt sind dies aber im Prinzip Masken mit mehren Farben.

Du Zeichnest nicht die Farbe auf das Terrain sondern eine Maske diese Maske die du zeichnest nennt man auch Splatmap.

 

So sieht das dann beispielsweise aus: https://www.world-machine.com/images/wm23/splatmap.jpg

 

Deswegen sind Texturen auf dem Terrain nur gekachelt möglich.

 

Es gibt aber einige Möglich:

 

1.Du könntest ein Decal system verwenden.

Siehe:

https://www.assetstore.unity3d.com/en/#!/content/13889

 

2. Du könntest eine extra Textur mit Dirt zu deinen Texturen hinzufügen und sie an besten Stellen sichtbar machen.

 

3.Du könntest kurz über deiner Strasse eine Plane plazieren ´worauf du zb Reifenspuren zeichnest und dieses Material mit einer Alpha map zum teil Transparenz machen (Fake Decal)

Link zu diesem Kommentar
Auf anderen Seiten teilen

So wie du dir das vorstellst funktioniert das nicht.

 

Auf ein Terrain wir keine Textur gemappt so wie du es vielleicht von einem Mesh (Plan) kennst.

Wenn du ein Terrain hättest das beispielsweise 1024 *1024 m groß ist und du würdest darauf eine 1024px * 1024 üx Textur legen dann hättest du pro qm gerade mal ein Pixel.

Darum verwendet man bei Terrain einen Trick in dem man mehre Texturen gekachelt über das Terrain legt.

(Diese legst du ja in den Terrain Settings fest)

 

Mit dem Pinsel zeichnest du das die Textur aufs Terrain sondern du definierst nur wo welche Textur auf dem Terrain sichtbar sein soll.

 

Wenn du in Photoshop schonmal mit Masken gearbeitet hast dann weißt du das es dort Schwarz/ Weiß Masken gibt. Bei einem Terrain gibt sind dies aber im Prinzip Masken mit mehren Farben.

Du Zeichnest nicht die Farbe auf das Terrain sondern eine Maske diese Maske die du zeichnest nennt man auch Splatmap.

 

So sieht das dann beispielsweise aus: https://www.world-ma...23/splatmap.jpg

 

Deswegen sind Texturen auf dem Terrain nur gekachelt möglich.

 

Es gibt aber einige Möglich:

 

1.Du könntest ein Decal system verwenden.

Siehe:

https://www.assetsto...!/content/13889

 

2. Du könntest eine extra Textur mit Dirt zu deinen Texturen hinzufügen und sie an besten Stellen sichtbar machen.

 

3.Du könntest kurz über deiner Strasse eine Plane plazieren ´worauf du zb Reifenspuren zeichnest und dieses Material mit einer Alpha map zum teil Transparenz machen (Fake Decal)

 

Wow! Das ist mal eine Erklärung wie sie im Buche steht! Danke dir recht herzlich dafür!

 

2+3 verstehe ich nicht, da ich ja gebogene Curbs zeichnen möchte

racing-curbs-3034418.jpg

 

Das mit den Decals klingt gut!

 

@fairygirl: danke, das habe ich bereits vor paar Tagen getestet. Hilft mir aber nicht, da sich das System nur schwer in einen Map/Trackeditor einbinden lässt und es außerdem zu komplex ist für das was ich benötige.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kein Problem :)

 

2+3 verstehe ich nicht, da ich ja gebogene Curbs zeichnen möchte

 

Achso wenn du richtige Strassen haben willst, dann musst die Modellieren und als Plane mit Farbahnrand auf dem Terrain plazieren.

Dirt kannst du dann entweder direkt in die Textur zeichnen oder auch wie mit Decals auf deiner Strasse aufstempeln.

 

Ich denke du wirst jedenfalls nicht auf das gewünschte Ergebnis kommen wenn du versuchst die Strasse mit dem Terrain Editor aufzumalen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Achso wenn du richtige Strassen haben willst, dann musst die Modellieren und als Plane mit Farbahnrand auf dem Terrain plazieren.

Genau das macht easy Road automatisch, also das modellieren und auch schön in das Terrain einpassen :D Am Ende ist das also Jacke wie Hose, nur das easy road einfacher und schneller ist. Aber Elharter möchte ja was in einen Map/Trackeditor einbinden

Link zu diesem Kommentar
Auf anderen Seiten teilen

Elharter: Das ist ja ein toller zufall, das bild dass Du gepostet hast, ist eines von einer Ftoreihe, von der ich eins für ein Game verwendet habe

 

http://zfx.info/viewtopic.php?f=10&t=3634&hilit=japan

 

Dafür habe ich mehrer japanische Rennstrecken mithilfe von google earth nachgezeichnet. Die sind aber noch ohne textur, weil ich später einen multytexture shader verwenden wollte um die übergänge von sand zur wiese vliessender gestallten wollte. Und seit heute habe ich unity und dachte hier ist terain(als blender modell) bemalen ein kinder spiel :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Elharter: Das ist ja ein toller zufall, das bild dass Du gepostet hast, ist eines von einer Ftoreihe, von der ich eins für ein Game verwendet habe

 

http://zfx.info/view...634&hilit=japan

 

Dafür habe ich mehrer japanische Rennstrecken mithilfe von google earth nachgezeichnet. Die sind aber noch ohne textur, weil ich später einen multytexture shader verwenden wollte um die übergänge von sand zur wiese vliessender gestallten wollte. Und seit heute habe ich unity und dachte hier ist terain(als blender modell) bemalen ein kinder spiel :)

 

Mhhh naja das "malen" ist sicher ein Kinderspiel....aber es hört auf lustig zu werden wenn du schön gerade Geraden haben möchtest oder eine ordentlich gebogene Kurve zb.... oder du eben Curbs benötigst.

 

@Bemmi: ja das würde grundlegend gehen, begrenzt den Spieler aber zu sehr da dann nur eine begrenzte Anzahl an Streckenverianten möglich sind. Ein grenzenloses "malen" bewirkt da schier undenkbare offene Möglichkeiten.

 

Setzt aber voraus dass es eben eine Möglichkeit gibt das entsprechend auch umzusetzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, wenn man genügend Teile hat gibt es auch sehr sehr viele Möglichkeiten und sehr viele Möglichkeiten reichen, da eh nicht jeder unbegrenzt Speicher hat... Ich weiss was Du meinst, aber selbst auf einer von der Größe eingeschränkten Fläche gibt es endliche Variationen. Irgendwann kann man visuell nicht mehr von der einen Strecke unterscheiden nur weil der Weg da 5 Pixel weiter links ist.

....

Oder eben ein eigenes Wegesystem ähnlich Easyroad oder so.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte vor einiger Zeit auch mal eine Rennstrecke gebaut dafür hab ich nur eine gerade Strecke angefertigt und diese texturiert. Aus der geraden konnte ich dann mit deformer Kurven Looping usw formen.

 

Ein Modell, eine Textur.

 

Ich würde da den umgekehrten weg gehen, erst die Strecke und das dass Terrain der Strecke anpassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann man machen, muss man aber nicht. Sleepy hat seine Kurvenstücke sicher in Maya gebogen. Ich habe letztes Jahr in einer Firma an einem Rennspiel mit gearbeitet und wir haben fertig texturierte Straßen in MAX und Blender verformt. Ich glaube, dass das einfacher und präziser ist, als in Unity.

 

Im einfachsten Fall importiert man eine Gerade, eine Kurve und eine Rampe und kann dann eine Strecke wie mit Lego aufbauen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sleepy hat seine Kurvenstücke sicher in Maya gebogen.

 

Jup genau die gesamte Bahn ist in Maya entstanden.

 

1. Hab ich ein gerade Stücl gebaut dafür die UV gemacht und es fertig texturiert.

 

Siehe:

post-2400-0-46223000-1446461598_thumb.jpg

 

2. Mehre dieser Teilstück ergeben eine gerade stecke. Das gesamte Mesh besteht aus zwei teilen:

 

a)Aus einer Oberfläche (Plane) auf dem das Auto fährt. Nur auf die Oberfläche kommt ein Collider drauf.

 

B) aus einem Unterbau der nur schön aussehen soll darauf kommt kein Collider.

 

siehe:

post-2400-0-90589400-1446461759_thumb.jpg

 

3. Wenn ich mehre Teilstücke neben einander reihe und dieses mit einem Deformer verbiege kann ich daraus einen Looping biegen.

 

Siehe:

post-2400-0-59907400-1446461869_thumb.jpg

 

4. kurven gehen natürlich auch:

post-2400-0-69469400-1446461924_thumb.jpg

 

So sieht die Stecke im gesamten aus:

post-2400-0-00889000-1446462022_thumb.jpg

 

 

Das Tolle daran ist das die gesamte Stecke im Prinzip nur aus einem Basis Mesh und einer einzigen Textur besteht. Die gesamte Stecke so zu bauen ist extrem wenig Arbeit.

Mesh Modellieren, UV, Textur und dann das Mesh beleibig oft duplizieren und verbiegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja genau das will ich eben nicht.... ich will "keine" Teile haben.... ich möchte dass der Spieler sich seine Strecke beliebig zeichnen kann. Stärke, länge, Dicke, kurvenradius, alles....mit einem Pinsel.

 

Nur er soll eben die Möglichkeit bekommen rot/weiße "Curbs" die Kurve entlang zeichnen zu können. Funktion brauchen die keine haben, muss nur rot/weiß sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn Du keine in sich geschlossenen runden hast könntest Du auch achtel Teile einer Kurve modellieren und es würde nicht auffallen dass es Bausteine sind und du könntest für den Spieler einen strecken Editor zur Verfügung stellen

 

Das wollte ich mir noch anschauen bin aber noch nicht so weit im tutorial

 

http://www.hummelwalker.de/2010/10/25/unity-3d-tutorial-34-strassen-erstellen/

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei den meisten Tips die hier vorgestellt wurden handelt sich immer um Splines , die kann man ja auch runtime "zeichen"

Vielleicht solltest du dich wirklich mal in die Richtung schlau machen ?

 

Ja "Spline" klingt schon mal sehr gut als Stichwort....lässt sich gut scripten. Ist noch die Frage ob man auf ein Spline eben Texturen legen kann damit das Curb eben dann auch wie ein Curb aussieht :)

 

Aber rein logisch betrachtet klingt das passend.

 

@kakashi: wie gesagt, mir gehts eigentlich mehr um die Curbs als um die Strecke. Die Strecke möchte ich gerne mit einem Pinsel zeichnen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde das mit Splines machen und dann das Konzept von Easy-Road oder Roadbuilder usw nehmen...Man kann ja in Unity auch das Mesh in der Laufzeit bearbeiten, sprich die Vertices an die Spline anpassen. Da ein Streckenteil keinen Schatten werfen soll usw geht das ziemlich gut.

Dafür braucht man halt ein Rohteil-Mesh welches ein Streckenelement mit Curbs darstellt, die Textur und den Code der das Streckenteil an der Spline anpasst und vervielfältigt und evtl bei Bedarf die Strecke noch schließt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...