Jump to content
Unity Insider Forum
  • Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011

MustafGames

Members
  • Content count

    313
  • Joined

  • Last visited

  • Days Won

    2

MustafGames last won the day on December 23 2016

MustafGames had the most liked content!

Community Reputation

7 Neutral

About MustafGames

  • Rank
    Advanced Member

Recent Profile Visitors

792 profile views
  1. LOD Group

    Grüße, wenn ich jetzt ein leeres Objekt erstelle und diesem, den LOD Group Script gebe, dann als Childs einige Objekte welche als LOD 2 einen Sprite haben und als LOD 1 den MeshRenderer, jetzt bewege ich mich mit einen Kamera Control Script weg von diesen Objekten, sie sollten eigentlich einzeln ab bestimmten Entfernungen sich ändern oder muss ich jeden Baum den Lod Group Script geben? Mfg Mustaf
  2. Skybox Shader mit Cubemap + Procedual

    Edit: https://unity3d.com/de/learn/tutorials/topics/graphics/realtime-global-illumination-daynight-cycle Hier lernt man eine Simple Lösung, den Mond müsste man dann z.b. als Sprite 1000 units vom Spieler entfernt mit einem "LookAtCamera" Script ausrüsten und dann passend zur Sonne bewegen.
  3. Grüße, habe hier noch einen Shader gefunden in meinen Projekten, der nicht mehr ganz aktuell ist und wenn ich die _BlendAlpha Variable per Script ändern möchte in der Update Methode (für Tag/Nacht Zyklus), hängt Unity kurz (laggt). Darüber ändere ich die Variable: RenderSettings.skybox.SetFloat("_BlendAlpha", Mathf.Lerp(0, 0.5f, currentTimeOfDay)); Der Shader:
  4. Mass Place Trees/Grass/Rocks etc.

    Edit: Habe alles jetzt mal getestet, bin bei 300 Grasobjekten in einem kleinen Bereich, dazu paar Bäume und Felsen (133-150 FPS).
  5. Mass Place Trees/Grass/Rocks etc.

    Das mit der Texture konnte ich lösen indem ich sie einfach wiederholt habe (ergibt solche Längsstreifen), klappt, die Verzehrung überprüfe ich jetzt noch einmal an den Werten. Die Performance ist um einiges angestiegen durch den neuen Shader Jetzt ist das letzte "normale" Material, das vom Terrain und die Skybox welche 4 Texturen nutzt. Edit: Vorher war Bending auf 0.5 jetzt hab ich es auf 0.1 damit es genauso aussieht. Beim Tool sollte man erst die großen Objekte platzieren, dann kann man keine kleineren mehr verdecken, wenn man wenige Objekte in einem bestimmten Bereich platziert, ist die Wahrscheinlichkeit das sich welche ineinander platzieren sehr gering. PS (Mein EditorTool zum platzieren von mehreren Dingen in einem bestimmten Bereich):
  6. Mass Place Trees/Grass/Rocks etc.

    Das mit den Chunks hätte ich mir so auch gedacht. Nochmal zum Shader selbst, einmal wäre die Grasbewegung jetzt anders als vorher, leider zu meinen Nachteil (das Gras besteht aus kleinen Würfeln), das verzerrt sich jetzt, vorher hat es sich nur grob bewegt, das hat aber ausgereicht (für meine Zwecke). Die Texture muss ich irgendwie hinbekommen, den die UV's nutzen eine 256x1 Texture.
  7. Mass Place Trees/Grass/Rocks etc.

    Ja habs jetzt erst verstanden wie das funktioniert, so ähnlich wie ein SpritePackage. Kann man so etwas auch auf ein Terrain anwenden und wäre das sinnvoll? Kann man die Texture Größe beliebig ändern, den meine ist 256x1 (sind nur Farben, die den UV zugeordnet werden, per externen Programm)?
  8. Mass Place Trees/Grass/Rocks etc.

    Was bedeutet ansteuern, ist das nötig bei nur 1 Texture die sich eigentlich nie ändern wird?
  9. Mass Place Trees/Grass/Rocks etc.

    Cool, bin gerade soweit mit dem EditorTool (wo man Gras, Bäume...) platzieren kann in einem Bereich (Radius) und die Anzahl bestimmen kann. Wenn ich etwas weiter bin schreib ich den mal hier rein. Problem ist, es kommt ab und zu vor das Objekte ineinander platziert werden und größere Objekte (z.b. Felsen welche größer als Gras sind) verdecken das Gras dann. Muss also noch Prioritäten setzen das an der Stelle wo man einen Felsen platziert, das Gras verschwindet und auch keine Objekte ineinander platziert werden, alles anderes klappt super. Zufällige Rotationen sind auch dabei. Zweites aber nebensächliches Problem ist das der Raycast Oben und Unten vertauscht.
  10. Mass Place Trees/Grass/Rocks etc.

    Danke dir
  11. Mass Place Trees/Grass/Rocks etc.

    Danke für die schnellen Antworten, im Moment bastel ich ein EditorScript mit dem ich dann auf ein Terrain klicke und Bäume/Felsen/Gras dann platziert wird, im Verhältnis welches ich einstelle. Diese Objekte sind alle static (Occlusion Culling etc.), sie bekommen alle ein LOD, damit ferne Objekte nicht voll geladen werden, der Spieler dürfte dann nicht so viel Gras sehen das die Perfomance den Bach runter geht. Ich bräuchte eigentlich nur das Direkte Instanzieren in meinem Shader oben, hauptsächlich müsste die MainTex und Color (Color habe ich bereits) gemacht werden. Das mit den fixed4 hatte ich gelesen, konnte mir nur dabei nicht erklären wie man das für andere Variablen machen soll.
  12. Mass Place Trees/Grass/Rocks etc.

    Es wäre einmal, die Interaktion, da man Gras abbauen können soll. Für das Gras habe ich oben diesen schwankenden Shader, den der sieht wesentlich besser aus als wenn das Gras nur so rumsteht (Terrain fügt keinen Wind hinzu wenn man das Gras nicht als Quad haben möchte). PS: Was bedeutet das fixed4, wenn ich jetzt die Color-Variable und die MainTex (was eher wichtig ist) instanzieren möchte, kann ich für beide einfach fixed4 setzen?
  13. Mass Place Trees/Grass/Rocks etc.

    Kannst du mir da ein Beispiel zeigen mit dem Instancing Indirekt? // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' Shader "Custom/Grass/GrassBending" { Properties{ _Color("Main Color", Color) = (1,1,1,1) _MainTex("Base (RGB) Trans (A)", 2D) = "white" {} _Cutoff("Alpha cutoff", Range(0,1)) = 0.5 _ShakeDisplacement("Displacement", Range(0, 1.0)) = 1.0 _ShakeTime("Shake Time", Range(0, 1.0)) = 1.0 _ShakeWindspeed("Shake Windspeed", Range(0, 1.0)) = 1.0 _ShakeBending("Shake Bending", Range(0, 1.0)) = 1.0 } SubShader{ Tags{ "Queue" = "AlphaTest" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout" } LOD 200 Cull Off CGPROGRAM #pragma target 3.0 #pragma surface surf Lambert alphatest:_Cutoff vertex:vert addshadow sampler2D _MainTex; fixed4 _Color; float _ShakeDisplacement; float _ShakeTime; float _ShakeWindspeed; float _ShakeBending; float dist; float _GrassAlpha; struct Input { float2 uv_MainTex; float3 worldPos; }; void FastSinCos(float4 val, out float4 s, out float4 c) { val = val * 6.408849 - 3.1415927; float4 r5 = val * val; float4 r6 = r5 * r5; float4 r7 = r6 * r5; float4 r8 = r6 * r5; float4 r1 = r5 * val; float4 r2 = r1 * r5; float4 r3 = r2 * r5; float4 sin7 = { 1, -0.16161616, 0.0083333, -0.00019841 }; float4 cos8 = { -0.5, 0.041666666, -0.0013888889, 0.000024801587 }; s = val + r1 * sin7.y + r2 * sin7.z + r3 * sin7.w; c = 1 + r5 * cos8.x + r6 * cos8.y + r7 * cos8.z + r8 * cos8.w; } void vert(inout appdata_full v) { float factor = (1 - _ShakeDisplacement - v.color.r) * 0.5; const float _WindSpeed = (_ShakeWindspeed + v.color.g); const float _WaveScale = _ShakeDisplacement; const float4 _waveXSize = float4(0.048, 0.06, 0.24, 0.096); const float4 _waveZSize = float4 (0.024, .08, 0.08, 0.2); const float4 waveSpeed = float4 (1.2, 2, 1.6, 4.8); float4 _waveXmove = float4(0.024, 0.04, -0.12, 0.096); float4 _waveZmove = float4 (0.006, .02, -0.02, 0.1); float4 waves; waves = v.vertex.x * _waveXSize; waves += v.vertex.z * _waveZSize; waves += _Time.x * (1 - _ShakeTime * 2 - v.color.b) * waveSpeed *_WindSpeed; float4 s, c; waves = frac(waves); FastSinCos(waves, s,c); float waveAmount = v.texcoord.y * (v.color.a + _ShakeBending); s *= waveAmount; s *= normalize(waveSpeed); s = s * s; float fade = dot(s, 1.3); s = s * s; float3 waveMove = float3 (0,0,0); waveMove.x = dot(s, _waveXmove); waveMove.z = dot(s, _waveZmove); v.vertex.xz -= mul((float3x3)unity_WorldToObject, waveMove).xz; } void surf(Input IN, inout SurfaceOutput o) { fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color * _Color; o.Albedo = c.rgb; float dist = distance(_WorldSpaceCameraPos, IN.worldPos); dist = clamp(dist / 300, 0.4, 1.0); o.Alpha = c.a - dist - _GrassAlpha; } ENDCG } Fallback "Transparent/Cutout/VertexLit" } Mit diesem Shader, kann ich auch die Enable GPU Instancing Checkbox ausfüllen, es ändert sich auch die Performance dadurch obwohl ich im Shader nichts darüber finden kann?
  14. Mass Place Trees/Grass/Rocks etc.

    Unter meinen Shadern ist GPU Instancing enabled. https://docs.unity3d.com/Manual/GPUInstancing.html Wie kann ich das hier verstehen? "Adding per-instance data" Bräuchte ich so etwas, wenn ich für mein Spiel nur 1 Texture und 5 Materialien mit GPU Instancing brauche? Die 5 Materialien kommen davon: - Normal - Leuchtend - Metallisch - Schwenkend - Transparent (Glas)
  15. Mass Place Trees/Grass/Rocks etc.

    Das Tool sieht wirklich gut aus, hat aber dann mehr Umfang als was ich bräuchte. Ich würde das Gras und die Bäume dann auch mit LOD's platzieren, so das die Performance nicht ganz so sehr leidet.
×