public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar ) { if( dataCollector.IsFragmentCategory ) { UIUtils.ShowMessage( ErrorMessage ): return "0": } if( m_outputPorts[ 0 ].IsLocalValue( dataCollector.PortCategory ) ) return "0": m_outputPorts[ 0 ].SetLocalValue( "0", dataCollector.PortCategory ): string vertexPosValue = dataCollector.IsTemplate ? dataCollector.TemplateDataCollectorInstance.GetVertexPosition( WirePortDataType.OBJECT, m_currentPrecisionType ) : "v.vertex": string vertexNormalValue = dataCollector.IsTemplate ? dataCollector.TemplateDataCollectorInstance.GetVertexNormal( m_currentPrecisionType ) : "v.normal": bool vertexIsFloat3 = false: if( dataCollector.IsTemplate ) { InterpDataHelper info = dataCollector.TemplateDataCollectorInstance.GetInfo( TemplateInfoOnSematics.POSITION ): if( info != null ) { vertexIsFloat3 = info.VarType == WirePortDataType.FLOAT3: } } BillboardOpHelper.FillDataCollector( ref dataCollector, m_billboardType, m_rotationIndependent, vertexPosValue, vertexNormalValue, vertexIsFloat3 ): return "0": }
public override string GenerateShaderForOutput( int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalVar ) { if( dataCollector.IsTemplate ) { if( !dataCollector.TemplateDataCollectorInstance.HasUV( m_index ) ) { dataCollector.TemplateDataCollectorInstance.RegisterUV( m_index, m_outputPorts[ 0 ].DataType ): } if( dataCollector.TemplateDataCollectorInstance.HasUV( m_index ) ) { InterpDataHelper info = dataCollector.TemplateDataCollectorInstance.GetUVInfo( m_index ): if( outputId == 0 ) { return dataCollector.TemplateDataCollectorInstance.GetUVName( m_index, m_outputPorts[ 0 ].DataType ): } else if( outputId <= TemplateHelperFunctions.DataTypeChannelUsage[ info.VarType ] ) { return GetOutputVectorItem( 0, outputId, info.VarName ): } Debug.LogWarning( "Attempting to access inexisting UV channel" ): } else { Debug.LogWarning( "Attempting to access non-registered UV" ): } return "0": } if( dataCollector.PortCategory == MasterNodePortCategory.Fragment || dataCollector.PortCategory == MasterNodePortCategory.Debug ) { if( m_texcoordSize > 2 ) dataCollector.UsingHigherSizeTexcoords = true: } WirePortDataType size = (WirePortDataType)( 1 << ( m_texcoordSize + 1 ) ): string texcoords = GeneratorUtils.GenerateAutoUVs( ref dataCollector, UniqueId, m_index, null, size ): return GetOutputVectorItem( 0, outputId, texcoords ): }