LuminanceNode.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. // Amplify Shader Editor - Visual Shader Editing Tool
  2. // Copyright (c) Amplify Creations, Lda <info@amplify.pt>
  3. using System;
  4. namespace AmplifyShaderEditor
  5. {
  6. [Serializable]
  7. [NodeAttributes( "Luminance", "Image Effects", "Calculates Luminance value from input")]
  8. public sealed class LuminanceNode : ParentNode
  9. {
  10. protected override void CommonInit( int uniqueId )
  11. {
  12. base.CommonInit( uniqueId );
  13. AddInputPort( WirePortDataType.FLOAT3, false, "RGB" );
  14. AddOutputPort( WirePortDataType.FLOAT, Constants.EmptyPortValue );
  15. m_previewShaderGUID = "81e1d8ffeec8a4b4cabb1094bc981048";
  16. }
  17. public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar )
  18. {
  19. if( m_outputPorts[ 0 ].IsLocalValue( dataCollector.PortCategory ) )
  20. return m_outputPorts[ 0 ].LocalValue( dataCollector.PortCategory );
  21. string value = m_inputPorts[ 0 ].GeneratePortInstructions( ref dataCollector );
  22. string grayscale = "Luminance(" + value + ")";
  23. RegisterLocalVariable( 0, grayscale, ref dataCollector, "luminance" + OutputId );
  24. return m_outputPorts[ 0 ].LocalValue( dataCollector.PortCategory );
  25. }
  26. }
  27. }