123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- // Amplify Shader Editor - Visual Shader Editing Tool
- // Copyright (c) Amplify Creations, Lda <info@amplify.pt>
- using System;
- using UnityEngine;
- namespace AmplifyShaderEditor
- {
- [Serializable]
- public class SurfaceShaderINParentNode : ParentNode
- {
- [SerializeField]
- protected SurfaceInputs m_currentInput;
- [SerializeField]
- protected string m_currentInputValueStr;
- [SerializeField]
- protected string m_currentInputDecStr;
- protected override void CommonInit( int uniqueId )
- {
- base.CommonInit( uniqueId );
- m_currentInput = SurfaceInputs.UV_COORDS;
- m_textLabelWidth = 65;
- m_customPrecision = true;
- }
- public override void DrawProperties()
- {
- base.DrawProperties();
- DrawPrecisionProperty();
- }
- //This needs to be called on the end of the CommonInit on all children
- protected void InitialSetup()
- {
- m_currentInputValueStr = Constants.InputVarStr + "." + UIUtils.GetInputValueFromType( m_currentInput );
-
- string outputName = "Out";
- switch ( m_currentInput )
- {
- case SurfaceInputs.DEPTH:
- {
- AddOutputPort( WirePortDataType.FLOAT, outputName );
- }
- break;
- case SurfaceInputs.UV_COORDS:
- {
- outputName = "UV";
- AddOutputVectorPorts( WirePortDataType.FLOAT2, outputName );
- }
- break;
- case SurfaceInputs.UV2_COORDS:
- {
- outputName = "UV";
- AddOutputVectorPorts( WirePortDataType.FLOAT2, outputName );
- }
- break;
- case SurfaceInputs.VIEW_DIR:
- {
- outputName = "XYZ";
- AddOutputVectorPorts( WirePortDataType.FLOAT3, outputName );
- }
- break;
- case SurfaceInputs.COLOR:
- {
- outputName = "RGBA";
- AddOutputVectorPorts( WirePortDataType.FLOAT4, outputName );
- }
- break;
- case SurfaceInputs.SCREEN_POS:
- {
- outputName = "XYZW";
- AddOutputVectorPorts( WirePortDataType.FLOAT4, outputName );
- }
- break;
- case SurfaceInputs.WORLD_POS:
- {
- outputName = "XYZ";
- AddOutputVectorPorts( WirePortDataType.FLOAT3, outputName );
- }
- break;
- case SurfaceInputs.WORLD_REFL:
- {
- outputName = "XYZ";
- AddOutputVectorPorts( WirePortDataType.FLOAT3, outputName );
- }
- break;
- case SurfaceInputs.WORLD_NORMAL:
- {
- outputName = "XYZ";
- AddOutputVectorPorts( WirePortDataType.FLOAT3, outputName );
- }
- break;
- }
- }
- public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalVar )
- {
- dataCollector.AddToInput( UniqueId, m_currentInput, UIUtils.CurrentWindow.CurrentGraph.CurrentPrecision );
- switch ( m_currentInput )
- {
- case SurfaceInputs.VIEW_DIR:
- case SurfaceInputs.WORLD_REFL:
- case SurfaceInputs.WORLD_NORMAL:
- {
- dataCollector.AddToInput( UniqueId, SurfaceInputs.INTERNALDATA, addSemiColon: false );
- }
- break;
- case SurfaceInputs.WORLD_POS:
- case SurfaceInputs.DEPTH:
- case SurfaceInputs.UV_COORDS:
- case SurfaceInputs.UV2_COORDS:
- case SurfaceInputs.COLOR:
- case SurfaceInputs.SCREEN_POS: break;
- };
- return GetOutputVectorItem( 0, outputId, m_currentInputValueStr );
- }
- }
- }
|