/// <summary> /// Initializes a new instance of the <see cref="PhongMaterialVariables"/> class. /// </summary> /// <param name="manager">The manager.</param> /// <param name="technique">The technique.</param> /// <param name="materialCore">The material core.</param> /// <param name="materialPassName">Name of the material pass.</param> /// <param name="wireframePassName">Name of the wireframe pass.</param> /// <param name="materialOITPassName">Name of the material oit pass.</param> /// <param name="wireframeOITPassName">Name of the wireframe oit pass.</param> /// <param name="shadowPassName">Name of the shadow pass.</param> /// <param name="tessellationPassName">Name of the tessellation pass.</param> /// <param name="tessellationOITPassName">Name of the tessellation oit pass.</param> /// <param name="depthPassName">Name of the depth pass</param> public PhongMaterialVariables(IEffectsManager manager, IRenderTechnique technique, PhongMaterialCore materialCore, string materialPassName = DefaultPassNames.Default, string wireframePassName = DefaultPassNames.Wireframe, string materialOITPassName = DefaultPassNames.OITPass, string wireframeOITPassName = DefaultPassNames.WireframeOITPass, string shadowPassName = DefaultPassNames.ShadowPass, string tessellationPassName = DefaultPassNames.MeshTriTessellation, string tessellationOITPassName = DefaultPassNames.MeshTriTessellationOIT, string depthPassName = DefaultPassNames.DepthPrepass) : base(manager, technique, DefaultMeshConstantBufferDesc, materialCore) { this.material = materialCore; texDiffuseSlot = texAlphaSlot = texDisplaceSlot = texNormalSlot = -1; samplerDiffuseSlot = samplerDisplaceSlot = samplerShadowSlot = -1; textureManager = manager.MaterialTextureManager; statePoolManager = manager.StateManager; MaterialPass = technique[materialPassName]; MaterialOITPass = technique[materialOITPassName]; ShadowPass = technique[shadowPassName]; WireframePass = technique[wireframePassName]; WireframeOITPass = technique[wireframeOITPassName]; TessellationPass = technique[tessellationPassName]; TessellationOITPass = technique[tessellationOITPassName]; DepthPass = technique[depthPassName]; UpdateMappings(MaterialPass); EnableTessellation = materialCore.EnableTessellation; currentMaterialPass = EnableTessellation ? TessellationPass : MaterialPass; currentOITPass = EnableTessellation ? TessellationOITPass : MaterialOITPass; }
/// <summary> /// /// </summary> /// <param name="manager"></param> /// <param name="material"></param> private DiffuseMaterialVariables(IEffectsManager manager, PhongMaterialCore material) { this.material = material; needUpdate = true; material.PropertyChanged += Material_OnMaterialPropertyChanged; texDiffuseSlot = -1; samplerDiffuseSlot = samplerShadowSlot = -1; textureManager = manager.MaterialTextureManager; statePoolManager = manager.StateManager; CreateTextureViews(); CreateSamplers(); this.PropertyChanged += (s, e) => { OnInvalidateRenderer?.Invoke(this, EventArgs.Empty); }; }
/// <summary> /// /// </summary> /// <param name="manager"></param> /// <param name="technique"></param> /// <param name="material"></param> private DiffuseMaterialVariables(IEffectsManager manager, IRenderTechnique technique, PhongMaterialCore material) : base(manager, technique, DefaultMeshConstantBufferDesc) { this.material = material; material.PropertyChanged += Material_OnMaterialPropertyChanged; texDiffuseSlot = -1; samplerDiffuseSlot = samplerShadowSlot = -1; textureManager = manager.MaterialTextureManager; statePoolManager = manager.StateManager; MaterialPass = technique[DefaultShaderPassName]; TransparentPass = technique[TransparentPassName]; UpdateMappings(MaterialPass); CreateTextureViews(); CreateSamplers(); }
/// <summary> /// /// </summary> /// <param name="manager"></param> /// <param name="technique"></param> /// <param name="material"></param> public ColorStripeMaterialVariables(IEffectsManager manager, IRenderTechnique technique, ColorStripeMaterialCore material) : base(manager, technique, DefaultMeshConstantBufferDesc) { this.material = material; deviceResources = manager; material.PropertyChanged += Material_OnMaterialPropertyChanged; texStripeXSlot = texStripeYSlot = -1; samplerDiffuseSlot = -1; textureManager = manager.MaterialTextureManager; statePoolManager = manager.StateManager; MaterialPass = technique[defaultShaderPassName]; UpdateMappings(MaterialPass); CreateTextureViews(); CreateSamplers(); }
public PBRMaterialVariable(IEffectsManager manager, IRenderTechnique technique, PBRMaterialCore core) : base(manager, technique, DefaultMeshConstantBufferDesc, core) { textureManager = manager.MaterialTextureManager; statePoolManager = manager.StateManager; material = core; MaterialPass = technique[material.EnableTessellation ? DefaultPassNames.MeshPBRTriTessellation : DefaultPassNames.PBR]; MaterialOITPass = technique[material.EnableTessellation ? DefaultPassNames.MeshPBRTriTessellationOIT : DefaultPassNames.PBROITPass]; WireframePass = technique[DefaultPassNames.Wireframe]; WireframeOITPass = technique[DefaultPassNames.WireframeOITPass]; ShadowPass = technique[DefaultPassNames.ShadowPass]; UpdateMappings(MaterialPass); CreateTextureViews(); CreateSamplers(); //EnableTessellation = material.EnableTessellation; }
/// <summary> /// Initializes a new instance of the <see cref="DiffuseMaterialVariables"/> class. /// </summary> /// <param name="manager">The manager.</param> /// <param name="technique">The technique.</param> /// <param name="materialCore">The material core.</param> /// <param name="materialPassName">Name of the material pass.</param> /// <param name="wireframePassName">Name of the wireframe pass.</param> /// <param name="materialOITPassName">Name of the material oit pass.</param> /// <param name="wireframeOITPassName">Name of the wireframe oit pass.</param> /// <param name="shadowPassName">Name of the shadow pass.</param> private DiffuseMaterialVariables(IEffectsManager manager, IRenderTechnique technique, DiffuseMaterialCore materialCore, string materialPassName = DefaultPassNames.Default, string wireframePassName = DefaultPassNames.Wireframe, string materialOITPassName = DefaultPassNames.OITPass, string wireframeOITPassName = DefaultPassNames.OITPass, string shadowPassName = DefaultPassNames.ShadowPass) : base(manager, technique, DefaultMeshConstantBufferDesc, materialCore) { this.material = materialCore; texDiffuseSlot = -1; samplerDiffuseSlot = samplerShadowSlot = -1; textureManager = manager.MaterialTextureManager; statePoolManager = manager.StateManager; MaterialPass = technique[materialPassName]; TransparentPass = technique[materialOITPassName]; ShadowPass = technique[shadowPassName]; WireframePass = technique[wireframePassName]; WireframeOITPass = technique[wireframeOITPassName]; UpdateMappings(MaterialPass); CreateTextureViews(); CreateSamplers(); }
public PBRMaterialVariable(IEffectsManager manager, IRenderTechnique technique, PBRMaterialCore core, string defaultPassName = DefaultPassNames.PBR) : base(manager, technique, DefaultMeshConstantBufferDesc, core) { textureManager = manager.MaterialTextureManager; statePoolManager = manager.StateManager; material = core; MaterialPass = technique[defaultPassName]; OITPass = technique[DefaultPassNames.PBROITPass]; OITDepthPeelingInit = technique[DefaultPassNames.OITDepthPeelingInit]; OITDepthPeeling = technique[DefaultPassNames.PBROITDPPass]; TessellationPass = technique[DefaultPassNames.MeshPBRTriTessellation]; TessellationOITPass = technique[DefaultPassNames.MeshPBRTriTessellationOIT]; TessellationOITDPPass = technique[DefaultPassNames.MeshPBRTriTessellationOITDP]; WireframePass = technique[DefaultPassNames.Wireframe]; WireframeOITPass = technique[DefaultPassNames.WireframeOITPass]; WireframeOITDPPass = technique[DefaultPassNames.WireframeOITDPPass]; ShadowPass = technique[DefaultPassNames.ShadowPass]; DepthPass = technique[DefaultPassNames.DepthPrepass]; UpdateMappings(MaterialPass); CreateTextureViews(); CreateSamplers(); }