Search Unity

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

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

  1. wkidwell

    wkidwell

    Joined:
    Jan 24, 2018
    Posts:
    11
    It's on creation of the config. It doesn’t save any of my blends
     
  2. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Flowing water, puddles, has elongated streaks when the shader is set to triplanar; I guess that makes sense, but just wanting to make sure I haven't missed something. I want to use triplanar for the meshes because I have a series of meshes, and some are dense, but others not so much, and the UVs obviously reflect that: the textures are scaling differently. Triplanar gets rid of that but means that the flowing water looks wrong. So I guess I'll have to overlay a mesh where I want streams and use UV mapping for those. Or have I missed something?
     
  3. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Hmm, I'd have to look at the code, but I would have thought it would have used the world UVs instead of the triplanar ones. It certainly doesn't triplanar sample the water..
     
  4. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    What do you mean by your blends? You need to add some textures to it and click update.. I'll fix the creation error on the next update- what Unity version are you using?
     
  5. wkidwell

    wkidwell

    Joined:
    Jan 24, 2018
    Posts:
    11
    Unity 5.6
    Was using unity 2017 but uninstalled to test the problem in an earlier version.
    I did add textures and clicked update.
     
  6. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    I've had a minor problem with the Batch Import in an array, and file naming. For the AO image, the default suffix is _ao. I am exporting bitmaps from Substance Designer, and changed all the array suffixes in Megasplat to match the Designer ones - it's easier than renaming all the default output nodes in Designer. In Designer, ambient occlusion is _ambientOcclusion, but in Megasplat, no bitmap with this suffix would load into the array. I was wondering if there is a character limit. I changed the AO file suffixes to _ao, and the suffix field back to that, and Megasplat then did import them.
     
  7. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    Is the bone controller integration available anywhere?
     
  8. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Sorry - another question! The brush settings, notably Flow - I seem to be getting the same level of flow whether I've set 0.1 or 128. Quite often, I want to build up a surface by laying down a very thin tint. Now I get that it's height blended, but even so, I am struggling to see what control this is offering. It seems you're either painting, or not painting. I guess either I'm missing something, or have I misunderstood the term flow as applied here? I would like to be able to lay in some very subtle 'washes', as it gives a far better effect.
     
  9. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Are you using a two layer shader and painting on the other layer? In a single layer shader, only one texture is used at each control point..
     
  10. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Yes, a two layer shader. Since writing, I think I'm getting a better notion of what was happening. I think also that I should be starting with the procedural approach to get what I want, then finesse with paint. I've just rewatched the dev logs that deal with this; I think it's OK to paint on a mesh having applied a procedural. The more I think about it, for me at least, the procedural side of MegaSplat is a better starting point for my landscapes.
     
  11. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Back again - I am confused I'm afraid. I think I am definitely missing part of the procedure, but if I load a mesh, which has been converted, click on Prepare Selection, nothing happens; but then sometimes it does. If I set up a basic tree, as per the demo, and indeed the specific PDF about the Graph Editor, and hit Compile, nothing happens. I have looked at the example scene, although I am not getting that to update when I change values. Is there some additional prep or setup the mesh needs?
     
  12. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    The mesh is in the scene and selected?
     
  13. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Yes.

    This is 2017.3.0f3.
     
  14. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    When I click Compile, I am getting this error:

    NullReferenceException: Object reference not set to an instance of an object
    JBooth.MegaSplat.NodeEditorFramework.NodeMegaSplatOutput+Job.Apply () (at Assets/MegaSplat/Scripts/Editor/TextureGraph/Nodes/NodeMegaSplatOutput.cs:385)
    JBooth.MegaSplat.NodeEditorFramework.MegaSplatTextureGraphWindow.Update () (at Assets/MegaSplat/Scripts/Editor/TextureGraph/Node_Editor/MegaSplatTextureGraphWindow.cs:387)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:295)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:288)
    UnityEditor.HostView.SendUpdate () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:370)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:127)
     
    Last edited: Mar 26, 2018
  15. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461

    Ok, I'll have to take a look under that version of Unity and see if I can reproduce it.
     
  16. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Thank you. What is the version that you know it is stable on? I really want to use MegaSplat for this project, so could backtrack a version or so.
     
  17. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    I dev on 5.6, but test on 2017 branches as well, but I don't see anything in that call stack that seems like a Unity version issue..
     
  18. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    OK. I just thought I'd run it on the latest 2018.1 beta ... I know: beta. It didn't work. In fact the mesh was torn apart into various squares and the Graph interface is the light version, despite me having a Plus. I'm hoping you'll find something, as I was getting a good look with MegaSplat.

    Edit: the tearring apart was a MegaSplat shader - I just had the same thing happen in 2017.1. The Texture Graph isn't any better in that version either. I created a new project, installed only MegaSplat, loaded a mesh and converted it. Prepare Selection does nothing.
     
    Last edited: Mar 26, 2018
  19. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Hi there,
    I noticed an error in Editor/TextureGraph/Framework/Node.cs on line 23. The attribute HideInInspector doesn't seem to be on a field.

    As an aside, I was wondering does Megasplat still work with Map Magic (using Unity terrains)? I started using it with Voxeland and would like to be able to use it with standard terrains in MapMagic as well.

    TIA,
    Boysenberry
     
  20. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    As far as I know, yes..
     
    boysenberry likes this.
  21. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    An update on the Texture Graph problem. I tried the demo Mesh scene, which actually works fine. So I checked the _splat meshes supplied. In addition to the Transform, Mesh Filter and Mesh Renderer, they also have a Vertex Instance Stream, Mesh Collider, and MegaSplat Collision Info. After conversion, my meshes have only the Transform, Mesh Filter and Mesh Renderer; none of the rest. Which I'm assuming is why they are not working. Although I can use the painting tools of MegaSplat and they are working.

    My meshes are FBX exports from Lightwave Modeler 2015.3; I have also tried FBX from Blender, which brought a whole other set of problems where the contained mesh component was oriented differently, and scaled much smaller. That's not a MegaSplat thing, obviously, but it is a pain.

    Is it the Mesh Converter that adds all these components, or can I add these manually?
     
  22. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Try painting on the mesh first with the vertex painter- it's supposed to add the vertex stream if it's not present, but perhaps that is a bug; one I'd likely miss in testing because I'm usually working on the meshes in the example scenes which have already been painted on..
     
  23. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Hmm. Still testing, but that seems to be working. What I was doing was importing a stack of meshes, converting them, applying the material and shader and texture array, then bringing those straight into the Texture Graph, where they would not respond.

    The two meshes I just tried, following your advice, are now working in the Texture Graph. I'll plough on and see how it goes, but this looks like it was the 'error': there wasn't one, it was my workflow, and not realising. I hope this is it, because I am getting exactly what I need with MegaSplat. Thanks.
     
  24. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    No, it's still an error- the Texture Graph should apply the stream if it doesn't exist.. Painting first will get you around it until I can fix it though..
     
    JBT27 likes this.
  25. DeFScythe

    DeFScythe

    Joined:
    May 15, 2015
    Posts:
    3
    there is a typo in microsplat_terrain_body.txt:

    #if _USELODMIP
    #if _TRIPLANAR
    float2 cuv0 = tc.uv0[0].xy;
    #else
    float2 cuv0 = config.uv0.xy;
    #endif
    albedoLOD = ComputeMipLevel(cuv0, _Diffuse_TexelSize.zw);
    normalLOD = ComputeMipLevel(cuv0, _NormalSAO_TexelSize.zw);
    #if _USEEMISSIVEMETAL
    emisLOD = ComputeMipLevel(cuv0, _EmisiveMetal_TexelSize.zw);
    #endif
    #endif

    must be _EmissiveMetal_TexelSize instead
     
    jbooth likes this.
  26. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Do you have latest? It looks correct in mine..
     
  27. VikWhite

    VikWhite

    Joined:
    Jul 11, 2015
    Posts:
    2
    Hello, I have a mesh grid on top of the texture, what can this be the problem with?
    Screenshot_1.png
     
    Last edited: Mar 31, 2018
  28. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    This is mesh based, not based on the texture tiles? Because sometimes photoshop puts a small edge onto textures when your working with them, so check that first. Otherwise, I'd try turning off features of the shader (particularly per-texture UVs) and see if any of these things relate to it.
     
  29. VikWhite

    VikWhite

    Joined:
    Jul 11, 2015
    Posts:
    2
    Yes, this is exactly a mesh.
    I have 2 textures in the top layer (grass and water).
    Per Tex Flow Mode = Flow
    water - Per Tex Flow Speed = 1
    grass - if( Per Tex Flow Speed > 0) all good
    grass - if( Per Tex Flow Speed == 0) this artifact appears
     
  30. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    I've been using Terrain Painter, and it's been OK. But several times today I have got the below error. In this case, I made an adjustment to the contrast of a layer, then hit Convert, then got this error, followed by the TextureArrayConfig disappearing from the config field. It doesn't seem to be stopping use nor damaging anything, but thought I'd better report it:

    ArgumentException: Getting control 2's position in a group with only 2 controls when doing Repaint
    Aborting
    UnityEngine.GUILayoutGroup.GetNext () (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/LayoutGroup.cs:115)
    UnityEngine.GUILayoutUtility.DoGetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:413)
    UnityEngine.GUILayoutUtility.GetRect (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:373)
    UnityEngine.GUILayout.DoButton (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:50)
    UnityEngine.GUILayout.Button (System.String text, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayout.cs:40)
    JBooth.MegaSplat.TerrainToSplatConverter.OnGUI (JBooth.TerrainPainter.TerrainJob[] jobs) (at Assets/MegaSplat/Scripts/Editor/Utilities/TerrainToMegaSplat.cs:77)
    JBooth.TerrainPainter.TerrainPainterWindow.DrawUtilityGUI () (at Assets/MegaSplat/TerrainPainter/Editor/TerrainPainter_GUI.cs:654)
    JBooth.TerrainPainter.TerrainPainterWindow.OnGUI () (at Assets/MegaSplat/TerrainPainter/Editor/TerrainPainter_GUI.cs:588)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:295)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:288)
    UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:255)
     
  31. Pollawat

    Pollawat

    Joined:
    Aug 27, 2016
    Posts:
    192
    Hello, I got a question about creating new Array Config.

    I got these types of texture (_specular, _Displacement, _Occlusion) but I don't know exactly what the name I have to put into it with your batch importer. What these textures translate into your texture type?

    I'm not good at English so sorry about that.

    For example, I renamed "_Diffuse" to "_diff" but how about (_specular, _Displacement, _Occlusion).
     
  32. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    I think you can rename these to whatever you want. Bearing in mind the problem I had, reported above, where I could not get the extension _ambientOcclusion to work in MegaSplat. Bizarre. But your extensions can be whatever is convenient and recognisable to your project. So your _specular could be shortened to _spec, _Displacement to _disp, _Occlusion to _ao. Providing the extensions in the import fields in MegaSplat match the extensions used in your filenames, exactly, it will be fine.
     
  33. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    So, in the unity editor GUI code there are these Begin/End layout block calls; if you don't match them, then you get this error. However, even when they are matched, if you run a process that takes too long, the editor might force a refresh and throw this error. In some places I have worked around this by deferring the process so it gets triggered on the next update before the GUI starts drawing, but in places I haven't done this you will occasionally get an error like this. It's harmless though..

    Yes, no need to rename your textures, just rename the batch importer search fields. You can also just drag them in to the appropriate slots. (Note, displacement is likely you height texture- specular, though, is likely for a non-PBR specular model or specular based PBR workflow; MegaSplat uses a metallic based workflow. You want a roughness/smoothness texture instead)
     
    JBT27 likes this.
  34. markashburner

    markashburner

    Joined:
    Aug 14, 2015
    Posts:
    212
    Are you going to update your tutorial videos and documentation anytime soon?


    There is no tutorial video on showing you how to use megasplat from scratch with your own custom mesh terrain.
     
    Last edited: Apr 3, 2018
  35. markashburner

    markashburner

    Joined:
    Aug 14, 2015
    Posts:
    212
    I mean all I need is a very simple tutorial on how to setup megasplat with my own custom terrain mesh. I have looked through most of your tutorial vids and they're either outdated or too complex.

    All I want to know is how to setup megaplat with a custom terrain mesh from scratch...it would probably be a 5 minute tutorial at the most but it doesn't exist. I am trying to understand the documentation and it's just way over my head.
     
    Last edited: Apr 3, 2018
  36. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    There is a step by step tutorial for this in the documentation, which is always up to date. No chance I'm reshooting dozens of videos every time I make a change..
     
  37. Ascensi

    Ascensi

    Joined:
    Sep 7, 2013
    Posts:
    579
  38. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    In the Texture Array, for smoothness maps, would it be possible to have an 'invert all' button please. I appreciate folk can use either workflow, but for those using roughness maps, it can get a little tedious, especially when adding more textures resets all the smoothness maps to default .
     
  39. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Wait, when you add a new texture it doesn't keep the invert on the old ones checked?
     
  40. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    No. I keep forgetting, and while I'm building my arrays, and updating, I end up having to check the invert box all over again. I'm doing more this morning so will report back with the exact sequence.
     
  41. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    It happens when I run batch import, after I already have some textures in the array. So I presume it just reimports everything in the folder, and resets the invert checkbox. Adding the textures one by one doesn't upset it. And I guess I could do a batch import once all the textures are in the folder. Except that I may well wish to add more through a project, and inevitably use the batch import again, because it's handy.
     
  42. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Actually, the most hassle free way, obvious now I think about it, is to invert the roughness output from Substance Designer. Too many late nights - should have thought of that.
     
  43. Anydaytv

    Anydaytv

    Joined:
    Feb 28, 2018
    Posts:
    18
    Just started messing with this asset, but love it already.
    Fairly new to Unity so I have a newbie question.

    Is there a good IK system that would work with this shader's tessellation, and if so, what would you guys suggest I look at?
    I guess what I'm asking is if anyone knows the most compatible one right now. I realize I probably have to code some kind of collusion detection.

    Thanks!
     
    Last edited: Apr 9, 2018
  44. Pollawat

    Pollawat

    Joined:
    Aug 27, 2016
    Posts:
    192
    Error building Player because scripts had compiler errors

    Failed getting triangles. Submesh topology is lines or points.



    When I double click the message it lead to this point.



    Please help, I don't know what to do.
     
  45. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Hard to say without a repro, but perhaps you have a vertex instance stream on an object where the mesh filter has been removed?
     
  46. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    I did some experiments with this a while back, but nothing was ever released. There's code to get the offset already in MegaSplat, so you could do an integration with whatever system your using yourself.
     
    Anydaytv likes this.
  47. Pollawat

    Pollawat

    Joined:
    Aug 27, 2016
    Posts:
    192
    Hello, thank you for your service.

    How can I help you to get the information you need to solve this problem?

    ps. I don't even know what is "vertex instance stream"
     
    Last edited: Apr 9, 2018
  48. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    When you paint on meshes, it puts a VertexInstanceStream component on them to store the pain job. My guess, from what you have posted, is that you have a game object with one of these on it which doesn't have a mesh associated with it. Or something along those lines. If you put VertexInstanceStream in your hierarchy search, it will show all the objects with these on them, and you might be able to figure out which one isn't a mesh.
     
  49. Anydaytv

    Anydaytv

    Joined:
    Feb 28, 2018
    Posts:
    18
    Hey thanks for the reply - yeah, I figured that was what I was going to have to do, though I'll have to look into that code you mention.

    This is perhaps the wrong forum, but I'm also interested in your Microsplat dynamic stream emitter, is that compatible with Megasplat?

    I know you have static solutions in Megasplat, so there is some cross-over.
    If not, is there a chance we'd see this feature at some point, or making the module compatible with Megaplat?

    Thanks again!
     
  50. Anydaytv

    Anydaytv

    Joined:
    Feb 28, 2018
    Posts:
    18
    Just wanted to add that I'm also getting flooded with an error from the terrain painter when I clicked the "Cluster"or "Blended" tab:
    Code (CSharp):
    1. ArgumentOutOfRangeException: Argument is out of range.
    2. Parameter name: index
    3. System.Collections.Generic.List`1[System.Int32].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    4. JBooth.MegaSplat.MegaSplatUtilities.RenderBrushSpherePreview (JBooth.MegaSplat.TextureArrayConfig config, JBooth.MegaSplat.BrushData brushData, Int32 size) (at Assets/MegaSplat/Scripts/Editor/MegaSplatUtilities.cs:301)
    5. JBooth.MegaSplat.TextureClusterExtensions.UpdatePreview (JBooth.MegaSplat.TextureCluster cluster, JBooth.MegaSplat.TextureArrayConfig config) (at Assets/MegaSplat/Scripts/Editor/TextureClusterExtensions.cs:28)
    6. JBooth.MegaSplat.TextureArrayConfig.SyncClusterNames (Boolean refresh) (at Assets/MegaSplat/Scripts/Editor/TextureArrayConfig.cs:223)
    7. JBooth.MegaSplat.TextureArrayConfig.DrawTextureClusterSelection (System.String current, System.String label, Boolean drawImages) (at Assets/MegaSplat/Scripts/Editor/TextureArrayConfig.cs:370)
    8. JBooth.MegaSplat.TextureArrayConfig+BrushData.DrawGUI (JBooth.MegaSplat.TextureArrayConfig config) (at Assets/MegaSplat/Scripts/Editor/TextureArrayConfig_Brush.cs:150)
    9. JBooth.MegaSplat.TextureArrayConfig.DrawGUI () (at Assets/MegaSplat/Scripts/Editor/TextureArrayConfig_Brush.cs:220)
    10. JBooth.TerrainPainter.TerrainPainterWindow.DrawPaintGUI () (at Assets/MegaSplat/TerrainPainter/Editor/TerrainPainter_GUI.cs:815)
    11. JBooth.TerrainPainter.TerrainPainterWindow.OnGUI () (at Assets/MegaSplat/TerrainPainter/Editor/TerrainPainter_GUI.cs:530)
    12. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    13. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    14. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    15. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    16. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:295)
    17. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:288)
    18. UnityEditor.HostView.InvokeOnGUI (Rect onGUIPosition) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:255)
    19. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    Not sure if I'm to blame or not.
    I'm on Unity 2017.3.1.f1
     
    Last edited: Apr 10, 2018