Jump to content
Unity Insider Forum

Gras vom Terrain hat einen Strich oben am ende der Textur


RiseBasti

Recommended Posts

Hallo zusammen

 

Mir ist vor einer Weile mal aufgefallen, dass über meinem Gras auf meinem Terrain einen Strich habe. Dieser kann je nach Blickwinkel störend sein.

Kann mir da jemand weiterhelfen?

(Bild im Anhang)

 

Zudem bin ich gerade dabei Animationen zu entdecken. Wie kann ich ein Clip einer Animation einmal (also zb. bei OnTriggerEnter) bis zum ende abspielen lassen? In meinem Fall will ich eigentlich nur eine simple Schiebetür mit "OnTriggerEnter" und "OnTriggerExit". ^_^

Ich weiss wie ich die Clips erstellen kann, aber nicht wie ansprechen.

 

Danke für eure Hilfe!

 

PS: Ich kann zurzeit auf der Seite keine Beiträge suchen, liegt das an meinem PC oder an der Seite?? :blink:

post-2340-0-97197200-1485882335_thumb.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube das liegt an der Seite, weil das Forum momentan ein paar Ticks hat :D

 

Zum Thema Animationen mit Mecanim etc. gibt es doch genug Tutorials im Internet.

Nimm einfach deinen AnimationsController in dein Script, und mit SetBool kannst du dann z.B. einen Bool setzen um deine Animation abzuspielen. Diesen musst du dann natürlich voher im Controller festlegen, sodass er z.B. die Animation abspielt, wenn er auf "True" gesetzt wird.

 

 

https://docs.unity3d.com/Manual/AnimationOverview.html

https://docs.unity3d.com/ScriptReference/Animations.AnimatorController.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auch wenn ich Mip Map Filtering auf Box stelle habe ich das selbe Problem. :(

 

Hier noch ein Bild meiner Textur.

(Ich habe den Hintergrund zur Veranschaulichung auf einer neuen Ebene schwarz eingefärbt, damit man die Textur besser sehen kann. Ich habe dir Textur auch überprüft, ob auch sicher keine anderen Pixel ausser des Grases vorhanden sind.)

post-2340-0-21002900-1485936889_thumb.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du musst jeder deiner Detailtexturen einen Alphachannel verpassen (im Prinzip Planzenanteile weiß und der Rest schwarz oder alles schwarz). Sollte auch nur eine Textur (Grass oder Detail) keinen Alphachannel haben oder einen weißen Alphachannel, dann kann es passieren, daß eine Textur in eine andere hineinläuft (bleeding). Der Hintergrund ist wohl, daß Unity intern alle Texturen der Grass- und Detailobjekte in einer Texturmap zusammenfasst. Du musst also leider jede Textur einzeln überprüfen und korrigieren und dann als 32bit Alphatextur neu importieren und die Terraindetails aktualisieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also je länger je mehr verstehe ich nix mehr ^^

Ich habe nun alle Texturen neu erstellt (Neues PDF erzeugt und nur das Gras rüberkopiert) und dazu einen Alphakanal erstellt. Dann habe ich alle meine bisherigen Gras-Elemente im Terrain gelöscht und neu erstellt. Soweit sogut.

Als ich die ersten 2 hinzugefügt habe sah alles noch so aus wie es sein sollte. Als ich dann das 3. hinzugefühgt habe, hat das 1. Gras erneut die Striche oben bekommen :blink:

Und dann beim 4. hat das 2. Striche gekrigt... :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Schick mir mal die Texturen via Skype oder so und dann schaue ich sie mir mal schnell an, vielleicht immer noch ein Fehler in einer Textur im Alphakanal. Idealerweise sollte die Pflanze im Alphakanal weiß sein und der Hintergrund schwarz. Eventuell hilft es auch, wenn du die "fehlererzeugenden" Texturen einfach auslässt. Man kann bei den Texturen auch noch ein "Edge Padding" hinzufügen, aber das macht relativ viel Arbeit. Ich glaube allerdings nicht, daß es daran liegt. Ein fehlendes "Edge Padding" führt eigentlich nur zu Farbverlaufsfehlern und sollte keine Pixelfehler verursachen. "Edge Padding" ist eine Art Farbverlauf im Albedokanal (RGB) vom Vordergrund der Textur zum Hintergrund. Hat man beispielsweise eine grüne Pflanze, so wird ein Farbverlauf vom Rand der Pflanze in den Hintergrund hinein erzeugt. Je breiter dieser Farbverlaufsrand umso besser (der verhindert, das eine Farbe in eine andere hineinläuft (blutet).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sehr seltsam, ich kann es nachvollziehen, bei mir ist es leider auch so, sobald man mehr als 2 dieser Grastexturen im Terrain setzt, dann fangen die Striche über dem Gras an. Ich habe mir die Texturen mal näher angeschaut und den Alphakanal geprüft, aber da scheint alles in Ordnung zu sein. Auch mit den Textursettings hat es denke ich nichts zu tun. Vielleicht ist da irgendwo ein versteckter Texturfehler (an den Rändern der Gräser oder im Hintergrund des Bildes) oder man muss doch ein "Edge Padding" hinzufügen, aber eigentlich sollte das erst bei aktiviertem Mip Mapping erforderlich sein, der Fehler taucht aber bereits ohne Mip Mapping auf... Ich würde noch einmal die Gräser "sauber" ausschneiden und in einen neuen Hintergrund setzen, eventuell sind an den Rändern der Gräser (eingebettete) "quasitransparente" Bereiche und die Alphamaske passt nicht exakt auf die Ränder der Gräser und das führt dann irgendwann zu minimalen Pixelfehlern oder es sind noch Pixel im Hintergrund, die man aber nicht sieht (daher das Ausschneiden der Gräser und einsetzen in einen neuen Hintergrund).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe mal die Texturen einfach alle quadratisch ausgeschnitten und jetzt kommt der Fehler erst ab der 5. hinzugefügten Grastextur *g

Einige Leute in englischen Foren sagen, daß es ein Fehler in Unity ist, der beim Erzeugen dieses (Detail-)Texturatlases entsteht (überlappende Grasdetailtexturen im Atlas) und das 1-3 transparente Pixel am unteren Texturrand helfen (habe ich aber noch nicht probiert). Alle deine Texturen haben ja unten keinen Rand.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja das habe ich eben auch bereits versucht, ich habe sogar eine neue .PSD Datei erstellt, die textur um das Gras herum ausgeschnitten und so neu eingefügt. Ich habe die Ränder mehrfach überprüft und dabei sowohl die Textur mehrfach am Rand radiert wie auch den Alphakanal Schwarz umramt. Leider ohne erfolg :mellow:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie gesagt, ich denke es liegt am zu dichten "Übereinanderstapeln" der Grastexturen in dem von Unity erzeugten internen Texturaltas.

 

So was bei mir geholfen hat:

Ich habe bei jeder Textur unten einen 4-pixel breiten Rand "wegradiert" (=4 transparente Pixel unter jedem Grashalm - ggf. genügen auch 1-2 Pixel). Dann alle Detailtexturen im Terrain gelöscht und neu eingefügt ("refresh" in den Terrainsettings hat nicht genügt - ich denke Unity muss erst den Texturatlas neu aufbauen).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...