public Material( ShaderSet shaderSet, Pipeline pipeline, ResourceSet materialResourceSet) { Id = shaderSet.GetNextMaterialId(); ShaderSet = shaderSet; Pipeline = pipeline; MaterialResourceSet = materialResourceSet; // Bit 24-31: ShaderSet RenderKey |= (ShaderSet.Id << 24); // Bit 16-23: Material RenderKey |= (Id) << 16; }
public Material( ShaderSet shaderSet, Pipeline pipeline, ResourceSet materialResourceSet, SurfaceType surfaceType) { Id = shaderSet.GetNextMaterialId(); ShaderSet = shaderSet; Pipeline = pipeline; MaterialResourceSet = materialResourceSet; // Bit 31: SurfaceType RenderKey |= ((int)surfaceType) << 31; // Bit 23-30: ShaderSet RenderKey |= (ShaderSet.Id << 23); // Bit 15-22: Material RenderKey |= (Id) << 15; }