Jump to content
Unity Insider Forum

Zer0Cool

Members
  • Content count

    1,865
  • Joined

  • Last visited

  • Days Won

    132

Zer0Cool last won the day on June 14

Zer0Cool had the most liked content!

Community Reputation

389 Excellent

7 Followers

About Zer0Cool

  • Rank
    Advanced Member
  • Birthday 01/04/1974

Contact Methods

  • Website URL
    http://https://www.facebook.com/huginmuninstudios
  • Skype
    zer0f0rce

Profile Information

  • Gender
    Male
  • Location
    Germany

Recent Profile Visitors

5,277 profile views

Single Status Update

See all updates by Zer0Cool

  1. Testlauf mit einem Grasshader der nun endlich ohne Windzone und ohne Unityterrain funktioniert. Ich habe diesen Shader aus Teilen des Unity "Tree Creator Leaves" Shader und dem "Grass Billboard" Shader zusammengesetzt. Normal sollte er daher auch ein Translucent Shader sein, aber schwer zu sagen, ob ein wahrnehmbarer Effekt erreicht wird. 
    Ich möchte diesen Shader nun weiter umarbeiten, damit er instanziiert werden kann und ich ihn dann massenhaft auf einem Mesh einsetzen kann.
    Das Mühsame dabei war, daß nirgend irgendwelche Informationen zu den Parameters dieser Shader zu bekommen sind. Zudem musste ich den Shader umschreiben, damit er ohne Vertexfarben klarkommt.

    Video: https://streamable.com/ulptf

    jEtyJ8v.jpg

    1. Tiwaz

      Tiwaz

      Ich hab letztens ein Tutorial zu einem Grasshader mit einem Geometry Shader und einer Point Cloud gesehen. Fand ich extrem nice und benutze ich auch zur Zeit. Habe mehrere tausend Grasbüschel rumgammeln, die auch unabhängig von Windzone und Unityterrain gerendert und auch animiert werden können.

       Wie generierst du eigentlich die Positionen der Grasbüschel?

    2. Zer0Cool

      Zer0Cool

      Ist denke das ist auch eine sehr gute Lösung. vor allem für Billboardgras.Unity hat es in ihrem Adam-Demo mit ihrem Gras auch so gemacht (habs mir letztens mal im Detail angeschaut, leider fehlen meiner Meinung nach sämtliche Hilfstools fürs Erstellen des Terrains, so daß sie uns nur das fertige Terrain und die Shader gegeben haben)...
      Ich möchte aber verschiedene Grasmeshes verwenden, diese bestehen zum Teil aus mehreren Faces und Texturen daher haben ich vor diesen Shader nun in einen instanzed Shader umzuwandeln und das Erzeugen des Meshes in die GPU zu verlagern. Ich habe vor die Positionen des Unityterrains einfach zu übernehmen, später könnte man aber das Gras auch einfach über einen "Meshpainter" auf unterschiedliche Oberflächen auftragen. Für die Positionen muss man die Detail Prototyp-Positionen aus dem Terrain auslesen. Dies hat auch gleich den Vorteil, daß ich die Instanzfarbe und die Instanzgröße und die Instanzworldposition an den Shader (wird in meinem Shader anstellen von Vertexfarben verwendet) übertragen kann.
       

    3. Zer0Cool

      Zer0Cool

      Hab mir gerade mal das 1. Video angeschaut, war interessant wie er die Matrix für DrawMeshInstanced erstellt und daß er auch einen Mesh für sein Gras verwenden möchte, also keine Billboard, sondern 2 Typen mit Inner- oder Outersections. Die Variante mit den Innersections kannte ich schon (allerdings nur mit 2 Quads) die Outersections ist neu für mich, man lernt nie aus. Ich denke dies kann man auch gut für Bäume in der Ferne verwenden. Die Grasmeshes die ich aus einem Asset habe und verwenden möchte benutzen eher so eine Art "verschobene Outersections" ;)

      Beim 2.  Video bekommt man auch gleich einen Pointcloud-Renderer nicht schlecht... Um Minute 20 ist es aber echt böses Shaderhacking ^^
      Nach dem 2. Video: Das ein Geometry-Shader nicht mit einem Surfaceshader zusammen arbeiten soll, da bin ich noch nicht überzeugt von .. Muss mir noch das 3. Video anschauen.

×