public override string GenerateShaderForOutput(int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar) { if (dataCollector.IsFragmentCategory) { UIUtils.ShowMessage(UniqueId, ErrorMessage, MessageSeverity.Error); return(m_outputPorts[0].ErrorValue); } if (m_outputPorts[0].IsLocalValue(dataCollector.PortCategory)) { return(m_outputPorts[0].ErrorValue); } m_outputPorts[0].SetLocalValue("0", dataCollector.PortCategory); string vertexPosValue = dataCollector.IsTemplate ? dataCollector.TemplateDataCollectorInstance.GetVertexPosition(WirePortDataType.OBJECT, CurrentPrecisionType) : "v.vertex"; string vertexNormalValue = dataCollector.IsTemplate ? dataCollector.TemplateDataCollectorInstance.GetVertexNormal(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.IsFragmentCategory) { UIUtils.ShowMessage(ErrorMessage); return("0"); } if (m_outputPorts[0].IsLocalValue) { return("0"); } m_outputPorts[0].SetLocalValue("0"); string vertexPosValue = dataCollector.IsTemplate ? dataCollector.TemplateDataCollectorInstance.GetVertexPosition(WirePortDataType.FLOAT3) : "v.vertex"; string vertexNormalValue = dataCollector.IsTemplate ? dataCollector.TemplateDataCollectorInstance.GetVertexNormal() : "v.normal"; BillboardOpHelper.FillDataCollector(ref dataCollector, m_billboardType, m_rotationIndependent, vertexPosValue, vertexNormalValue); return("0"); }