Search Unity

[Best Tool Asset Store Award] Amplify Shader Editor - Node-based Shader Creation Tool

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

  1. Elfinnik159

    Elfinnik159

    Joined:
    Feb 24, 2013
    Posts:
    145
    Hi!
    Is it possible to do volumetric rendering using amplify shader editor?
    For example:
    I need clouds in a radius of r around the object
    3x Texture2D (tile perlin) (multiply), UV = world position
    Rendering is needed even if the camera is inside the object.
    I saw a lot of packages in the asset store (Volumetric/cloud rendering), but they did not suit me.
     
  2. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello! It's definitely possible to perform volumetric rendering using ASE, one of our users has achieved it through the use of our Custom Expression node in order to make custom functions for each intended shape.

    Even though we don't currently provide any sample for this technique, I recommend that you look into our Shader Templates and Custom Expression Nodes documentation.

    Don't hesitate to let us know if you have any further questions, we'll be glad to assist, thanks!
     
  3. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    Awesome. And I hope to add multipass to my own shaders as well
     
  4. JBT27

    JBT27

    Joined:
    Jul 13, 2016
    Posts:
    197
    Thanks! Yes, I can start with that and see where it goes.
     
  5. Wekthor

    Wekthor

    Joined:
    Apr 30, 2011
    Posts:
    165
    Hi,

    is it possible to adjust size of the dithering pattern ? I would want the dithering effect to be more low resolution, so its better visible. I tried some scaling etc, but it didnt affect it. Thanks
     
  6. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hi,

    I have this simple setup for creating flat polygonal shading, the classic ddx /ddy approach.
    Everything works fine in all unity versions except 2018 beta10, where my object is black and I get this error:

    Shader warning in 'ddx': floating point division by zero at line 60 (on d3d11)

    Compiling Fragment program with UNITY_PASS_FORWARDBASE DIRECTIONAL
    Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_FULL_HDR

    Sample package attached. Any ideas anyone? Thanks!
    upload_2018-3-16_11-48-4.png
     

    Attached Files:

  7. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello, the best way to achieve this is to set your Dither Node's pattern as a Noise Texture through its node parameters, and then use an image to produce the intended effect.


    Hey there! Thank you for providing us with a sample, we've investigated what could be causing this issue and have concluded that it seems that both ddx and ddy built-in functions in Unity 2018 are generating incorrect values.

    Unfortunately, there's not much that we can do on our side since this is a Unity related issue, so I would suggest that you use an older build in which this issue is not present until a new official Unity version is released.

    Apologies for the inconvenience, and thank you once more for taking the time to report this issue.
     
  8. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    Hey! Just interested in your shader here, what part of this gives you the hard edges? I'm kinda looking to do the opposite - soften all the normals. Do you know what I'd swap out here to do that? Thanks :)
     
  9. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Thanks for the quick response and for checking it out! Meanwhile I tested another shader using ddx/ddy, not made with ASE, same problem. I will report the bug to unity.
     
  10. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    The first part gives the hard edge result: cross( ddx(WorldPos ), ddy( WorldPos )). What do you mean by soften normal?
    Chamfer edges?
     
  11. Wekthor

    Wekthor

    Joined:
    Apr 30, 2011
    Posts:
    165
    Thanks, is it possible to generate the dithering pattern through some math instead of texture ? If you are for example doing that for the standard Bayer, is it possible to replicate that, but just adjust some values there ?
     
  12. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    Not chamfer/bevel, more like using the soften edge tool in Maya. Essentially I want to read all the edge normals as if they were smooth in the shader. Seeing as your image seems be hardening all edges I wondered if I could do the opposite.

    See below - left cube is what the mesh actually looks like, right is how I want the shader to read it. Is that something I can do in a surface shader? :)

    Cube_Soft.PNG
     
  13. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    I see, there's no need for any special shader then, just the the standard shader or your custom ASE shader, leave the normal port empty. Export the mesh from maya with those soft normals or exoprt the mesh with split normals an when you import it in unity set the smoothing angle to 180.

    upload_2018-3-16_18-41-36.png
     
  14. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Unfortunately, its not possible to manipulate our Dither node in such way, you may only connect a black & white texture or float to its input in order to affect the generated pattern in either of the Bayer matrices we provide, or you use your own noise texture.

    An alternative would be to generate your own textures that are compatible with this specific kind of dithering technique, feel free to check out the following link for further information and a few samples you may use, including blue noise:

    http://momentsingraphics.de/?p=127
     
  15. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    Well, the issue is that I don't want my mesh to look like that. I want my mesh to use the correct normals (hard edges where I expect them). I want the shader to read the meshes normals as if it's entirely smooth. Therefore i can't achieve what I want by changing the mesh import settings.

    I want to do this to test if I can create a multi-pass outline/silhouette shader where the outline is generated using completely smoothed normals (e.g. what the mesh would be like if you calculated normals at 120-180) but then the rest of the shader uses the meshes true imported normals. In theory my idea is that being able to do this would allow an outline shader that works on any mesh regardless of it's hard edges.

    This is particularly important for what I need to do as it's an outline that will get toggled on and off (meaning that if you changed the import settings to use calculated normals the mesh would look awful without the outline).
     
  16. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hey everyone,

    We've just uploaded a new build into our website.
    This build was also submitted to the Unity Asset Store so it will soon be available over there as well.

    Here are the release notes:
    Release Notes v1.5.0 dev 01:
    • New Samples:
      • SRP Lightweight GlintSparkle
      • SRP Lightweight Coverage
    • Fixes:
      • Fixed issue on loading shader with missing shader functions
      • Fixed issue on duplicate pragmas over generated shader
      • Fixed issue with template post processor not correctly registering new templates
      • Fixed issue on template output nodes modules incorrectly sharing foldout value
      • Fixed Undo issue when undoing deleted property type nodes after saving shader
      • Fixed 'Static Switch' node registering duplicates in the material properties group
    • Improvements:
      • Reorganized samples shader paths
      • Reorganized template menu items
      • Canvas and output node title now shows shader name without relative paths
      • 'Register Local Var' node now generates a new name when duplicated
      • 'Indirect Diffuse Light', 'Indirect Specular Light' and 'Light Attenuation' nodes now work on templates

    With this build, we included two new samples, SRP Lightweight Coverage and SRP Lightweight GlintSparkle.
    Both these samples use the Lightweight SRP and are packed into the SRP Samples.unitypackage located at the AmplifyShaderEditor > Examples folder.

    As SRP Lightweight Coverage is a sample similar to other one already in the package but using Lightweight, SRP Lightweight GlintSparkle is a completely new effect.

    Here's a sneak peek of it in action:


    These samples only work under Unity 2018 with both the Lightweight SRP properly installed/configured and our own LightweightSRP template unpacked. Please take a look at our wiki page for further information.

    Hope you guys have an amazing weekend and happy shader creations!
     
    one_one, Reanimate_L, ColaLee and 4 others like this.
  17. davidosullivan

    davidosullivan

    Joined:
    Jun 9, 2015
    Posts:
    387
    @Amplify_Borba Thanks for the info. So what I was wondering is, to keep the vertex count down for the imported mesh, can I just add two empty channels in Blender between UV0 and UV3? So I basically have a mesh with my base UVs on UV0 and detailUVs on UV3 and then use Amplify to create a shader that lets unity use UV1 for lightmapping, UV2 for realtimeMapping and uses UV3 for detail maps?

    Also I have had some issues with ToonyColorsPro and AssetBundles for Android- where putting generated shaders in AssetBundles doesn't work (waiting to hear back) Is there anything I need to be aware of with Amplify in that scenario?
     
  18. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    I understand. I have no idea how it can be achieved.

    @Amplify_Borba, @Amplify_RnD_Rick ... any chance to add custom attributes for the static switch node? I use it a lot to add Header attributes to parameters, it would be nice to be able to add them to static switch nodes as well.
     
  19. CG_Echtzeitschmiede

    CG_Echtzeitschmiede

    Joined:
    Feb 19, 2015
    Posts:
    93
    I have a general question: I am thinking of doing a few different effects using ASE. As an example, let's say I want to shoot at an object, and once it gets hit an electric effect travels across its surface for a brief moment.

    Once I have the ASE effect done, how would I then display it on the actual objects in my game? The objects all have different shaders and materials, but in the case of a hit they would all need to be combined with the effect I built. Of course it's not just a single effect. Other than an electric impact, there will be many other effects depending on the projectile used.

    Do I have to build one uber shader that contains a base material and all effects, and then apply this uber shader to every single object in the game? This seems cumbersome, how is this kind of thing usually dealt with?
     
  20. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    Haha no worries thanks anyway :)

    @CG_Echtzeitschmiede You could possibly use a 'Shader Function' for each of your effects which can be called in all of your shaders. It still means you have to reference the effect shader functions in all the shaders you're using, but you only need to create the shader nodes once.

    The "Animated Fire" official example shows how shader functions can be used.
     
  21. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    No problem, glad to help!

    Regarding your current question, I'm not sure that I understand your intent as I'm not fully familiar with Blender, but can't you simply add a channel 3?


    A practical way to achieve this would be similar to our ForceShield sample, in which you work with a script in order to activate an effect within the shader as a projectile his the material's surface. Feel free to check it our for further insight and to share any questions you might have regarding it!

    As sazberryftw was kind enough to mention, you may choose to create the effects separately as Shader Functions, so that you may re-use each of them across different materials as needed, instead of having one shader with all the effects built-in.
     
  22. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    Hello,

    I just found a bug when using Keyword Enums. When using the following setup, I get the these errors:
    - Shader error in 'Test': undefined variable "ase_worldlightDir" unable to find compatible overloaded function "dot(error, float3)" at line 79 (on d3d9)
    - Shader error in 'Test': undefined variable "ase_worldPos" at line 84 (on d3d9)
    - Shader error in 'Test': undefined variable "ase_worldlightDir" unable to find compatible overloaded function "normalize(error)" at line 85 (on d3d9)

    If I connect any of the shader function outputs to the Custom Lighting port, everything if working fine.
    Shaders attached.

    upload_2018-3-19_19-2-57.png

    Thanks!
     

    Attached Files:

  23. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Apologies for having missed your question!

    Yes, this is definitely possible and I've registered your request, thanks! The developers will look into it as soon as possible!



    Thank you so much for taking the time to report this issue, I've just confirmed it on my end and have escalated it to the developers, we'll let you know as soon as we've fixed it.
     
  24. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Hi all,

    May I ask a simple question, is it currently possible to expose a property as a checkbox? Or do I need to use a int value instead?

    (I should note the Toggle Switch doesn't seem to expose a property in material?)

    Thx

    EDIT: ah I forgot to connect node to output base, which is why the property is not showing
     
    Last edited: Mar 20, 2018
  25. sazberryftw

    sazberryftw

    Joined:
    Dec 12, 2016
    Posts:
    39
    You can do this by using the attributes on a node. On the left panel you will see "Toggle" under attributes. Just enable this and your float will appear as a checkbox in the inspector. :)

    Capture.PNG
     
    bitinn likes this.
  26. CG_Echtzeitschmiede

    CG_Echtzeitschmiede

    Joined:
    Feb 19, 2015
    Posts:
    93
    Thank you, yes we already use shader functions, they are great indeed!

    Thank you, we will use shader functions then, this should work fine for our project.
     
  27. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    We've fixed the reported issue and it will become available in the next build soon, thank you again for reporting it to us!

    Regarding your shader, the Legacy Diffuse and Legacy Specular functions are using indirect light nodes in the wrong mode, since you're using a world normal as an input and the nodes are accepting tangent normals, so switching the "space" in those nodes to world space for this setup to work properly should suffice.


    Hey there, glad to know you resolved the situation, thank you for sharing!

    Just for clarification, most nodes are required to be connected to the output node otherwise they'll simply be "left out" of the shader code, with a few exceptions such as property nodes that have the auto register mode.


    Thanks for sharing this!


    Good to know that Shader Functions are a viable solution for your workflow, let me know if you have any further questions!
     
  28. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    509
    You are welcome! Glad to hear that is fixed, thanks!
    I totally forgot about the Indirect Nodes, I just quickly grabbed the functions from another project. Thanks again!
     
  29. Wekthor

    Wekthor

    Joined:
    Apr 30, 2011
    Posts:
    165
    Thanks, the link was helpful and i tried some of the textures from there. I have one more realy basic question, but unfortunately i was not able to figure it out. I have to be using Texture Object node for the pattern, i get error when i use Texture Sample ( because its output is RGBA ). How would i setup tiling for the Texture Object ? I wanted to use Texture Sampler because tiling is already there, but i am not sure how to convert RGBA to Texture for the Dither node.

    Thanks.
     

    Attached Files:

  30. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Hi,

    Is there a grayscale to normal map node (I am trying to convert a grayscale decal map into a normal map for blending)

    If not, may I ask is it because the cost for performing it at real-time are too high (compare to simpler node like lerp or multiply)?

    Thx
     
  31. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Another question (sorry!):

    Unlike Standard shader it seems like I am not able to expose the Render Mode option to inspector.

    Is the right way to have 2 identical shaders? Or can I somehow avoid this shader code duplication?
     
  32. Amplify_Paulo

    Amplify_Paulo

    Joined:
    Jul 13, 2017
    Posts:
    297
    With these latest version there's a "Normal Create" shader function which does just that, it generates a normal map from a greyscale image.

    Do you mean the blend mode? If yes, we are still working on it when we first added the "exposed variables" features a few versions ago. The reason it's taking longer for those options is that we can safely expose the blends options but not the main mode like opaque or transparent. In unity standard material even those modes are "faked", meaning, the material inspector is actually setting various different options and keywords to make it transparent for instance. So we need to evaluate if we want to do that since we don't want the shaders to be tied to the inspector.
    You don't setup tilling for that because the tilling is implicit to the size of the image and your screen resolution. If you want to increase the size of the pattern you need to increase the pattern itself. We could add more controls to add tilling and scale to the dither node but you would still be bound by some of the image properties like the the image filtering. I'll think if there's some way to add those controls that make sense, for now tho, just resize your patterns to a sensible resolution, like 2x or 3x the original size in photoshop using nearest neighbor.
     
    bitinn likes this.
  33. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    Thx a lot @Amplify_Paulo I will look into the latest version!

    If I were to benchmark a shader (say, to estimate the cost of Normal Create node), do you have any specific recommendation?
     
  34. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    Hey guys, so I started looking at making of templates, and I'm honestly confused as hell on how I add inputs to the master node. I'm normally not a shader programmer and I wonder what is the exact process in adding these parameters.

    Thanks.
     
  35. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    To quote a previous answer that is related to your question: There are a few tools that allow for a certain degree of benchmarking, such as AMD's Shader Analyzer, RenderDoc and GPUOpen, most of it boils down to experience and knowledge on shader language, as shader performance will ultimately depend on the complexity of the created networks and specific considerations such as using the lowest precision possible on each data type and performing multiplications instead of divisions, for example.

    For now, Multi-Pass templates require manual handling of the shader code in order to set them up. We do plan to add additional sample templates in the near future, as well as more information and tutorials regarding this new feature.

    Also, have you had the opportunity to check our latest update on the Multi-Pass documentation?
    We've recently provided an example on how to create an outline shader template with Multi-Pass. Feel free to take a look and don't hesitate to let us know if there's something that isn't quite clear or you don't fully understand.

    On a sidenote, we are hoping to also extend Multi-Pass to Surface Shaders, but only as soon as we feel the template system is robust enough.
     
    KRGraphics likes this.
  36. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,394
    Is the autoregister functionality on the devevelopment plan? any time estimate?

    Lennart
     
  37. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467

    I'll have to take a look at that.
     
  38. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello Lennart, you may currently inject pragmas in templates through the "Additional Pragmas" option that you can find within the Master Node's node parameters. Although I can't provide any estimates on the requested feature, rest assured that the request has been registered and that we'll get back in touch as soon as we have any further developments, thanks!
     
  39. ekergraphics

    ekergraphics

    Joined:
    Feb 22, 2017
    Posts:
    257
    I'm trying to create a simple unlit surface shader that takes a texture with alpha but also has backface culling.

    But when I choose surface and unlit, the albedo input disappear. What am I missing?

    There's a unlit transparent shader built-into Unity, but it doesn't have backface culling, and that one takes the texture via albedo...
     
  40. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello, do you mean that you want your unlit shader in ASE to be double sided?
    If that is the case, you simply need to set the Cull Mode to Off in the Output Node's parameters, as per the following screenshot:



    Connecting your texture to the Emission port should provide the same behavior as Unity's standard unlit shader. If this is not the information you were looking for, could you share further details on the effect you're hoping to achieve, in order for us to best help you? Thanks!
     
    Last edited: Mar 22, 2018
    ekergraphics likes this.
  41. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    30
    Hi guys,

    Is there any documentation on how the Box Mask node works?

    also, not sure this is even a bug or anything but I've found a variable that I think it's not initialized inside your UIDefault template

    v2f vert( appdata_t IN /*ase_vert_input*/ )
    {
    v2f OUT;
    UNITY_SETUP_INSTANCE_ID(v); // Where is "v" declared? there is not even a reference of "v" through the rest of the code
    ...
    }


    while in Unity UI-Default shader you can see it looks its properly declared:

    v2f vert(appdata_t v)
    {
    v2f OUT;
    UNITY_SETUP_INSTANCE_ID(v);
    ...
    }


    or even in your DefaultUnlit template:

    v2f vert ( appdata v /*ase_vert_input*/)
    {
    v2f o;
    UNITY_SETUP_INSTANCE_ID(v);
    ...
    }
     
  42. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    30
    I'm trying to do a simple panning animation using sprites contained on atlases. The solution below works fine with a single sprite but when I start using packed sprites and then I hit play it simply breaks.

    I know the problem is due to the sprite UV being different when using an atlas, but I haven't figured out yet how I could calculate the proper UV and pan it. Any hints on how this could be achieved?

    Thanks!

    upload_2018-3-22_19-13-56.png
     
  43. ekergraphics

    ekergraphics

    Joined:
    Feb 22, 2017
    Posts:
    257
    It was the opposite actually (since the built-in one is double sided), but your picture showed me the solution. I was a bit confused about having to plug the texture into emission, that's all. Thank you!
     
  44. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Hello, unfortunately we don't have any documentation regarding this specific function, so I've set up a simple example on how you can use it, let me know if you have any further questions as I'll be happy to elaborate!



    Regarding the uninitialized variable, you're absolutely right and we've just updated the code, thanks!


    Hey there, you'll have to add the Custom UVs via script, similarly to what we're doing in the SpriteMask sample.
    Please check the script and materials within that sample folder and let me know if it helps, or if you have any further questions.


    Oh, no problem, glad I was still able to help!
     
  45. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    30
    that solved the UV problem. After taking a better look, I think that the panner wont work with an atlases, but I should be able to work in another solution using the custom UV.

    Thanks!
     
  46. Amplify_RnD_Rick

    Amplify_RnD_Rick

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

    We've just uploaded a new build into our website.

    Here are the release notes.

    Release Notes v1.5.1 dev 01:
    • Fixes:
      • Fixed 'Static Switch' node not properly generating Enum code in the correct order
      • Fixed normal generation issue on 'Standard Surface Light' node
      • Fixed issue when attempting to load shader using inexistent template on project folder
        • Now fall-backing to Standard Surface when template is not found
      • Fixed issue capturing properties with attributes on templates
      • Fixed incorrect tool-tip on 'Template Multi-Pass Switch' node
      • Fixed issue on normal generation over 'Fresnel' node
      • Fixed initialization issue on Default UI template
      • Fixed issue with accessing uninitialized textures on 'Triplanar Sample' node
      • Fixed preview issue on 'Template Parameter' node
      • Fixed issue locking picker on texture type nodes to current type when auto-cast is on
    • Improvements:
      • Improved 'Break To Components' generated code
      • Preventing duplicates/re-definition of Pragmas, Defines and Includes over templates
    This build was also submitted to the Unity Asset Store, so it will be also over there shortly.

    Hope all of you amazing people have a great weekend and happy shader creations!
     
    Last edited: Mar 24, 2018
    KRGraphics likes this.
  47. Amplify_RnD_Rick

    Amplify_RnD_Rick

    Joined:
    Feb 15, 2016
    Posts:
    528
    Hey everyone,

    Let's start a new week with a fresh new build over our website.

    Here are the release notes.
    Release Notes v1.5.1 dev 02:
    • Fixes:
      • Fixed issue with 'Standard Surface Light' not taking Normal Space option into account
      • Fixed minor issue over 'Outline' node
      • Fixed issue on Undo not resetting correctly ports internal values
      • Fixed issue on incorrectly assigning main output node status into copy-pasted 'Function Output' nodes
    • Improvements:
      • Added custom attributes to 'Static Switch' node
      • Custom Material Inspector now properly copies texture scale and offset values
    Happy shader creations!
     
  48. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    This is awesome. I think I want to work on shaders for teeth and blood flow maps
     
    Amplify_RnD_Rick likes this.
  49. OP3NGL

    OP3NGL

    Joined:
    Dec 10, 2013
    Posts:
    267
    how to write shader for holosight/RDS/EOtech?
     
  50. Amplify_Borba

    Amplify_Borba

    Joined:
    Jul 24, 2017
    Posts:
    538
    Thanks! Looking forward to see those in action!


    While there should be several different ways of implementing such an effect, a simple setup that should help you get started would involve a transparent plane with an opacity mask, as per the node setup below: