public void Compile(ShaderGraphMaterial material) { var t = GatherShaderGraphInstructions(); material.Compile(); // TODO: saving, caching? etc }
public void Compile(ShaderGraphMaterial shader) { if ((int)m_ChannelMask < (int)m_OutParam.Type || (int)m_ChannelMask >= (int)m_OutParam.Type + 1) { throw new TypeMismatch(shader.CurrentInstructionIndex, m_OutParam.Type.ToString(), ((VariableType)((int)m_ChannelMask)).ToString()); } shader.AddTextureSlot(m_TextureType, m_TextureSlot); shader.AddSamplerSlot(m_SamplerSlot); shader.AddSetValue(m_OutParam, $"{m_TextureSlot}.Sample({m_SamplerSlot}, {m_UVSlot}).{m_ChannelMask.ToString().ToLower()}"); }
public void TestItAll() { var TextureSample = new ShaderGraphMaterial.VariableDefinition() { Name = "TextureSample", Type = ShaderGraphMaterial.VariableType.FLOAT4, }; var instructions = new List <ShaderGraphMaterial.IBaseShaderInstruction>() { new ShaderGraphMaterial.AddVariableInstruction(TextureSample), /*new ShaderGraphMaterial.SampleTextureInstruction("LinearSampler", * ShaderGraphMaterial.TextureType.Texture2D, * "Texture0", "input.uv0", * ShaderGraphMaterial.Channel.RGBA, * TextureSample), * new ShaderGraphMaterial.SetVariableValueMask(ShaderGraphMaterial.VariableDefinition.EmissiveColor, * TextureSample, ShaderGraphMaterial.Channel.RGB),*/ new ShaderGraphMaterial.SetVariableValue(ShaderGraphMaterial.VariableDefinition.EmissiveColor, "float3(0.0f, 0.533f, 1.0f)"), new ShaderGraphMaterial.SetVariableValueMask(ShaderGraphMaterial.VariableDefinition.Opacity, TextureSample, ShaderGraphMaterial.Channel.A), }; MetaMaterial mm = new MetaMaterial() { materialDomain = MetaMaterial.MaterialDomain.Surface, blendMode = MetaMaterial.BlendMode.Translucent, shadingMode = MetaMaterial.ShadingMode.Unlit, cullMode = MetaMaterial.CullMode.None, Wireframe = true, }; ShaderGraphMaterial material = new ShaderGraphMaterial("TestShader", mm, instructions); material.AddInstruction(new ShaderGraphMaterial.SetVariableValue( ShaderGraphMaterial.VariableDefinition.Opacity, "0.7f")); ShaderGraphCompiler compiler = new ShaderGraphCompiler(); compiler.Compile(material); }
public void Compile(ShaderGraphMaterial shader) { shader.AddSetValue(m_Variable, m_Value.Name.ToString() + "." + m_Mask.ToString().ToLower()); }
public void Compile(ShaderGraphMaterial shader) { shader.AddSetValue(m_Variable, m_Value.ToString()); }
public void Compile(ShaderGraphMaterial shader) { shader.AddVariable(m_Definition); }