1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  3. We’re giving 2017.1 beta testers a chance to win t-shirts and a Nintendo Switch. Read more on the blog.
    Dismiss Notice
  4. We want to know how you learned Unity! Help us by taking this quick survey and have a chance at a $25 gift card
    Dismiss Notice
  5. Are you an artist or level designer going to Unite Europe? Join our roundtables there to discuss artist features.
    Dismiss Notice
  6. Unity 5.6 is now released.
    Dismiss Notice
  7. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice

Amplify Shader Editor - Node-based Shader Creation Tool

Discussion in 'Assets and Asset Store' started by Amplify_Ricardo, Sep 13, 2016.

  1. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    409
    The screen grab issue of not picking other objects has to do with how unity handles the screen grab pass. You can define your own pass but then you deal with the layering yourself. If you dont want to however you can simply select your grabscreen node and just delete the name property, you'll notice that the "property name" changes to "_GrabTexture". If you use it like this you should be able to pick other refractive materials just fine but you'll now lose control of their ordering.

    @x4000 you were having issues with using the panner, I went to check it and I think you might have missed something. Granted, it's pretty confusing as it is so I don't think it's your fault.

    In order for you to use both texture tilling and offset values with the panner you need to reference the texture with the texture coordinates node. This way your texture coordinates will pick the texture _ST data and use it with the panner and you don't need to use an external vector4 property to do the tilling manually like you mentioned. I think the confusions comes from the fact the the texture coordinate nodes has to reference the node in front of it and not behind.
    panner.PNG
    Notice how my texture coordinates has a small texture saying "Value ( Albedo )" and both tilling and offset ports are greyed out.

    The editor needs work on this but hopefully this should help you get cleaner graphs.
     
    antoripa and KRGraphics like this.
  2. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    206
    Hey guys,

    We've just uploaded a new build into our website with a cool new feature, bug fixes and improvements.
    Here are the release notes:

    Release Notes v1.0.0 dev 03:
    • New features:
      • Custom Lighting
        • New Nodes: ( can only be used on this light model )
          • Indirect Diffuse Light
          • Indirect Specular Light
          • Light Attenuation
    • New Samples:
      • Custom Lighting Toon
    • Fixes:
      • Fixed issue when zooming with Alt + Right Mouse button
      • Fixed issue with window not detecting graph type on Unity load
      • Fixed issue on 'Debug Switch' node not loading properly
      • Fixed issue on assigning invalid cultures when an error/exception occurred inside ASE
    • Improvements:
      • Context Palettes now allow Tab / Shift Tab to select between nodes instead of mouse selection (confirms with Return/Enter key)
      • Added previews for 'Debug Switch' and 'Toggle Switch' nodes
      • Added link to node documentation on its tooltip
      • Small optimization on all nodes overall
      • Preventing ASE to crash if some faulty class/dll is present on the project

    One fix we would like to clarify a bit is the one about culture infos.

    In V1.0.0 Dev 001 we started forcing InvariantCulture inside ASE execution cycle to fix an issue some users were having in Unity v2017 where depending on their cultures it used commas(,) instead of dots (.) to set floats into strings.

    On the end of ASE execution cycle we are setting back the original culture, but there was a loop hole on which it could fail this step and not set what it should.

    This then affected not only internal data but some nodes and the inspector as well.
    We deeply apologize for this and hopefully the issue is permanently fixed.

    On this build we also introduce a cool new feature, Custom Lighting.
    You can now select the Custom Lighting option on our Output Node Light Model dropdown and be able to achieve some neat new effects that weren't previously possible.

    Here's our new example Custom Lighting Toon shader using this new light model in action:

    [​IMG]


    Please beware that these three new nodes ( Indirect Diffuse Light, Indirect Specular Light and Light Attenuation ) which are under the Light category can only be used on the Custom Lighting light model.


    Happy shader creations!
     
  3. plokkum

    plokkum

    Joined:
    May 28, 2013
    Posts:
    76
    Great! Custom lighting is a must-have!

    Question: Do you have a way for the shaders to support soft particles? I'm struggling to find a way to fade the particles upon geometry intersection (kind of like a depth blend).
     
  4. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    409
    Check "depth blend" node, this should give you what you want.
     
    Last edited: Jun 7, 2017
    Farelle likes this.
  5. plokkum

    plokkum

    Joined:
    May 28, 2013
    Posts:
    76
    Yikes, I never got it to work, don't know what I did wrong, but thanks, Kebrus. It actually does work as described. *shame*
     
  6. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    I just noticed this response -- wow, thank you! That's really good to know. It's the opposite of Shader Forge, where you feed in things that effect the uv channel, rather than modifying the uvs afterward. That's really good to know, and worth documenting in some fashion. A lot of times I'd visit the wiki and just see something like "it pans the uvs" (or similar). What you just showed is simple and now-obvious since it's clear what the workflow is now.

    Cheers!
     
    kebrus likes this.
  7. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    1,051
    Is it now possible to add passes? Currently toon outline cannot be modulated or textured.
     
  8. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    206
    No, unfortunately we still only support single passes.
     
  9. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    To me, this honestly breeds creativity in solutions. Not that multipass shaders are evil, but batching goes out the window and people over-use them for things like toon shaders in particular. If you want a toon-styled game that can be batched well, you need single-pass shaders, so whatever cleverness is encouraged in a single pass is a Really Good Thing.

    I used Shader Sandwich for a while and enjoyed the multi-pass capabilities, but ultimately I stayed away from that for the above reasons and some other ones.
     
    benderete likes this.
  10. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    1,051
    You know, that's a good point, I am so used to doing toon with two passes I lost interest in single pass, mostly because the dot(normal, view) edge would always end up blotchy with low poly models. Have you done a single pass toon shader that looks good? So far I have this one pass toony thing with line that gets thicker in the shadow.
    toon min max.PNG

    It'll completely darken a flat are that turns away from the camera so it's not as neat at the reverse hull toon.
     
    Last edited: Jun 7, 2017
    x4000 likes this.
  11. brisingre

    brisingre

    Joined:
    Nov 8, 2009
    Posts:
    142
    Custom lighting! Can't wait to play w/ this.
     
  12. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    I've never done a single-pass toon effect specifically, no. I've done a lot of interesting things with flat shading, though, or other NPR techniques.

    Personally I feel like the bordered toon style tends to be a bit overkill in general, because it is so sharp in its contrast. That's obviously personal preference, but borders in general are always such a really expensive operation and/or lead to artifacting.

    I think that the GPU-cheapest way to handle a toon effect with borders at this point would be to do a borderless single-pass shader that gets everything else done, and then to use a screen-space shader in post. That gives you still the benefits of single-pass, and makes your borders' efficiency constant regardless of scene complexity.

    Personally one of the effects from Vetasoft's Camera Filter Pack would probably be my choice. You can probably get better results from using that in combination with a toony single-pass effect that you develop in ASE, rather than trying for something multi-pass.
     
  13. Fb01

    Fb01

    Joined:
    Apr 5, 2016
    Posts:
    5
  14. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    1,051
    Having trouble making a standard specular shader with hit-blink (goes white when hit) the custom has a dithering pattern all over it and the way the light falls onto the surface is different despite settings being the same. Can someone shed some light on that?

    custom PBR, notice the weird dithering, white edges instead of metal
    ASE custom PBR.PNG

    standard spec: glow stronger, white tip, different glossiness all over and zero dithering
    ASER standard specular.PNG
     

    Attached Files:

  15. 3d_Artist1987

    3d_Artist1987

    Joined:
    Jul 9, 2012
    Posts:
    490
  16. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    3,589

    I am over the moon about this!! And it looks so easy to set up it too... I hope this will open the door to creating Subsurface Scattering shaders that you would find in UE4 or Marmoset... As much as I love Alloy, I need WAY more control than the skin shader in the package provides...
     
  17. brisingre

    brisingre

    Joined:
    Nov 8, 2009
    Posts:
    142
    The short answer is I don't think you can. If you're comfortable writing custom nodes for ASE I guess it should be possible to write nodes to interact with all their custom lighting stuff, but it'd be a pretty big project, much more work than just modifying one of the daydream shaders the old fashioned way.
     
  18. 3d_Artist1987

    3d_Artist1987

    Joined:
    Jul 9, 2012
    Posts:
    490
    Thanks for reply.I don't know shader programming.
     
  19. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    206
    Hey guys,


    We've just uploaded a new build into our website mostly with bug fixes.

    Here are the release notes:

    Release Notes v1.0.0 dev 04:
    • Fixes:
      • Fixed node drag and drop issue from palette
      • Fixed issue with online reference button having a "too-large" click box
      • Palette Menus now display the correct cursor on mouse hover
      • Fixed clicking Enter on palette without selecting a node
      • Changing lighting models should now show the error messages correctly
      • Fixed issue of Custom Light nodes not loading properly
    • Improvements:
      • Added Per Renderer Data tag to Properties available Attributes
      • Added help box into 'Virtual Texture Object' with additional info

    Happy shader creations!
     
  20. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    Hey Amplify Rick (et al),

    Do you have any idea what the expense of calling UNITY_ACCESS_INSTANCED_PROP() is? I don't know the answer to that, personally, but I've noticed that for instanced variables that are in shaders generated by ASE, the same property can be called many times in that fashion.

    Is it more efficient to do something like:

    float3 hsv = UNITY_ACCESS_INSTANCED_PROP(_HSV);
    float3 hsvTorgb54 = RGBToHSV(tex2DNode5.xyz);
    HSVToRGB(float3((hsv.x + hsvTorgb54.x), (hsv.y + hsvTorgb54.y), (hsv.z + hsvTorgb54.z)));

    Rather than having all of those references to "hsv" instead be UNITY_ACCESS_INSTANCED_PROP(_HSV)? Right now the generated code looks like this, in other words:

    float3 hsvTorgb54 = RGBToHSV(tex2DNode5.xyz);
    HSVToRGB(float3((UNITY_ACCESS_INSTANCED_PROP(_HSV).x + hsvTorgb54.x), (UNITY_ACCESS_INSTANCED_PROP(_HSV).y + hsvTorgb54.y), (UNITY_ACCESS_INSTANCED_PROP(_HSV).z + hsvTorgb54.z)));

    I don't know if that is less efficient than what I did above, or if unity's cross-compiling of their shaders makes it all moot anyhow. I don't really trust them to be optimizing too much in their cross-compilation, though, because it seems like the more they optimize the less likely they are to have compatibility.

    I also don't know what the variable declaration/assignment costs are, so if the float3 hsv was only to be used once if that would be majorly less efficient than just calling UNITY_ACCESS_INSTANCED_PROP(_HSV) directly. Presumably it is somewhat less efficient, but I don't know to what degree it would be.

    Probably these are minor points. But it might be worth it to do the variable assignments for any instance variables that are referenced more than once. Maybe. ;) It depends on what that UNITY_ACCESS_INSTANCED_PROP() costs in GPU instructions, and I have no idea on the answer to that, nor any way to profile it.

    Thoughts? Obviously not a big issue.
     
  21. Ziboo

    Ziboo

    Joined:
    Aug 30, 2011
    Posts:
    167
    Hello,

    Some nice updates, good job.

    I have some issues I'd like to adress:

    1. Shaders Functions
      I have a shader function that pan a texture. but if I use it several times into the same graph, only one is displayed in the material editor.
      It should display 3 of them, since I want specific parameters for each one of them upload_2017-6-8_13-37-27.png upload_2017-6-8_13-37-54.png
    2. Properties Tooltips
      Would it be possible to add a tooltip field on properties ? like that you can use a GUIContent to display it in the editor
      upload_2017-6-8_13-39-27.png
    3. Material Properties Headers
      Would it be possible to add a "Header" property to seperate properties ?
      upload_2017-6-8_13-40-29.png
    4. Particles Shader
      Any plan / ETA for a particle shader, maybe based on the new one from unity ? https://forum.unity3d.com/threads/release-standard-particle-shader.461938/
    Thanks
     
  22. Ofx360

    Ofx360

    Joined:
    Apr 30, 2013
    Posts:
    4
    Is it possible to display Vector2s and Vector3s with just 2/3 properties in the inspector instead of all 4 (X, Y, Z, W)?
     
  23. DirtDart

    DirtDart

    Joined:
    Apr 24, 2014
    Posts:
    2
    Anyone else seeing an occasional Editor error related to ASE panel OnGUI()? It's not fatal, just annoying...


    ArgumentOutOfRangeException: Argument is out of range.
    Parameter name: index
    System.Collections.Generic.List`1[AmplifyShaderEditor.InputPort].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    AmplifyShaderEditor.ParentNode.ReadInputDataFromString (System.String[]& nodeParams) (at Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/ParentNode.cs:2422)
    AmplifyShaderEditor.AmplifyShaderEditorWindow.LoadFromDisk (System.String pathname, .AmplifyShaderFunction shaderFunction) (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:3361)
    UnityEngine.Debug:LogException(Exception, Object)
    AmplifyShaderEditor.AmplifyShaderEditorWindow:LoadFromDisk(String, AmplifyShaderFunction) (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:3370)
    AmplifyShaderEditor.AmplifyShaderEditorWindow:LoadDroppedObject(Boolean, Shader, Material, AmplifyShaderFunction) (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:2311)
    AmplifyShaderEditor.AmplifyShaderEditorWindow:LoadObject(Object) (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:1064)
    AmplifyShaderEditor.AmplifyShaderEditorWindow:OnEmptyGraphDetected(ParentGraph) (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:4365)
    AmplifyShaderEditor.ParentGraph:Draw(DrawInfo) (at Assets/AmplifyShaderEditor/Plugins/Editor/Graphs/ParentGraph.cs:620)
    AmplifyShaderEditor.AmplifyShaderEditorWindow:OnGUI() (at Assets/AmplifyShaderEditor/Plugins/Editor/Menu/AmplifyShaderEditorWindow.cs:3810)
    UnityEditor.DockArea:OnGUI()
     
  24. gunder

    gunder

    Joined:
    Jun 23, 2009
    Posts:
    10
    Hi!,

    two questions;

    1.- The ClampOpNode whitout inputs clamps to 0,0. I think it clamps to 0,1 on the past.
    2.- How i can download the new versions like v1.0.0.004 – 8th June 2017 – Stable, if i bought the plugin on the assset store ( i bought it using an other account)?.

    Thanks!
     
  25. kebrus

    kebrus

    Joined:
    Oct 10, 2011
    Posts:
    409
    That actually should be easy to do, the editor already tries to do that for every node when it sees something being used more than once so it only needs the same logic for that case. To be honest I also don't know if that really has any difference in the final compiled version.

    1. The texture is outside the graph and being reused for the three of them so it should only show up only once. If you want to reuse it with different parameters you have to make the parameters different and not the texture. I noticed you are generating some UVs inside the shader function. Properties of the same name are considered the same property, this is simply how unity works. If you want different properties for each of them you have to expose them to the outside of the function and create your own different properties.

    2. It is possible but some of those are generated through script and use a different kind of popup utility, one that doesn't support guicontents for some reason :\

    This is a unity issue, they always generate vector4. I think it's because when you pass vectors to the shader it has to be a vector4 at all times, not sure why. Still, it is possible to create a custom drawer for those but since unity doesn't have them and the editor uses whatever unity uses for compatibility reasons you would need to create the custom inspector yourself and override it in the general options.

    Please share the shader with the problem or at least explain how to reproduce the problem. It seems to be related to reading shader functions ports information, but aside from that it's hard to tell.

    1. You are probably suffering from a bug that was fixed a couple of dev versions ago.
    2. You can go to the download page and use your purchase invoice number to get the lastest version
     
    x4000 likes this.
  26. gunder

    gunder

    Joined:
    Jun 23, 2009
    Posts:
    10

    Thanks my friend!!!
     
  27. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    206
    This is quite a relevant question. We'll dig a bit into if but nevertheless and to be sure we'll assign it to a local variable and use it instead of calling UNITY_ACCESS_INSTANCED_PROP() in every access.
    Expect this hopefully on our next build.


    1. @kebrus got it right. Property names on a shader are unique so if you have the same property name declared in several shader functions it will be considered as the same one.

    2. Again is a bit like @kebrus said. Unity UI tools allows some UI to be displayed via a GUIContent() but others unfortunately not.

    3. We are aiming to greatly improve the Attributes section of Property Nodes and with it we'll also include the Header attribute.

    4. This is quite interesting indeed. Expect news on a near future.


    Like @kebrus explained, Unity only support Vector4 properties.
    If your Vector2 is marked as a constant than a float2() variable is created within the shader, but if you set its type to property we internally have to transform it into a vector4 so we can register it as a shader property.

    This is quite strange, there seems to be some kind of issue with reading our meta from this shader. Is it possible for you to share it with us or let us know how can we reproduce this issue on our end?
    Also, what is the ASE version this shader was originally created and what is the version you are using currently?
    We really want to fix this as soon as possible.
     
    x4000 likes this.
  28. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    Cheers guys, thanks as always for looking into things.
     
  29. Caronte3D

    Caronte3D

    Joined:
    Sep 16, 2014
    Posts:
    17
    I need a sampler2D input on my expresion node :(
    Any workaround?
     
  30. rea

    rea

    Joined:
    Oct 10, 2009
    Posts:
    1,817
    try to use float3 input
     
  31. Caronte3D

    Caronte3D

    Joined:
    Sep 16, 2014
    Posts:
    17
    Was my first try, but don't work ;)
     
  32. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    736
    NEW! Amplify Shader Editor Tutorial - Shader Functions 101



    Amplify Shader Editor - Asset Store Page
     
  33. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    errorCauser.JPG

    This local vertex offset causes the following error:

    Shader error: too much data in type constructor at line 52 (on d3d9)

    On absolute positioning, that line is:
    v.vertex.xyz = ( _CosTime * fixed4( v.vertex , 0.0 ) ).xyz;

    On relative, it's:
    v.vertex.xyz += ( _CosTime * fixed4( v.vertex , 0.0 ) ).xyz;

    From what I can tell, the second part of the line should be:
    ( _CosTime * v.vertex ).xyz;

    Or even just:
    ( _CosTime * v.vertex );
     
  34. davysw

    davysw

    Joined:
    Jul 15, 2014
    Posts:
    15
    I'd like to make a shader that uses transparency like the unity Fade shader. I've seen mentions in this thread of the "fade" option but I'm just missing it in the software, could someone please point me to what node or property I'm missing? Also what output I need to plug my alpha's into.

    thank you
     
  35. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    206
    Hey guys,


    Just uploaded a new build into our website.
    Here are the release notes.
    Release Notes v1.0.0 dev 05:
    • Fixes:
      • Fixed issue with conditional 'If' node
      • Fixed issue with 'Vertex Position' node swizzle in Local Vertex Ports
    • Improvements:
      • Caching instanced property nodes into local variables to prevent multiple UNITY_ACCESS_INSTANCED_PROP() on them
      • Added support for samplers types into 'Custom Expression' node
    @Caronte3D We added support for samplers into our 'Custom Expression' node. Please let us know if you run into any issues with it.

    @x4000, We fixed the issue you reported and also did that little optimization on instanced properties we discussed earlier.
    I don't know if it's on purpose or not, but on your graph you are using the 'Cos Time' first output which is the full float4 vector on which, each channel has its time value scaled differently.
    With this setup the displacement offset will be different to each coordinate of your vertex.

    For you to enable Transparency, go to you Output Node property window and select Transparent as your Blend Mode. You will notice the Opacity Port will become active on the Output node. This port will be the one you'll need to set your alpha value.


    Happy shader creations!
     
    Last edited: Jun 9, 2017
    plokkum and x4000 like this.
  36. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    Good god, you guys are on fire. Nice going. :)

    Oof, thanks for that tip -- that explains a lot. I'm just now getting into vertex manipulation in shaders in any serious fashion, and I haven't had a reason to use Cos or Sin time in ASE prior to now. Bad combo! :)
     
  37. ColtonK_VitruviusVR

    ColtonK_VitruviusVR

    Joined:
    Nov 27, 2015
    Posts:
    71
    Hey All,

    We are having some issues with shader forge and mixed lighting. Currently we have a snow shader created in shader forge that simply puts snow in the cracks of bricks according the the normal map. The shadows bake into the shadow map correctly but the object wont receive realtime light from the mixed light source after the bake (all objects appear permanently in shadow). Can anyone confirm that a similar amplify shader will work correctly (shadows get baked into map and realtime lighting)?

    Cheers,
    Colton
     
  38. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    Hi ASE devs, it's me ur brother. (Yep, me again, sorry.)

    1. First, an observation/documentation-suggestion: You guys have perfectly good Object To World and World To Object nodes, but you also have Relative and Absolute vertex outputs. I honestly had no idea what those latter two things did, and I thought that it was automatically applying those transforms or something until I looked at the generated code.

    Relative and Absolute might be better specified as Set Vertices (rather than absolute), and Add To Vertices (rather than relative). Yeah those will raise some questions, but I think that's honestly what you want here. Relative and absolute kind of imply matrix multiplication, or at least that's how I took it. I was thinking postion/localPosition sort of thing.

    2. Secondly, I've been looking into passing in matrices for doing manipulations of vertices. So far so good with a lot of these things. I love that these can be set up as instance variables like anything else in the newer versions of unity. This is my first time doing it.

    So I was really surprised when the property didn't show up in the editor (I now know that's by design), and I was also surprised to not be able to set Material values like usual. Setting Default values is possible, but does nothing. I think some documentation about the expectations here are in order.

    Generally speaking, right now the matrix is defaulting to all zeroes, when it should in my opinion default to identity. I can't for the life of me figure out how to handle default matrix values in shader syntax. As a regular variable it would be this for the matrix identity:

    uniform float4x4 matrixIdent = { 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 };

    However, no amount of setting that for the UNITY_DEFINE_INSTANCED_PROP(fixed4x4, _MovementMatrix) that is generated is able to accomplish that.

    Any ideas? I feel like there needs to be some in-editor clarity around matrices when they are used, and the Material and Default values should either work or be invisible... or not settable, I guess? Granted, whenever you do try to set the Material version to anything other than zeroes it immediately reverts... so maybe that's what is up.

    Anyhow! No rush on my end; happy weekend. :)
     
  39. rea

    rea

    Joined:
    Oct 10, 2009
    Posts:
    1,817
    @Amplify_RnD_Rick will you considering to support simple vertfrag shader for particle in ASE?
    Or at least support for particle custom data input. Just like particle standard shader
     
    Last edited: Jun 10, 2017
  40. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    206
    We understand your point but we already iterated a bit on this one and for now we'll keep the current name in conjunction with the port changing its name between Local Vertex Position and Local Vertex Offset.


    You stumbled into an ASE issue that unfortunately is being a source of confusion.
    Both 3x3 and 4x4 matrices can only be set as either Constant or Global ( shader global variables ). Their respective nodes are currently letting users to choose the Property type ( which is incorrect ).
    Not being able to set a matrix as a shader property is a Unity limitation. You can check their official documentation on what data type can be set as Shader Property.
    We will fix this issue on our next build. Apologies for the confusion!

    Expect some news on this hopefully soon!
     
    rea likes this.
  41. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    736
    We would be happy to test it on our side, can you share your current shader for reference? If so, please share a sample via support@amplify.pt or forum PM. What's your current Unity version?

    Thanks!
     
  42. ColtonK_VitruviusVR

    ColtonK_VitruviusVR

    Joined:
    Nov 27, 2015
    Posts:
    71
    Thanks for the reply @Amplify_Ricardo
    I have sent you an email with some more details. Current version of Unity is 5.6.0f3.
    Thanks,
    Colton
     
  43. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    Cool, I can respect that.



    Wait! This is only partially correct. While they can't be properties, they do work as instanced properties. What you have going on right now works perfectly, and in conjunction with MaterialPropertyBlock it can be used as an instanced property no problem. Your code generation is perfect. :)

    The confusion comes with some of the GUI, sure, and I'm not sure how to define a default value for the instanced matrix4x4 and so forth, but passing them in definitely works and is also supported by the unity documentation. Their documentation is not super consistent, unfortunately, but I can verify that this works.
     
  44. davysw

    davysw

    Joined:
    Jul 15, 2014
    Posts:
    15
    Thank you very much! works perfectly!~

     
  45. DirtDart

    DirtDart

    Joined:
    Apr 24, 2014
    Posts:
    2
    As is my habit with most mystery problems with Unity, I nuked the library and let it everything recompile. Fixed itself.o_O ....One day I dream of using a tool that doesn't occasionally require a swift kick upside the head to fix inexplicable problems.

    Thank you for the quick response! ...I'm absolutely loving ASE; cheers for putting the care and effort into creating something infinitely useful, well thought out and implemented, and (dare I say) fun to use. For a tech artist that jumps from project to project doing a variety of things, not having to start each shader task I'm assigned from a blank Visual Studio file makes me look forward to coming into work a lot more. :D

     
  46. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    1,051
    Cool! I've always thought this also nukes all references in your project.
     
  47. x4000

    x4000

    Joined:
    Mar 17, 2010
    Posts:
    105
    Depends on what it is. For something like ASE, it won't matter. Most toolchain-type stuff is safe to do that with, whereas a lot of things that are more controller-based are less so.
     
  48. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    1,051
    Example of things that break?
     
  49. plokkum

    plokkum

    Joined:
    May 28, 2013
    Posts:
    76
    I recently switched over to ASE from another (real good) editor. I'm loving every bit ot it.

    Here is a suggestion: When right clicking in the editor to create a node, I constantly find myself pushing the down-arrow key to select the node I need in the popup-view. Could you create the functionality to browse through that view with the arrow keys and creating the node by pressing enter?

    :D
     
  50. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    206
    I'm really glad you pointed that out as it made me re-read the official documentation, do some tests and yes, you are 100% correct!

    Using the Up/Down arrow keys unfortunately is kinda tricky but we are working on it. Until then we have made a workaround on which you hit Shift+Tab ( move up ) or Tab ( move down ) to select nodes on the palette.
    Please note that it will only move between visible nodes on the palette and not category foldouts.

    Also we just uploaded a new build into our website.
    Here are the release notes:

    Release Notes v1.0.0 dev 06:
    • New features:
      • Added LOD Cross Fade support for LOD groups ( located in the Output node Rendering Options tab )
    • Improvements:
      • Add' and 'Multiply' nodes can have more than 2 input ports ( max 10 )
      • Minor improvements on several nodes
      • Refraction port use Unity's grabpass by default so it can pick other refraction materials
      • Avoiding possible compiler misunderstandings with System.Type calls
      • Ensuring variables/functions created by custom expressions have unique names
      • Auto enabling instance mode on material ( if on Unity 5.6 or above ) when detecting instance mode on ASE shader
      • Improved zoom behavior
    • Fixes:
      • Fixed issue when remapping ports from very old shaders
      • Fixed swizzle issue on 'Vertex Position' node
      • Fixed matrix 'Invert' node
      • Fixed SimpleGPUInstancing sample not fully batching on Unity 5.6
      • Fixed opening a SF in more than one tab after creation
      • Fixed header click to edit name when zoomed out
      • Fixed both Commentary node side menus resize not following the mouse movement correctly
    • New Shader Functions: ( AmplifyShaderEditor/Examples/Assets/ShaderFunctions )
      • Simple HUE
      • SphereMask


    As always please let us know if you come across any issues and happy shader creations!
     
    rea and plokkum like this.