Search Unity

  1. Unity 2020.1 has been released.
    Dismiss Notice
  2. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

[Released] MegaSplat, a 256 texture splat mapping system..

Discussion in 'Assets and Asset Store' started by jbooth, Nov 16, 2016.

  1. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    I suggest going through the tutorials, they will walk you through the basic process..
     
  2. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929

    The tutorials are worthless for what I'm seeing. Tiling I figured out. The brush doesn't work as expected and is extremely laggy.

    For example this pic I'm painting with the green texture, you can sort of see it's highlighted. The brush is so slow it's only reading where it's at like once a second or less. I painted here with just two strokes. Also not sure why it's painting two textures when I just have a single selected?

    upload_2019-9-13_1-34-9.png


    Node canvas is just doing nothing. It fills with one of the textures when first activated but then I can't get it to output anything else after. Mesh is selected, it compiles, just not change in output.
     
  3. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929
    This is a new error with node canvas. Can't find colors in the stream in NodeMegaSplatOutput.cs line 385.

    The vertex stream component I can't find anything on how it should correctly be added for use in the node canvas. The painter has a button to do it there. If I add it there, I get the above error. If I don't, then the mesh doesn't show under prepare in node canvas.

    The mesh does have a colors array. I ran it through your conversion (It's procedural I had to copy out your process method to my own code given where it is, using won't work).
     
  4. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929
    Ok so finally got it working by making sure to create the vertex stream component with the painter AND paint something with the painter.
     
  5. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929
    So I think I remember this was a bit tricky with MS. Which is smooth texture blending. How much work would it be to make that work well without the add noise approach? We have a very stylized look and I don't want to be limited to add more noise as a solution. Modifying the shader is fine as long as it's within reason.

    This is how height blending looks on our delaunay triangulation.
    upload_2019-9-13_2-49-2.png


    Looks like it's using a centroid for height?

    Using normal angle doesn't seem to blend at all, which would be a hard blocker.

    upload_2019-9-13_2-50-44.png
     
  6. Bostav

    Bostav

    Joined:
    Jul 4, 2016
    Posts:
    5
    Hi @jbooth
    I have some questions according MegaSplat. We're using Unity 2018.4 LTS and the standard render pipeline, no LWRP, HDRP or SRP. We need a workflow with meshes instead of terrain. MegaSplat seems to fit perfectly but I don't know if it is compatible with current consoles (PS4, NX, XB1).
    Can you give me some information about this?
     
  7. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929
    So being we already use Unity terrains as part of our workflow for meshes, would it work to simply use node canvas on the terrain then just create a copy of the material for the mesh and set the type to mesh? Our triangulation results in geometry that doesn't match exactly, but it doesn't really need to the art style being what it is.
     
  8. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929

    Even better would be if we could use microsplat on terrain then transfer that to the mesh.
     
  9. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    I don’t really have a way to test these platforms but I know people have used it on them before and have done a few fixes for PlayStation in the past.
     
  10. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    If your mesh conforms to landscape topology (essentially a height field) then this works fine. I do have an unreleased mesh module- but basically you’d need to rewrite the MicroSplatTerrain component to be for meshes, which is not to hard.
     
  11. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929
    What does the low level api for manipulating splats look like? Ie could I use that to solve things like blending exactly how we want where we want?
     
  12. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    Depends; the actual blending between control points is handled in the shader. However, each control point in a two layer shader is 2 texture indexes into the array and a blend weight between them, so you can do really wide/soft blends between the layers.. the data structure is described in the docs.
     
  13. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,929
    Ya I was digging through the shader and noticed how it handles blending.

    Really what we need is what splat maps do. Be able to set the power of a texture at any point (as defined by the resolution of a splat/control texture). Your approach to blending and clusters simply doesn't fit what we need. But given the options out there, yours is the only shader I would even consider modifying (vs rolling our own).

    Is there a somewhat reasonable approach to just bypass your blending and assign what to render via a splat approach? Not expecting the details of how it would be done, more like if you needed it would you modify MS or create a custom shader?
     
  14. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    Well if you want traditional splat maps this is what MicroSplat does.
     
    dyox likes this.
  15. Saiga308

    Saiga308

    Joined:
    Jun 14, 2015
    Posts:
    40
    I can't seem to get emissive maps to work on the cracked lava terrain to the left and right of the lava. I have Emissive/Metallic array enabled. I've assigned the emissive map to the terrain texture (all black, white areas for emissive), I've assigned the emissive/metal array and I can see the emissive texture in the array. But alas, no glow. In addition, how do you adjust the emissive power value?
    upload_2019-9-13_18-42-30.png
    upload_2019-9-13_18-43-59.png
    upload_2019-9-13_18-44-38.png
     
  16. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    Emissive maps are full RGB, btw. If this is MegaSplat there currently isn’t an emissive power value; I just added that to MicroSplat though.
     
  17. Emiles

    Emiles

    Joined:
    Jan 22, 2014
    Posts:
    37
    Hi, Wondering if anyone knows if megasplat and mapmagic are known to work alone or together on 2018.4.9.f1 ?

    Not sure what i'm doing wrong but the splat_control texture is constantly in conflict with unity editor. Requesting that changes are applied to it. When I do that, its converted from ARGB to RGB and I can't find any setting that would stop unity from doing that.

    Painting with Terrain painter or using mapmagics custom texture shader both have this issue.

    I'm hoping there's a check box I've missed.
     
  18. Ali-Nagori

    Ali-Nagori

    Joined:
    Apr 9, 2010
    Posts:
    138
    hi Jason , i have a question regarding normal+Smotth+AO

    RGBA

    S = B
    AO = A

    to get the normal what is the calculation i need to with (R and G)
    Amplify now has Nodes for Texture Array and i'm trying to make a shader with it.
     
  19. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    Sometimes I pack them in SNyAONx format as well, so basically move the normals Red channel to the alpha and pack smoothness into R and AO into B. Under most compression formats this gives the highest quality to the normal, since texture compression formats are designed around color and green is the color we see best, and the alpha channel is packed separately from the color channels.

    Anyway, once you have your normal channels, you need to remap them to a -1 to 1 range, then compute the Z component of the normal from them. I think Amplify has an UnpackNormal node which will do this (and expects input as NormalY in G and NormalX in A, so you can just give it the raw float4)
     
    Ali-Nagori likes this.
  20. Emiles

    Emiles

    Joined:
    Jan 22, 2014
    Posts:
    37
    So,
    I discovered that MapMagic's Custom shader out of the box has partial implementation that basically doesn't work.
    It sends the blend to zero and ultimate provides invalid colour data.

    I can now drive megasplat with mapmagic.

    I managed to implement a small fix by updating CustomShaderOutput.cs in MapMagics source code.

    [Edit] Support biome.

    Code (CSharp):
    1.  
    2. public static void ProcessMegaSplat(CoordRect rect, Chunk.Results results, GeneratorsAsset gens, Chunk.Size terrainSize, Func<float,bool> stop = null)
    3.   {
    4.    #if __MEGASPLAT__
    5.    if (stop!=null && stop(0)) return;
    6.    //creating color arrays
    7.    Color[][] colors = new Color[2][];
    8.    colors[0] = new Color[MapMagic.instance.resolution * MapMagic.instance.resolution];
    9.    colors[1] = new Color[MapMagic.instance.resolution * MapMagic.instance.resolution];
    10.    
    11.    //creating all and special layers/biomes lists
    12.    List<Layer> allLayers = new List<Layer>(); //all layers count = gen num * layers num in each gen (excluding empty biomes, matrices, etc)
    13.    List<Matrix> allMatrices = new List<Matrix>();
    14.    List<Matrix> allBiomeMasks = new List<Matrix>();
    15.    List<Matrix> specialWetnessMatrices = new List<Matrix>(); //special count = number of generators (excluding empty biomes only)
    16.    //List<Matrix> specialPuddlesMatrices = new List<Matrix>();
    17.    //List<Matrix> specialDampeningMatrices = new List<Matrix>();
    18.    //List<Matrix> specialBiomeMasks = new List<Matrix>();
    19.    //filling all layers/biomes
    20.    foreach (CustomShaderOutput gen in gens.GeneratorsOfType<CustomShaderOutput>(onlyEnabled: true, checkBiomes: true))
    21.    {
    22.     //loading biome matrix
    23.     Matrix biomeMask = null;
    24.     if (gen.biome != null)
    25.     {
    26.      object biomeMaskObj = gen.biome.mask.GetObject(results);
    27.      if (biomeMaskObj == null) continue; //adding nothing if biome has no mask
    28.      biomeMask = (Matrix)biomeMaskObj;
    29.      if (biomeMask == null) continue;
    30.      if (biomeMask.IsEmpty()) continue; //optimizing empty biomes
    31.     }
    32.     for (int i = 0; i < gen.baseLayers.Length; i++)
    33.     {
    34.      //reading output directly
    35.      Output output = gen.baseLayers[i].output;
    36.      if (stop!=null && stop(0)) return; //checking stop before reading output
    37.      if (!results.results.ContainsKey(output)) continue;
    38.      Matrix matrix = (Matrix)results.results[output];
    39.      if (matrix.IsEmpty()) continue;
    40.      if (textureList.clusters == null)
    41.      {
    42.       Debug.Log("CSO MegaSplat clusters are not assigned");
    43.       continue;
    44.      }
    45.      if (i >= textureList.clusters.Length)
    46.      {
    47.       Debug.LogError("Cluster out of range");
    48.       continue;
    49.      }
    50.      //adding to lists
    51.      allLayers.Add(gen.baseLayers[i]);
    52.      allMatrices.Add(matrix);
    53.      allBiomeMasks.Add(gen.biome == null ? null : biomeMask);
    54.     }
    55.     //adding special
    56.     /*
    57.     object wetnessObj = gen.wetnessIn.GetObject(results);
    58.     specialWetnessMatrices.Add( wetnessObj!=null? (Matrix)wetnessObj : null );
    59.     object puddlesObj = gen.puddlesIn.GetObject(results);
    60.     specialPuddlesMatrices.Add( puddlesObj!=null? (Matrix)puddlesObj : null );
    61.     object dampeingObj = gen.displaceDampenIn.GetObject(results);
    62.     specialDampeningMatrices.Add( dampeingObj!=null? (Matrix)dampeingObj : null );
    63.     specialBiomeMasks.Add(gen.biome == null ? null : biomeMask);
    64.     */
    65.    }
    66.    //if no texture list found in any of generators - returning
    67.    if (textureList == null || allLayers.Count==0) return;
    68.    //processing
    69.    int allLayersCount = allLayers.Count;
    70.    int specialCount = specialWetnessMatrices.Count;
    71.    for (int x = 0; x<rect.size.x; x++)
    72.     for (int z = 0; z<rect.size.z; z++)
    73.     {
    74.      int pos = rect.GetPos(x + rect.offset.x, z + rect.offset.z);
    75.      // doesn't use height, normal, but I'm not sure how to get that here..
    76.      Vector3 worldPos = new Vector3(
    77.       1f * (x+rect.offset.x) / MapMagic.instance.resolution * rect.size.x,
    78.       0,
    79.       1f * (z+rect.offset.z) / MapMagic.instance.resolution * rect.size.z);
    80.      float heightRatio = results.heights!=null? results.heights.array[pos] : 0.5f; //0 is the bottom point, 1 is the maximum top
    81.      Vector3 normal = new Vector3(0,1,0);
    82.      // find highest two layers
    83.      int botIdx = 0;
    84.      int topIdx = 0;
    85.                     float blend = 0;
    86.                     int lastIndex = 0;
    87.                     float lastVal = 0;
    88.                     float biomeModifier = 1;
    89.                     for (int i = 0; i < allLayersCount; i++)
    90.                     {
    91.                         biomeModifier = allBiomeMasks[i] != null ? allBiomeMasks[i].array[pos] : 1f;
    92.                         if (i == 0)
    93.                         {
    94.                             lastIndex = topIdx = allLayers[i].index;
    95.                             botIdx = allLayers[i].index;
    96.                             lastVal =  1 * biomeModifier;
    97.                         }
    98.                         else
    99.                         {
    100.                             float val = (1 + allMatrices[i].array[pos] ) * biomeModifier;// Current layer input value.
    101.                             //val *= biomeModifier;
    102.                             if (val > lastVal)
    103.                             {
    104.                                 botIdx = lastIndex;
    105.                                 topIdx = allLayers[i].index;
    106.                                 lastIndex = topIdx;
    107.                                 lastVal = val;
    108.                             }
    109.                         }
    110.                     }
    111.                     topIdx = textureList.clusters[topIdx].GetIndex(worldPos * clusterNoiseScale, normal, heightRatio);
    112.                     botIdx = textureList.clusters[botIdx].GetIndex(worldPos * clusterNoiseScale, normal, heightRatio);
    113.                     blend = 1 - lastVal ;
    114.                     if (smoothFallof) blend = (Mathf.Sqrt(blend) * (1 - blend)) + blend * blend * blend;
    115.                     colors[0][pos] = new Color(topIdx / 255f, botIdx / 255f, blend, 1.0f);
    116.                 }
    117.    
    118.    //pushing to apply
    119.    if (stop!=null && stop(0))
    120.     return;
    121.    results.apply.CheckAdd(typeof(CustomShaderOutput), colors, replace: true);
    122.    #endif
    123.   }
    124.  
     
    Last edited: Sep 16, 2019
  21. Saiga308

    Saiga308

    Joined:
    Jun 14, 2015
    Posts:
    40
    Thank you. I ended up getting it to work. I currently only need it for lava cracks in my game, so I just multiplied the Emission * _LavaColorHighlight which works great for my needs. I'll probably redo it later though and set the emission to 1 by default, and then have a Per Texture Properties override for the emission value, 0 to 10 would be sufficient. A emission color tint would be good to have as well.



    upload_2019-9-15_14-53-45.png
     

    Attached Files:

  22. unity_QX6KJ3XmfDXG1A

    unity_QX6KJ3XmfDXG1A

    Joined:
    Aug 30, 2018
    Posts:
    7
    After update MicroSplat asset I am getting this errors, and couldn't load scripts in
    my Project (Unity 2018.2.5f1 (64-bit)).

    Any sugestion?
     

    Attached Files:

  23. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    Doesn't make much sense, terrainData exists as a structure on terrain all the way up to the current betas. Maybe the error is wrong? Do you have another class declaring itself as Terrain somewhere in your project?
     
  24. unity_QX6KJ3XmfDXG1A

    unity_QX6KJ3XmfDXG1A

    Joined:
    Aug 30, 2018
    Posts:
    7
    Actually I do have Terrain class, when try to compile it I am getting this:

    This is little strange to me because I didn't have any problem until updating
    assets.
     

    Attached Files:

  25. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    If you are going to have 2 classes called Terrain, then they need to be namespaced from each other, and any code using both of them would have to be explicit about which one is included. Since most Unity classes are in UnityEngine, and almost all your code is going to include UnityEngine, it's likely wise not to name things the same as Unity's classes.
     
  26. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    3,477
    Hi,
    is megasplat supported for 2019?

    I'm following your documentation but cannot get the vertex painter tool to operate. I opened a clean project for testing and am working in the mesh.unity example scene.

    When selecting texture cluster and having tool "active" set true, it does not disable unity gizmo. So no painting.

    Also, if you toggle vertex data, it turns selected mesh unlit black.

    No errors or warnings. Fill mode does work.

    edit : I think I answered my own question. Everything working as expected in LTS. If there is some bug requiring special attention for 2019, migiht want to note that in asset store page as it can be misleading.
     
    Last edited: Sep 18, 2019
  27. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    There are 3 major branches of 2019 with one branch being beta, and dozens of versions of 2019 in each branch, so this isn’t really specific enough for me to investigate.
     
    dyox likes this.
  28. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    3,477
    Yeah no worries I using LTS anyhow. I just mention cause on product page it simply says 5.6+ compatibility. I realize also that 2019 latest version just came out like, a week ago.

    Version I was using is Unity 2019.2.5f1 (64-bit).

    Probably some major issues beyond that because the lighting and fog was broken in the example scene as well.
     
  29. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,513
    Hi there, I am looking to make trails in snow, from skiers and was looking at your product (Tessellation, in general). Is MircoSplat ideal for real time, multiple player, mesh deformation?

    Is there such a thing??!
    Thanks
     
  30. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    there’s not a system for this in MegaSplat; I wrote something like this for MicroSplat but haven’t finished and released it yet
     
    renman3000 likes this.
  31. renman3000

    renman3000

    Joined:
    Nov 7, 2011
    Posts:
    6,513
    Thank you.
    Any timeline?
     
  32. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    No, have been working on other things but will likely get back to it at some point
     
    renman3000 likes this.
  33. Caliga

    Caliga

    Joined:
    Jan 14, 2018
    Posts:
    3
    Hi there,

    I purchased this asset today with the intention of using it with the game VRChat, unfortunately all terrain appears white within the game - possibly due to VRChat blocking third party scripts (it however works in the unity game preview). I was under the impression that everything was compiled down to shader code so no scripts would be needed for it all to work.

    I don't make games, but do enjoy making maps for this particular game, so don't have much use for the asset otherwise! So really hope I haven't wasted my money :( Do you have any ideas what might be the cause if not due to scripts?

    Thanks!
     
  34. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    For terrains there's a small amount of script necessary to set the data on the terrain, but for meshes it doesn't require any scripting.
     
  35. blackbookuser

    blackbookuser

    Joined:
    Aug 29, 2017
    Posts:
    4
    Hello, we are happily using megasplat, but we have some files I wonder what is recomended practice with git.

    Some asset files keep being rebuildt on every workstation on the team. Is there a setting/reason for this? The team keep committing them and creating unnessesary commits.

    Two of the files are binary, the other has had a line change where tit seems to have been given a new hash.

    upload_2019-10-2_10-47-3.png

    Also, is there a discord? I saw you recomended discord for tech support on a review for megasplat about 6 months ago, but cant find a link or server name anywhere.

    Thanks in advance!
     
  36. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    if your users are on different versions of Unity or different platforms (target platforms, windows or OS X) then it will recompress these arrays on load. For the most part though you can ignore these changes unless you’ve actually changed them on purpose.

    https://discord.gg/HVuZ3sN
     
  37. Dobalina

    Dobalina

    Joined:
    Sep 6, 2013
    Posts:
    65
    Hi @jbooth I have a couple of questions.

    I'm wondering how well MegaSplat performs with PBR/Triplanar attributes. To give you a bit of context, I created a PBR/Triplanar shader in AmplifyShader and plugged that into my terrain. Visually it looks nice, but really taxes my GPU, spiking Gfx.WaitForPresent in my profiler. It go from 90fps using the basic built in shader to 45fps with the Amplifyshader PBR material. Does MegaSplat have this big of a GPU hit as well?

    My second question. Do you foresee any issues with MegaSplat applied to lots of individual small terrain tiles in a single scene? I don't have a single terrain, massive in scale like most games. Instead I have lots of small terrain tiles that get re-positioned in front of the player as they walk. Would this be a headache to setup?
     
  38. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    MegaSplat and MicroSplat both have a fixed cost regardless of how many textures your terrain uses, where I'm betting your custom shader samples all the terrain textures no matter if they exist on that pixel or not. For speed, MicroSplat is going to be faster on your use case- it samples 4 texture sets (packed in 2 arrays, so 8 samples in total) per pixel even when you're using 32 textures on the terrain (though has options to sample less). For triplanar this is tripled, so assuming fastest packing and best blend quality (4 textures sets per pixel) it's 24 samples per pixel for triplanar. A traditional version of that shader with 8 textures in use would be 48 texture samples, assuming you pack the full PBR spec into just 2 textures.

    MicroSplat + triplanar is going to cost you only $5 too. And with either there shouldn't be much trouble with lots of smaller terrains.
     
  39. Dobalina

    Dobalina

    Joined:
    Sep 6, 2013
    Posts:
    65
    Thanks for the quick reply @jbooth. I picked up Microsplat along with a few of the additional packs and playing with it now.

    I noticed how much faster my scene is when I use non-triplanar vs triplanar for obvious reasons. Though seeing this made me wonder about something.... In my case, I only need 4 textures on my terrain, one of which being a rocky cliff side. In the end, I really only need the triplanar option being applied to this cliff side texture. Which makes me wonder, would there be any performance improvements if the triplanar option could be applied to just a couple of texture sampels at the users discretion?
     
  40. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    you could roll a custom shader to do that, but it’s not as easily done in a more general architecture and the optimizations I use because you’d have to have a fixed code path where only texture N gets triplanar.
     
  41. Bzuco

    Bzuco

    Joined:
    Sep 6, 2015
    Posts:
    55
    Same issue here, but after changing namespace from "JBooth.MegaSplat" to "AmplifyShaderEditor" in C# scripts those nodes apear in ASE editor.
    There are also some errors in included "ASE_SingleLayer.shader"...something like "ArgumentException: Requested value 'All' was not found." ...but after manually recreating shader nodes according youtube video it is working again with latest Amplify Shader Editor :)
     
  42. miklelottesen

    miklelottesen

    Joined:
    Mar 7, 2015
    Posts:
    19
    Hi @jbooth

    Just a quick question: a while ago there was talk about extending the runtime proc. texturing module to allow for more than just a single biome mask texture map. Has this been/is this going to be implemented, or has the idea been scrapped?
     
  43. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    Haven’t done it yet..
     
  44. corjn

    corjn

    Joined:
    Feb 6, 2014
    Posts:
    144
    Hey @jbooth

    I just bought "Stochastic Height Sampling Node for Amplify Shader Editor", as I can't find any dedicated forum, I'm posting here :

    I'm currently working on a system to match everything I model with Blender to Unity, with the help of amplify shader. I can see you have ported your node to Amplify, shader graph, but also UE4.
    Is Blender considered ? I think it could work great on the Blender market :)
     
  45. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    Didn't even know there was a market for blender plugins. Likely wouldn't be hard to port..
     
    corjn likes this.
  46. corjn

    corjn

    Joined:
    Feb 6, 2014
    Posts:
    144
    Yes, Blender is becoming the Unity of 3D modeling right now I think.
    On the market you have an "anti-tile" node plugin https://blendermarket.com/products/anti-tile
    But it's not as good as the Stochastic method.

    Yes, even me, who does not know how to code shaders without graphs, I can see how it could be possible. You can basically write your shader using the blender node input and output api : https://docs.blender.org/manual/fr/2.79/render/cycles/nodes/osl.html
     
  47. Tinder-Red

    Tinder-Red

    Joined:
    Dec 2, 2017
    Posts:
    17
    Good evening.
    Somebody know why i can't check the distance resampling in the MegaSplat Shader Compiler.
    I use the v1.73 of MegaSplat.
    Thx.
     
    Last edited: Oct 29, 2019
  48. ChinChiaYeh

    ChinChiaYeh

    Joined:
    Sep 14, 2016
    Posts:
    23
    Hi there,
    Rain Drop is not work fine with last version of MegaSplat.
    I think maybe something wrong with UV control...
     
  49. nlaha

    nlaha

    Joined:
    Mar 14, 2015
    Posts:
    2
    This might be off topic, but I can't seem to get the Stochastic Height Sampling Node working with 2019.2.9f1, is there any way to fix this? The assembly updater seems to be working, but I am still getting this error:
    Assets\StochasticNode\Editor\StochasticSamplingNode.cs(30,66): error CS0535: 'StochasticSamplingNode' does not implement interface member 'IGeneratesBodyCode.GenerateNodeCode(ShaderStringBuilder, GraphContext, GenerationMode)'
     
  50. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,342
    maybe uninstall the node, shut down Unity and restart it, then reinstall it again.
     
unityunity