public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { var directLightGroups = context.GetParam(LightingKeys.DirectLightGroups); if (directLightGroups != null) { foreach(var directLightGroup in directLightGroups) { { var __mixinToCompose__ = (directLightGroup); var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "directLightGroups", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } var environmentLights = context.GetParam(LightingKeys.EnvironmentLights); if (environmentLights != null) { foreach(var environmentLight in environmentLights) { { var __mixinToCompose__ = (environmentLight); var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "environmentLights", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "A"); { var __mixinToCompose__ = "ABCSubEffect"; var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "SubCompute1", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = "ABCSubEffect"; var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "SubCompute2", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = "ABCSubEffect"; var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "SubComputes", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "LightSkyboxShader"); if (context.GetParam(LightSkyboxShaderKeys.LightDiffuseColor) != null) { { var __mixinToCompose__ = context.GetParam(LightSkyboxShaderKeys.LightDiffuseColor); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "lightDiffuseColor", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } if (context.GetParam(LightSkyboxShaderKeys.LightSpecularColor) != null) { { var __mixinToCompose__ = context.GetParam(LightSkyboxShaderKeys.LightSpecularColor); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "lightSpecularColor", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ParticleBaseEffect"); context.Mixin(mixin, "ParticleCustomShader"); if (context.GetParam(ParticleCustomShaderKeys.BaseColor) != null) { { var __mixinToCompose__ = context.GetParam(ParticleCustomShaderKeys.BaseColor); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "baseColor", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } if (context.GetParam(ParticleCustomShaderKeys.BaseIntensity) != null) { { var __mixinToCompose__ = context.GetParam(ParticleCustomShaderKeys.BaseIntensity); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "baseIntensity", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "A"); context.Mixin(mixin, "B"); if (context.GetParam(TestParameters.param1)) { context.Mixin(mixin, "C"); mixin.AddMacro("param2", context.GetParam(TestParameters.param2)); { var __mixinToCompose__ = "X"; var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "x", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } else { context.Mixin(mixin, "D"); mixin.AddMacro("Test", context.GetParam(TestParameters.param3)); { var __mixinToCompose__ = "Y"; var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "y", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "McIntoshOptimizedShader"); { var __subMixin = new ShaderMixinSource() { Parent = mixin }; context.PushComposition(mixin, "directionalBlurA", __subMixin); context.Mixin(__subMixin, "DepthAwareDirectionalBlurUtil", context.GetParam(DepthAwareDirectionalBlurKeys.Count), context.GetParam(DepthAwareDirectionalBlurKeys.TotalTap)); context.PopComposition(); } { var __subMixin = new ShaderMixinSource() { Parent = mixin }; context.PushComposition(mixin, "directionalBlurB", __subMixin); context.Mixin(__subMixin, "DepthAwareDirectionalBlurUtil", context.GetParam(DepthAwareDirectionalBlurKeys.Count), context.GetParam(DepthAwareDirectionalBlurKeys.TotalTap)); context.PopComposition(); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ToneMapShader"); { var __subMixin = new ShaderMixinSource() { Parent = mixin }; context.PushComposition(mixin, "ToneMapOperator", __subMixin); context.Mixin(__subMixin, context.GetParam(ColorTransformKeys.Shader)); context.PopComposition(); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ToneMapShader", context.GetParam(ToneMapKeys.AutoKey), context.GetParam(ToneMapKeys.AutoExposure)); { var __mixinToCompose__ = context.GetParam(ColorTransformKeys.Shader); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "ToneMapOperator", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "TransformationWAndVP"); context.Mixin(mixin, "AlbedoFlatShading"); { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, "ComputeColorTextureCubeBasic", TexturingKeys.TextureCube0); context.PopComposition(); } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "TransformationWAndVP"); context.Mixin(mixin, "AlbedoFlatShading"); if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse)); context.PopComposition(); } else { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, "ComputeColorTextureCubeReflect", TexturingKeys.TextureCube0); context.PopComposition(); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "SkyboxShader"); if (context.GetParam(SkyboxKeys.Shader) != null) { { var __subMixin = new ShaderMixinSource() { Parent = mixin }; context.PushComposition(mixin, "skyboxColor", __subMixin); context.Mixin(__subMixin, context.GetParam(SkyboxKeys.Shader)); context.PopComposition(); } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "A"); context.Mixin(mixin, "B"); context.Mixin(mixin, "C"); { var __mixinToCompose__ = "X"; var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "x", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ColorTransformGroupShader"); foreach(var colorTransform in context.GetParam(ColorTransformGroupKeys.Transforms)) { { var __mixinToCompose__ = "ColorTransformCompose"; var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "Transforms", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "MarchAttributes"); if (context.GetParam(MarchAttributesKeys.AttributeSamplers) != null) { foreach (var attr in context.GetParam(MarchAttributesKeys.AttributeSamplers)) { { var __mixinToCompose__ = (attr); var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "AttributeSamplers", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ColorTransformGroupShader"); foreach (var colorTransform in context.GetParam(ColorTransformGroupKeys.Transforms)) { context.PushParameters(colorTransform.Parameters); { var __mixinToCompose__ = "ColorTransformCompose"; var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "Transforms", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } context.PopParameters(); } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "TransformationWAndVP"); mixin.Mixin.AddMacro("MAX_VERTEX_COUNT", 9); context.Mixin(mixin, "CameraCube"); context.Mixin(mixin, "AlbedoFlatShading"); if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse)); context.PopComposition(); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "VoxelizeToFragments"); if (context.GetParam(VoxelizeToFragmentsKeys.Storage) != null) { { var __mixinToCompose__ = (context.GetParam(VoxelizeToFragmentsKeys.Storage)); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "Storage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } if (context.GetParam(VoxelizeToFragmentsKeys.RequireGeometryShader) == true) { mixin.AddMacro("RequireGeometryShader", true); mixin.AddMacro("GeometryShaderMaxVertexCount", context.GetParam(VoxelizeToFragmentsKeys.GeometryShaderMaxVertexCount)); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { if (context.GetParam(TestParameters.UseComputeColor2)) { context.Mixin(mixin, "ComputeColor2"); } else if (context.GetParam(TestParameters.UseComputeColorRedirect)) { context.Mixin(mixin, "ComputeColorRedirect"); { var __mixinToCompose__ = "ComputeColor2"; var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "ColorRedirect", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } else { context.Mixin(mixin, "ComputeColor"); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "XenkoEffectBase"); var extensionPixelStageSurfaceShaders = context.GetParam(MaterialKeys.PixelStageSurfaceShaders); if (extensionPixelStageSurfaceShaders != null) { context.Mixin(mixin, "MaterialSurfacePixelStageCompositor"); { var __mixinToCompose__ = (extensionPixelStageSurfaceShaders); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "materialPixelStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = context.GetParam(MaterialKeys.PixelStageStreamInitializer); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "streamInitializerPixelStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } var extensionPixelStageSurfaceFilter = context.GetParam(MaterialKeys.PixelStageSurfaceFilter); if (extensionPixelStageSurfaceFilter != null) { context.Mixin(mixin, (extensionPixelStageSurfaceFilter)); } } context.Mixin(mixin, "XenkoLighting"); if (context.ChildEffectName == "ShadowMapCaster") { context.Mixin(mixin, "ShadowMapCaster"); return; } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "TransformationWAndVP"); context.Mixin(mixin, "BRDFDiffuseBase"); context.Mixin(mixin, "BRDFSpecularBase"); context.Mixin(mixin, "AlbedoFlatShading"); if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse)); context.PopComposition(); } if (context.GetParam(MaterialParameters.HasSkinningPosition)) { mixin.Mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialParameters.SkinningMaxBones)); context.Mixin(mixin, "TransformationSkinning"); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "ShadingBase"); var extensionPreVertexStageSurfaceShaders = context.GetParam(MaterialKeys.VertexStageSurfaceShaders); if (extensionPreVertexStageSurfaceShaders != null) { context.Mixin(mixin, "MaterialSurfaceVertexStageCompositor"); { var __mixinToCompose__ = (extensionPreVertexStageSurfaceShaders); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "materialVertexStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = context.GetParam(MaterialKeys.VertexStageStreamInitializer); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "streamInitializerVertexStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } context.Mixin(mixin, "TransformationBase"); context.Mixin(mixin, "NormalStream"); context.Mixin(mixin, "TransformationWAndVP"); if (context.GetParam(MaterialKeys.HasNormalMap)) { context.Mixin(mixin, "NormalFromNormalMapping"); } else { context.Mixin(mixin, "NormalFromMesh"); } if (context.GetParam(MaterialKeys.HasSkinningPosition)) { mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialKeys.SkinningMaxBones)); context.Mixin(mixin, "TransformationSkinning"); if (context.GetParam(MaterialKeys.HasSkinningNormal)) { context.Mixin(mixin, "NormalMeshSkinning"); } if (context.GetParam(MaterialKeys.HasSkinningTangent)) { context.Mixin(mixin, "TangentMeshSkinning"); } if (context.GetParam(MaterialKeys.HasSkinningNormal)) { if (context.GetParam(MaterialKeys.HasNormalMap)) { context.Mixin(mixin, "NormalVSSkinningNormalMapping"); } else { context.Mixin(mixin, "NormalVSSkinningFromMesh"); } } } var extensionTessellationShader = context.GetParam(MaterialKeys.TessellationShader); if (extensionTessellationShader != null) { context.Mixin(mixin, (extensionTessellationShader)); var extensionDomainStageSurfaceShaders = context.GetParam(MaterialKeys.DomainStageSurfaceShaders); if (extensionDomainStageSurfaceShaders != null) { context.Mixin(mixin, "MaterialSurfaceDomainStageCompositor"); { var __mixinToCompose__ = (extensionDomainStageSurfaceShaders); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "materialDomainStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = context.GetParam(MaterialKeys.DomainStageStreamInitializer); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "streamInitializerDomainStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } var extensionPostVertexStage = context.GetParam(XenkoEffectBaseKeys.ExtensionPostVertexStageShader); if (extensionPostVertexStage != null) { context.Mixin(mixin, (extensionPostVertexStage)); } var targetExtensions = context.GetParam(XenkoEffectBaseKeys.RenderTargetExtensions); if (targetExtensions != null) { context.Mixin(mixin, (targetExtensions)); } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "TransformationWAndVP"); context.Mixin(mixin, "PositionVSStream"); var hasNormals = context.GetParam(MaterialParameters.NormalMap) != null; if (hasNormals) { context.Mixin(mixin, "NormalMapTexture"); { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "normalMap", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.NormalMap)); context.PopComposition(); } } else { context.Mixin(mixin, "NormalVSStream"); } context.Mixin(mixin, "BRDFDiffuseBase"); context.Mixin(mixin, "BRDFSpecularBase"); context.Mixin(mixin, "LightMultiDirectionalShadingPerPixel", 2); context.Mixin(mixin, "TransparentShading"); context.Mixin(mixin, "DiscardTransparent"); if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null) { { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "DiffuseLighting", __subMixin); context.Mixin(__subMixin, "ComputeBRDFDiffuseLambert"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse)); context.PopComposition(); } } if (context.GetParam(MaterialParameters.AlbedoSpecular) != null) { { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "SpecularLighting", __subMixin); context.Mixin(__subMixin, "ComputeBRDFColorSpecularBlinnPhong"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoSpecular", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoSpecular)); context.PopComposition(); } if (context.GetParam(MaterialParameters.SpecularPowerMap) != null) { context.Mixin(mixin, "SpecularPower"); { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "SpecularPowerMap", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularPowerMap)); context.PopComposition(); } } if (context.GetParam(MaterialParameters.SpecularIntensityMap) != null) { { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "SpecularIntensityMap", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularIntensityMap)); context.PopComposition(); } } } if (context.GetParam(MaterialParameters.HasSkinningPosition)) { if (context.GetParam(MaterialParameters.SkinningBones) > context.GetParam(MaterialParameters.SkinningMaxBones)) { context.SetParam(MaterialParameters.SkinningMaxBones, context.GetParam(MaterialParameters.SkinningBones)); } mixin.Mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialParameters.SkinningMaxBones)); context.Mixin(mixin, "TransformationSkinning"); if (context.GetParam(MaterialParameters.HasSkinningNormal)) { if (hasNormals) { context.Mixin(mixin, "TangentToViewSkinning"); } else { context.Mixin(mixin, "NormalVSSkinning"); } context.Mixin(mixin, "NormalSkinning"); } if (context.GetParam(MaterialParameters.HasSkinningTangent)) { context.Mixin(mixin, "TangentSkinning"); } } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "TransformationWAndVP"); context.Mixin(mixin, "BRDFDiffuseBase"); context.Mixin(mixin, "BRDFSpecularBase"); context.Mixin(mixin, "AlbedoFlatShading"); if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null) { { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "DiffuseColor", __subMixin); context.Mixin(__subMixin, "ComputeBRDFDiffuseLambert"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse)); context.PopComposition(); } } if (context.GetParam(MaterialParameters.AlbedoSpecular) != null) { { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "SpecularColor", __subMixin); context.Mixin(__subMixin, "ComputeBRDFColorSpecularBlinnPhong"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoSpecular", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoSpecular)); context.PopComposition(); } } if (context.GetParam(MaterialParameters.HasSkinningPosition)) { if (context.GetParam(MaterialParameters.SkinningBones) > context.GetParam(MaterialParameters.SkinningMaxBones)) { context.SetParam(MaterialParameters.SkinningMaxBones, context.GetParam(MaterialParameters.SkinningBones)); } mixin.Mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialParameters.SkinningMaxBones)); context.Mixin(mixin, "TransformationSkinning"); } if (context.GetParam(RenderingParameters.UseDeferred) && !context.GetParam(RenderingParameters.UseTransparent)) { context.Mixin(mixin, "GBufferPlugin"); context.Mixin(mixin, "LightDeferredShading"); } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "PositionVSGBuffer"); context.Mixin(mixin, "NormalVSGBuffer"); context.Mixin(mixin, "BRDFDiffuseBase"); context.Mixin(mixin, "BRDFSpecularBase"); { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "DiffuseColor", __subMixin); context.Mixin(__subMixin, "ComputeBRDFColorFresnel"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "DiffuseLighting", __subMixin); context.Mixin(__subMixin, "ComputeBRDFDiffuseLambert"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "SpecularColor", __subMixin); context.Mixin(__subMixin, "ComputeBRDFColor"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "SpecularLighting", __subMixin); context.Mixin(__subMixin, "ParadoxDeferredSpecular"); context.PopComposition(); } { var __subMixin = new ShaderMixinSourceTree() { Name = "ParadoxShadowPrepassLighting" }; context.BeginChild(__subMixin); context.Mixin(__subMixin, "ParadoxShadowPrepassLighting"); context.EndChild(); } context.Mixin(mixin, "DeferredLightingShader"); { var __subMixin = new ShaderMixinSourceTree() { Name = "ParadoxDirectPrepassLighting" }; context.BeginChild(__subMixin); context.Mixin(__subMixin, "ParadoxDirectPrepassLighting"); context.EndChild(); } { var __subMixin = new ShaderMixinSourceTree() { Name = "ParadoxSpotPrepassLighting" }; context.BeginChild(__subMixin); context.Mixin(__subMixin, "ParadoxSpotPrepassLighting"); context.EndChild(); } { var __subMixin = new ShaderMixinSourceTree() { Name = "ParadoxPointPrepassLighting" }; context.BeginChild(__subMixin); context.Mixin(__subMixin, "ParadoxPointPrepassLighting"); context.EndChild(); } }
public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context) { context.Mixin(mixin, "BRDFDiffuseBase"); context.Mixin(mixin, "BRDFSpecularBase"); if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null) { context.Mixin(mixin, "AlbedoDiffuseBase"); { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse)); context.PopComposition(); } if (context.GetParam(LightingKeys.MaxDirectionalLights) > 0 || context.GetParam(LightingKeys.MaxSpotLights) > 0 || context.GetParam(LightingKeys.MaxPointLights) > 0 || (context.GetParam(LightingKeys.ReceiveShadows) && context.GetParam(ShadowMapParameters.ShadowMaps) != null && context.GetParam(ShadowMapParameters.ShadowMaps).Length > 0)) { if (context.GetParam(LightingKeys.MaxDirectionalLights) > 0 || context.GetParam(LightingKeys.MaxSpotLights) > 0 || context.GetParam(LightingKeys.MaxPointLights) > 0) { context.Mixin(mixin, "GroupShadingBase"); if (context.GetParam(LightingKeys.MaxDirectionalLights) > 0) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushCompositionArray(mixin, "ShadingGroups", __subMixin); context.Mixin(__subMixin, "ParadoxDirectionalLightsShader"); context.PopComposition(); } if (context.GetParam(LightingKeys.MaxSpotLights) > 0) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushCompositionArray(mixin, "ShadingGroups", __subMixin); context.Mixin(__subMixin, "ParadoxSpotLightsShader"); context.PopComposition(); } if (context.GetParam(LightingKeys.MaxPointLights) > 0) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushCompositionArray(mixin, "ShadingGroups", __subMixin); context.Mixin(__subMixin, "ParadoxPointLightsShader"); context.PopComposition(); } } if (context.GetParam(LightingKeys.ReceiveShadows) && context.GetParam(ShadowMapParameters.ShadowMaps) != null && context.GetParam(ShadowMapParameters.ShadowMaps).Length > 0) { context.Mixin(mixin, "ShadowMapReceiver"); foreach (var ____1 in context.GetParam(ShadowMapParameters.ShadowMaps)) { context.PushParameters(____1); if (context.GetParam(ShadowMapParameters.LightType) == LightType.Directional) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushCompositionArray(mixin, "shadows", __subMixin); context.Mixin(__subMixin, "ParadoxDirectionalShadowLightsShader"); context.PopComposition(); } else if (context.GetParam(ShadowMapParameters.LightType) == LightType.Spot) { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushCompositionArray(mixin, "shadows", __subMixin); context.Mixin(__subMixin, "ParadoxSpotShadowLightsShader"); context.PopComposition(); } context.PopParameters(); } } if (context.GetParam(MaterialParameters.DiffuseModel) == MaterialDiffuseModel.None || context.GetParam(MaterialParameters.DiffuseModel) == MaterialDiffuseModel.Lambert) { { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "DiffuseLighting", __subMixin); context.Mixin(__subMixin, "ComputeBRDFDiffuseLambert"); context.PopComposition(); } } else if (context.GetParam(MaterialParameters.DiffuseModel) == MaterialDiffuseModel.OrenNayar) { { var __subMixin = new ShaderMixinSourceTree() { Parent = mixin }; context.PushComposition(mixin, "DiffuseLighting", __subMixin); context.Mixin(__subMixin, "ComputeBRDFDiffuseOrenNayar"); context.PopComposition(); } } } else { context.Mixin(mixin, "AlbedoFlatShading"); } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "TransformationWAndVP"); mixin.AddMacro("MAX_VERTEX_COUNT", 9); context.Mixin(mixin, "CameraCube"); context.Mixin(mixin, "AlbedoFlatShading"); if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null) { var __mixinToCompose__ = context.GetParam(MaterialParameters.AlbedoDiffuse); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "albedoDiffuse", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "XenkoEffectBase"); var extensionPixelStageSurfaceShaders = context.GetParam(MaterialKeys.PixelStageSurfaceShaders); if (extensionPixelStageSurfaceShaders != null) { context.Mixin(mixin, "MaterialSurfacePixelStageCompositor"); { var __mixinToCompose__ = (extensionPixelStageSurfaceShaders); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "materialPixelStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = context.GetParam(MaterialKeys.PixelStageStreamInitializer); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "streamInitializerPixelStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } var extensionPixelStageSurfaceFilter = context.GetParam(MaterialKeys.PixelStageSurfaceFilter); if (extensionPixelStageSurfaceFilter != null) { context.Mixin(mixin, (extensionPixelStageSurfaceFilter)); } } var directLightGroups = context.GetParam(LightingKeys.DirectLightGroups); if (directLightGroups != null) { foreach (var directLightGroup in directLightGroups) { { var __mixinToCompose__ = (directLightGroup); var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "directLightGroups", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } var environmentLights = context.GetParam(LightingKeys.EnvironmentLights); if (environmentLights != null) { foreach (var environmentLight in environmentLights) { { var __mixinToCompose__ = (environmentLight); var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "environmentLights", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ParadoxEffectBase"); var extensionPixelStageSurfaceShaders = context.GetParam(MaterialKeys.PixelStageSurfaceShaders); if (extensionPixelStageSurfaceShaders != null) { context.Mixin(mixin, "MaterialSurfacePixelStageCompositor"); { var __mixinToCompose__ = (extensionPixelStageSurfaceShaders); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "materialPixelStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = context.GetParam(MaterialKeys.PixelStageStreamInitializer); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "streamInitializerPixelStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } var extensionPixelStageSurfaceFilter = context.GetParam(MaterialKeys.PixelStageSurfaceFilter); if (extensionPixelStageSurfaceFilter != null) { context.Mixin(mixin, (extensionPixelStageSurfaceFilter)); } } var directLightGroups = context.GetParam(LightingKeys.DirectLightGroups); if (directLightGroups != null) { foreach(var directLightGroup in directLightGroups) { { var __mixinToCompose__ = (directLightGroup); var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "directLightGroups", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } var environmentLights = context.GetParam(LightingKeys.EnvironmentLights); if (environmentLights != null) { foreach(var environmentLight in environmentLights) { { var __mixinToCompose__ = (environmentLight); var __subMixin = new ShaderMixinSource(); context.PushCompositionArray(mixin, "environmentLights", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } }
public void Generate(ShaderMixinSource mixin, ShaderMixinContext context) { context.Mixin(mixin, "ShaderBase"); context.Mixin(mixin, "ShadingBase"); var extensionPreVertexStageSurfaceShaders = context.GetParam(MaterialKeys.VertexStageSurfaceShaders); if (extensionPreVertexStageSurfaceShaders != null) { context.Mixin(mixin, "MaterialSurfaceVertexStageCompositor"); { var __mixinToCompose__ = (extensionPreVertexStageSurfaceShaders); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "materialVertexStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = context.GetParam(MaterialKeys.VertexStageStreamInitializer); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "streamInitializerVertexStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } context.Mixin(mixin, "TransformationBase"); context.Mixin(mixin, "NormalStream"); context.Mixin(mixin, "TransformationWAndVP"); if (context.GetParam(MaterialKeys.HasNormalMap)) { context.Mixin(mixin, "NormalFromNormalMapping"); } else { context.Mixin(mixin, "NormalFromMesh"); } if (context.GetParam(MaterialKeys.HasSkinningPosition)) { mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialKeys.SkinningMaxBones)); context.Mixin(mixin, "TransformationSkinning"); if (context.GetParam(MaterialKeys.HasSkinningNormal)) { context.Mixin(mixin, "NormalMeshSkinning"); } if (context.GetParam(MaterialKeys.HasSkinningTangent)) { context.Mixin(mixin, "TangentMeshSkinning"); } if (context.GetParam(MaterialKeys.HasSkinningNormal)) { if (context.GetParam(MaterialKeys.HasNormalMap)) { context.Mixin(mixin, "NormalVSSkinningNormalMapping"); } else { context.Mixin(mixin, "NormalVSSkinningFromMesh"); } } } var extensionTessellationShader = context.GetParam(MaterialKeys.TessellationShader); if (extensionTessellationShader != null) { context.Mixin(mixin, (extensionTessellationShader)); var extensionDomainStageSurfaceShaders = context.GetParam(MaterialKeys.DomainStageSurfaceShaders); if (extensionDomainStageSurfaceShaders != null) { context.Mixin(mixin, "MaterialSurfaceDomainStageCompositor"); { var __mixinToCompose__ = (extensionDomainStageSurfaceShaders); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "materialDomainStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } { var __mixinToCompose__ = context.GetParam(MaterialKeys.DomainStageStreamInitializer); var __subMixin = new ShaderMixinSource(); context.PushComposition(mixin, "streamInitializerDomainStage", __subMixin); context.Mixin(__subMixin, __mixinToCompose__); context.PopComposition(); } } } var extensionPostVertexStage = context.GetParam(XenkoEffectBaseKeys.ExtensionPostVertexStageShader); if (extensionPostVertexStage != null) { context.Mixin(mixin, (extensionPostVertexStage)); } }