Пример #1
0
		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":
		}
Пример #2
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 ):
		}