public override void SetPreviewInputs() { base.SetPreviewInputs(); if (Value == null) { if (m_defaultId == -1) { m_defaultId = Shader.PropertyToID("_Default"); } PreviewMaterial.SetInt(m_defaultId, (( int )m_defaultTextureValue) + 1); } else { if (m_defaultId == -1) { m_defaultId = Shader.PropertyToID("_Default"); } PreviewMaterial.SetInt(m_defaultId, 0); if (m_typeId == -1) { m_typeId = Shader.PropertyToID("_Type"); } if (Value is Cubemap) { PreviewMaterial.SetInt(m_typeId, 3); if (m_cachedSamplerIdCube == -1) { m_cachedSamplerIdCube = Shader.PropertyToID("_Cube"); } PreviewMaterial.SetTexture(m_cachedSamplerIdCube, Value as Cubemap); } else if (Value is Texture2DArray) { PreviewMaterial.SetInt(m_typeId, 4); if (m_cachedSamplerIdArray == -1) { m_cachedSamplerIdArray = Shader.PropertyToID("_Array"); } PreviewMaterial.SetTexture(m_cachedSamplerIdArray, Value as Texture2DArray); } else if (Value is Texture3D) { PreviewMaterial.SetInt(m_typeId, 2); if (m_cachedSamplerId3D == -1) { m_cachedSamplerId3D = Shader.PropertyToID("_Sampler3D"); } PreviewMaterial.SetTexture(m_cachedSamplerId3D, Value as Texture3D); } else { PreviewMaterial.SetInt(m_typeId, 1); if (m_cachedSamplerId == -1) { m_cachedSamplerId = Shader.PropertyToID("_Sampler"); } PreviewMaterial.SetTexture(m_cachedSamplerId, Value); } } }
public override void SetPreviewInputs() { base.SetPreviewInputs(); PreviewMaterial.SetVector(m_maskId, m_maskValue); }
void UpdateFromId() { if (m_shaderProperties != null) { if (m_shaderProperties.Count == 0) { for (int i = 0; i < 4; i++) { m_containerGraph.DeleteConnection(false, UniqueId, i, false, true); } m_headerColor = UIUtils.GetColorFromCategory("Default"); m_content.text = "None"; m_additionalContent.text = string.Empty; m_previewMaterialPassId = 1; PreviewMaterial.SetFloat(FloatPropertyId, 0); m_showPreview = false; m_drawPreviewExpander = false; m_outputPorts[0].ChangeProperties("None", WirePortDataType.FLOAT, false); ConfigurePorts(); return; } m_drawPreviewExpander = true; bool areCompatible = TemplateHelperFunctions.CheckIfCompatibles(m_outputPorts[0].DataType, m_shaderProperties[m_currentPropertyIdx].PropertyDataType); switch (m_shaderProperties[m_currentPropertyIdx].PropertyDataType) { case WirePortDataType.SAMPLER1D: case WirePortDataType.SAMPLER2D: case WirePortDataType.SAMPLER3D: case WirePortDataType.SAMPLERCUBE: m_outputPorts[0].ChangeProperties("Tex", m_shaderProperties[m_currentPropertyIdx].PropertyDataType, false); m_headerColor = UIUtils.GetColorFromCategory("Textures"); break; case WirePortDataType.INT: case WirePortDataType.FLOAT: m_outputPorts[0].ChangeProperties(Constants.EmptyPortValue, m_shaderProperties[m_currentPropertyIdx].PropertyDataType, false); m_headerColor = UIUtils.GetColorFromCategory("Constants And Properties"); break; case WirePortDataType.FLOAT4: m_outputPorts[0].ChangeProperties("XYZW", m_shaderProperties[m_currentPropertyIdx].PropertyDataType, false); m_headerColor = UIUtils.GetColorFromCategory("Constants And Properties"); break; case WirePortDataType.COLOR: m_outputPorts[0].ChangeProperties("RGBA", m_shaderProperties[m_currentPropertyIdx].PropertyDataType, false); m_headerColor = UIUtils.GetColorFromCategory("Constants And Properties"); break; default: case WirePortDataType.OBJECT: case WirePortDataType.FLOAT3x3: case WirePortDataType.FLOAT4x4: m_outputPorts[0].ChangeProperties("Out", m_shaderProperties[m_currentPropertyIdx].PropertyDataType, false); m_headerColor = UIUtils.GetColorFromCategory("Constants And Properties"); break; } if (!areCompatible) { for (int i = 0; i < 4; i++) { m_containerGraph.DeleteConnection(false, UniqueId, i, false, true); } } ConfigurePorts(); m_propertyName = m_shaderProperties[m_currentPropertyIdx].PropertyName; m_content.text = m_shaderProperties[m_currentPropertyIdx].PropertyInspectorName; m_propertyNameId = Shader.PropertyToID(m_propertyName); m_typeName = TypeLabelStr + m_shaderProperties[m_currentPropertyIdx].PropertyType.ToString(); if (m_shaderProperties[m_currentPropertyIdx].PropertyType != PropertyType.Global) { m_propertyNameLabel = PropertyNameStr + m_shaderProperties[m_currentPropertyIdx].PropertyName; } m_sizeIsDirty = true; Material currMat = m_containerGraph.CurrentMaterial; if (currMat != null) { if (m_shaderProperties[m_currentPropertyIdx].PropertyType == PropertyType.Global) { m_previewMaterialPassId = 0; if (!m_showErrorMessage && m_showPreview) { ShowTab(NodeMessageType.Info, WarningStr); } } else { if (m_showErrorMessage && m_errorMessageTypeIsError != NodeMessageType.Error) { HideTab(); } switch (m_shaderProperties[m_currentPropertyIdx].PropertyDataType) { case WirePortDataType.INT: m_previewMaterialPassId = 0; break; case WirePortDataType.FLOAT: m_previewMaterialPassId = 1; break; case WirePortDataType.FLOAT4: case WirePortDataType.COLOR: m_previewMaterialPassId = 2; break; case WirePortDataType.SAMPLER2D: m_previewMaterialPassId = 3; break; case WirePortDataType.SAMPLER3D: m_previewMaterialPassId = 4; break; case WirePortDataType.SAMPLERCUBE: m_previewMaterialPassId = 5; break; default: PreviewMaterial.SetPass(0); break; } } } CheckWarningState(); } }
public override void SetPreviewInputs() { if (m_containerGraph.CurrentCanvasMode != NodeAvailability.TemplateShader) { return; } if (m_shaderProperties == null || m_currentPropertyIdx >= m_shaderProperties.Count) { return; } if (m_shaderProperties[m_currentPropertyIdx].PropertyType == PropertyType.Global) { m_additionalContent.text = string.Empty; PreviewMaterial.SetInt(IntPropertyId, 0); return; } Material currMat = m_containerGraph.CurrentMaterial; if (currMat != null && currMat.HasProperty(m_propertyNameId)) { switch (m_shaderProperties[m_currentPropertyIdx].PropertyDataType) { case WirePortDataType.INT: { int value = currMat.GetInt(m_propertyNameId); SetAdditonalTitleText(string.Format(Constants.SubTitleValueFormatStr, GenerateTitle(value))); PreviewMaterial.SetInt(IntPropertyId, value); } break; case WirePortDataType.FLOAT: { float value = currMat.GetFloat(m_propertyNameId); SetAdditonalTitleText(string.Format(Constants.SubTitleValueFormatStr, GenerateTitle(value))); PreviewMaterial.SetFloat(FloatPropertyId, value); } break; case WirePortDataType.FLOAT4: { Vector4 value = currMat.GetVector(m_propertyNameId); SetAdditonalTitleText(string.Format(Constants.SubTitleValueFormatStr, GenerateTitle(value.x, value.y, value.z, value.w))); PreviewMaterial.SetVector(VectorPropertyId, value); } break; case WirePortDataType.COLOR: { Color value = currMat.GetColor(m_propertyNameId); SetAdditonalTitleText(string.Format(Constants.SubTitleValueFormatStr, GenerateTitle(value.r, value.g, value.b, value.a))); PreviewMaterial.SetColor(VectorPropertyId, value); } break; case WirePortDataType.SAMPLER2D: { Texture value = currMat.GetTexture(m_propertyNameId); if (value) { SetAdditonalTitleText(string.Format(Constants.SubTitleValueFormatStr, value.name)); } else { SetAdditonalTitleText(string.Empty); } PreviewMaterial.SetTexture(Sampler2DPropertyId, value); } break; case WirePortDataType.SAMPLER3D: { Texture value = currMat.GetTexture(m_propertyNameId); if (value) { SetAdditonalTitleText(string.Format(Constants.SubTitleValueFormatStr, value.name)); } else { SetAdditonalTitleText(string.Empty); } PreviewMaterial.SetTexture(Sampler3DPropertyId, value); } break; case WirePortDataType.SAMPLERCUBE: { Texture value = currMat.GetTexture(m_propertyNameId); if (value) { SetAdditonalTitleText(string.Format(Constants.SubTitleValueFormatStr, value.name)); } else { SetAdditonalTitleText(string.Empty); } PreviewMaterial.SetTexture(SamplerCubePropertyId, value); } break; } } else { SetAdditonalTitleText(string.Empty); } }
public override void SetPreviewInputs() { base.SetPreviewInputs(); if (m_cachedTypeId == -1) { m_cachedTypeId = Shader.PropertyToID("_GType"); } if (m_cachedTimeId == -1) { m_cachedTimeId = Shader.PropertyToID("_GTime"); } if (m_cachedColorNumId == -1) { m_cachedColorNumId = Shader.PropertyToID("_GColorNum"); } if (m_cachedAlphaNumId == -1) { m_cachedAlphaNumId = Shader.PropertyToID("_GAlphaNum"); } PreviewMaterial.SetTexture(m_cachedTimeId, m_inputPorts[1].InputPreviewTexture(ContainerGraph)); Gradient curGrad = m_blankGrandient; if (m_gradientNode != null) { curGrad = m_gradientNode.Gradient; } PreviewMaterial.SetInt(m_cachedTypeId, (int)curGrad.mode); PreviewMaterial.SetInt(m_cachedColorNumId, curGrad.colorKeys.Length); PreviewMaterial.SetInt(m_cachedAlphaNumId, curGrad.alphaKeys.Length); for (int i = 0; i < 8; i++) { if (i < curGrad.colorKeys.Length) { m_auxVec4.x = curGrad.colorKeys[i].color.r; m_auxVec4.y = curGrad.colorKeys[i].color.g; m_auxVec4.z = curGrad.colorKeys[i].color.b; m_auxVec4.w = curGrad.colorKeys[i].time; PreviewMaterial.SetVector("_Col" + i, m_auxVec4); } else { PreviewMaterial.SetVector("_Col" + i, Vector4.zero); } } for (int i = 0; i < 8; i++) { if (i < curGrad.alphaKeys.Length) { m_auxVec4.x = curGrad.alphaKeys[i].alpha; m_auxVec4.y = curGrad.alphaKeys[i].time; PreviewMaterial.SetVector("_Alp" + i, m_auxVec4); } else { PreviewMaterial.SetVector("_Alp" + i, Vector4.zero); } } }
public override void SetPreviewInputs() { base.SetPreviewInputs(); PreviewMaterial.SetInt(m_planeId, (int)m_selectedType); }
public override void SetPreviewInputs() { if (Fnode == null) { m_ignoreConnection = false; CheckSpherePreview(); } else { var input = Fnode.GetInput(this); if (input != null && (!InputPorts[0].IsConnected || input.IsConnected)) { m_ignoreConnection = true; InputPorts[0].PreparePortCacheID(); Fnode.SetPreviewInput(input); if (input.ExternalReferences.Count > 0) { SpherePreview = Fnode.ContainerGraph.GetNode(input.ExternalReferences[0].NodeId).SpherePreview; } else { SpherePreview = false; } PreviewMaterial.SetTexture(InputPorts[0].CachedPropertyId, input.InputPreviewTexture(Fnode.ContainerGraph)); } else { m_ignoreConnection = false; CheckSpherePreview(); } } if (!m_ignoreConnection) { base.SetPreviewInputs(); } for (int i = 0; i < OutputPorts[0].ExternalReferences.Count; i++) { ContainerGraph.GetNode(OutputPorts[0].ExternalReferences[i].NodeId).OnNodeChange(); } if (m_typeId == -1) { m_typeId = Shader.PropertyToID("_Type"); } if (m_inputPorts[0].DataType == WirePortDataType.FLOAT || m_inputPorts[0].DataType == WirePortDataType.INT) { PreviewMaterial.SetInt(m_typeId, 1); } else if (m_inputPorts[0].DataType == WirePortDataType.FLOAT2) { PreviewMaterial.SetInt(m_typeId, 2); } else if (m_inputPorts[0].DataType == WirePortDataType.FLOAT3) { PreviewMaterial.SetInt(m_typeId, 3); } else { PreviewMaterial.SetInt(m_typeId, 0); } }