本文整理汇总了C#中SharpDX.Direct3D11.SamplerStateDescription类的典型用法代码示例。如果您正苦于以下问题:C# SamplerStateDescription类的具体用法?C# SamplerStateDescription怎么用?C# SamplerStateDescription使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
SamplerStateDescription类属于SharpDX.Direct3D11命名空间,在下文中一共展示了SamplerStateDescription类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Postprocess
public Postprocess(Game game, string shaderFile, RenderTexture rt = null, string name = null)
{
this.game = game;
this.renderTexture = rt;
if(name == null)
{
this.Name = System.IO.Path.GetFileNameWithoutExtension(shaderFile);
this.debugName = "Postprocess " + this.Name;
}
else
{
this.debugName = this.Name = name;
}
this.shaderFile = shaderFile;
var desc = SamplerStateDescription.Default();
desc.Filter = Filter.MinMagMipPoint;
defaultSamplerStateDescription = desc;
LoadShader();
BuildVertexBuffer();
ppBuffer = Material.CreateBuffer<LiliumPostprocessData>();
game.AddObject(this);
}
示例2: TextureShader
public TextureShader(Device device)
{
var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "TextureVertexShader", "vs_4_0", ShaderFlags);
var pixelShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "TexturePixelShader", "ps_4_0", ShaderFlags);
VertexShader = new VertexShader(device, vertexShaderByteCode);
PixelShader = new PixelShader(device, pixelShaderByteCode);
Layout = VertexDefinition.PositionTexture.GetInputLayout(device, vertexShaderByteCode);
vertexShaderByteCode.Dispose();
pixelShaderByteCode.Dispose();
ConstantMatrixBuffer = new Buffer(device, MatrixBufferDesription);
// Create a texture sampler state description.
var samplerDesc = new SamplerStateDescription
{
Filter = Filter.Anisotropic,
AddressU = TextureAddressMode.Mirror,
AddressV = TextureAddressMode.Mirror,
AddressW = TextureAddressMode.Mirror,
MipLodBias = 0,
MaximumAnisotropy = 16,
ComparisonFunction = Comparison.Always,
BorderColor = new Color4(1, 1, 1, 1),
MinimumLod = 0,
MaximumLod = 0
};
// Create the texture sampler state.
SamplerState = new SamplerState(device, samplerDesc);
}
示例3: WorldTerrainShader
public WorldTerrainShader(Device device)
{
var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "TerrainVertexShader", "vs_4_0", ShaderFlags);
var pixelShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "TerrainPixelShader", "ps_4_0", ShaderFlags);
VertexShader = new VertexShader(device, vertexShaderByteCode);
PixelShader = new PixelShader(device, pixelShaderByteCode);
Layout = VertexDefinition.PositionTexture.GetInputLayout(device, vertexShaderByteCode);
vertexShaderByteCode.Dispose();
pixelShaderByteCode.Dispose();
ConstantMatrixBuffer = new Buffer(device, MatrixBufferDesription);
var samplerDescMap = new SamplerStateDescription
{
Filter = Filter.MinMagMipPoint,
AddressU = TextureAddressMode.Clamp,
AddressV = TextureAddressMode.Clamp,
AddressW = TextureAddressMode.Clamp,
MipLodBias = 0,
MaximumAnisotropy = 1,
ComparisonFunction = Comparison.Always,
BorderColor = Color.Transparent,
MinimumLod = 0,
MaximumLod = float.MaxValue
};
SamplerStateMap = new SamplerState(device, samplerDescMap);
}
示例4: ProjectiveTexturingShader
public ProjectiveTexturingShader(Device device)
{
var shaderByteCode = new ShaderBytecode(File.ReadAllBytes("Content/DepthAndProjectiveTextureVS.cso"));
vertexShader = new VertexShader(device, shaderByteCode);
geometryShader = new GeometryShader(device, new ShaderBytecode(File.ReadAllBytes("Content/DepthAndColorGS.cso")));
pixelShader = new PixelShader(device, new ShaderBytecode(File.ReadAllBytes("Content/DepthAndColorPS.cso")));
// depth stencil state
var depthStencilStateDesc = new DepthStencilStateDescription()
{
IsDepthEnabled = true,
DepthWriteMask = DepthWriteMask.All,
DepthComparison = Comparison.LessEqual,
IsStencilEnabled = false,
};
depthStencilState = new DepthStencilState(device, depthStencilStateDesc);
// rasterizer states
var rasterizerStateDesc = new RasterizerStateDescription()
{
CullMode = CullMode.None,
FillMode = FillMode.Solid,
IsDepthClipEnabled = true,
IsFrontCounterClockwise = true,
IsMultisampleEnabled = true,
};
rasterizerState = new RasterizerState(device, rasterizerStateDesc);
// constant buffer
var constantBufferDesc = new BufferDescription()
{
Usage = ResourceUsage.Dynamic,
BindFlags = BindFlags.ConstantBuffer,
SizeInBytes = Constants.size,
CpuAccessFlags = CpuAccessFlags.Write,
StructureByteStride = 0,
OptionFlags = 0,
};
constantBuffer = new SharpDX.Direct3D11.Buffer(device, constantBufferDesc);
// user view sampler state
var colorSamplerStateDesc = new SamplerStateDescription()
{
Filter = Filter.MinMagMipLinear,
AddressU = TextureAddressMode.Border,
AddressV = TextureAddressMode.Border,
AddressW = TextureAddressMode.Border,
//BorderColor = new SharpDX.Color4(0.5f, 0.5f, 0.5f, 1.0f),
BorderColor = new SharpDX.Color4(0, 0, 0, 1.0f),
};
colorSamplerState = new SamplerState(device, colorSamplerStateDesc);
vertexInputLayout = new InputLayout(device, shaderByteCode.Data, new[]
{
new InputElement("SV_POSITION", 0, Format.R32G32B32A32_Float, 0, 0),
});
}
示例5: TerrainMinimapShader
public TerrainMinimapShader(Device device)
{
var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "MinimapTerrainVertexShader", "vs_4_0", ShaderFlags);
var pixelShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "MinimapTerrainPixelShader", "ps_4_0", ShaderFlags);
VertexShader = new VertexShader(device, vertexShaderByteCode);
PixelShader = new PixelShader(device, pixelShaderByteCode);
Layout = VertexDefinition.TerrainVertex.GetInputLayout(device, vertexShaderByteCode);
vertexShaderByteCode.Dispose();
pixelShaderByteCode.Dispose();
ConstantMatrixBuffer = new Buffer(device, MatrixBufferDesription);
ConstantSelectionBuffer = new Buffer(device, new BufferDescription
{
Usage = ResourceUsage.Dynamic,
SizeInBytes = Utilities.SizeOf<SelectionBuffer>(),
BindFlags = BindFlags.ConstantBuffer,
CpuAccessFlags = CpuAccessFlags.Write,
OptionFlags = ResourceOptionFlags.None,
StructureByteStride = 0
});
var samplerDescBorder = new SamplerStateDescription
{
Filter = Filter.Anisotropic,
AddressU = TextureAddressMode.MirrorOnce,
AddressV = TextureAddressMode.Clamp,
AddressW = TextureAddressMode.Clamp,
MipLodBias = 0,
MaximumAnisotropy = 16,
ComparisonFunction = Comparison.Always,
BorderColor = Color.Transparent,
MinimumLod = 0,
MaximumLod = float.MaxValue
};
// Create the texture sampler state.
SamplerStateBorder = new SamplerState(device, samplerDescBorder);
var samplerDescColor = new SamplerStateDescription
{
Filter = Filter.Anisotropic,
AddressU = TextureAddressMode.Wrap,
AddressV = TextureAddressMode.Wrap,
AddressW = TextureAddressMode.Wrap,
MipLodBias = 0,
MaximumAnisotropy = 16,
ComparisonFunction = Comparison.Always,
BorderColor = Color.Transparent,
MinimumLod = 0,
MaximumLod = float.MaxValue
};
// Create the texture sampler state.
SamplerStateColor = new SamplerState(device, samplerDescColor);
}
示例6: LightShader
public LightShader(Device device)
{
var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "LightVertexShader", "vs_4_0", ShaderFlags);
var pixelShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "LightPixelShader", "ps_4_0", ShaderFlags);
VertexShader = new VertexShader(device, vertexShaderByteCode);
PixelShader = new PixelShader(device, pixelShaderByteCode);
Layout = VertexDefinition.PositionTextureNormal.GetInputLayout(device, vertexShaderByteCode);
vertexShaderByteCode.Dispose();
pixelShaderByteCode.Dispose();
ConstantMatrixBuffer = new Buffer(device, MatrixBufferDesription);
// Setup the description of the dynamic matrix constant buffer that is in the vertex shader.
var lightBufferDesc = new BufferDescription
{
Usage = ResourceUsage.Dynamic, // Updated each frame
SizeInBytes = Utilities.SizeOf<LightBuffer>(), // Contains three matrices
BindFlags = BindFlags.ConstantBuffer,
CpuAccessFlags = CpuAccessFlags.Write,
OptionFlags = ResourceOptionFlags.None,
StructureByteStride = 0
};
ConstantLightBuffer = new Buffer(device, lightBufferDesc);
// Setup the description of the dynamic matrix constant buffer that is in the vertex shader.
var cameraBufferDesc = new BufferDescription
{
Usage = ResourceUsage.Dynamic, // Updated each frame
SizeInBytes = Utilities.SizeOf<CameraBuffer>(), // Contains three matrices
BindFlags = BindFlags.ConstantBuffer,
CpuAccessFlags = CpuAccessFlags.Write,
OptionFlags = ResourceOptionFlags.None,
StructureByteStride = 0
};
ConstantCameraBuffer = new Buffer(device, cameraBufferDesc);
// Create a texture sampler state description.
var samplerDesc = new SamplerStateDescription
{
Filter = Filter.Anisotropic,
AddressU = TextureAddressMode.Wrap,
AddressV = TextureAddressMode.Wrap,
AddressW = TextureAddressMode.Wrap,
MipLodBias = 0,
MaximumAnisotropy = 16,
ComparisonFunction = Comparison.Always,
BorderColor = new Color4(0, 0, 0, 0),
MinimumLod = 0,
MaximumLod = 10
};
// Create the texture sampler state.
SamplerState = new SamplerState(device, samplerDesc);
}
示例7: SamplerState
/// <summary>
/// Initializes a new instance of the <see cref="SamplerState" /> class.
/// </summary>
/// <param name="device">The <see cref="GraphicsDevice"/>.</param>
/// <param name="description">The description.</param>
private SamplerState(GraphicsDevice device, SamplerStateDescription description) : base(device.MainDevice)
{
// For 9.1, anisotropy cannot be larger then 2
if (device.Features.Level == FeatureLevel.Level_9_1)
{
description.MaximumAnisotropy = Math.Min(2, description.MaximumAnisotropy);
}
Description = description;
Initialize(new SharpDX.Direct3D11.SamplerState(device, description));
}
示例8: InitializeInternal
protected override void InitializeInternal()
{
var descr = new SamplerStateDescription
{
AddressU = GetTextureAddressMode(Settings.WrapU),
AddressV = GetTextureAddressMode(Settings.WrapV),
AddressW = GetTextureAddressMode(Settings.WrapW),
Filter = GetFilterType(Settings.Filter)
};
SamplerState = new SamplerState(DeviceManager.Device, descr);
}
示例9: TextureMap
public TextureMap(int w, int h)
{
m_width = (ushort)w;
m_height = (ushort)h;
// Create a texture sampler default state description.
m_samplerDesc = new SamplerStateDescription
{
Filter = Filter.MinMagMipPoint,
AddressU = TextureAddressMode.Wrap,
AddressV = TextureAddressMode.Wrap,
AddressW = TextureAddressMode.Wrap,
ComparisonFunction = Comparison.Never,
MinimumLod = 0,
MaximumLod = 0,
};
}
示例10: InitOnce
internal static void InitOnce()
{
SamplerStateDescription description = new SamplerStateDescription();
description.AddressU = TextureAddressMode.Clamp;
description.AddressV = TextureAddressMode.Clamp;
description.AddressW = TextureAddressMode.Clamp;
description.Filter = Filter.MinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
m_default = MyPipelineStates.CreateSamplerState(description);
description.AddressU = TextureAddressMode.Border;
description.AddressV = TextureAddressMode.Border;
description.AddressW = TextureAddressMode.Border;
description.Filter = Filter.MinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
description.BorderColor = new Color4(0, 0, 0, 0);
m_alphamask = MyPipelineStates.CreateSamplerState(description);
description.AddressU = TextureAddressMode.Clamp;
description.AddressV = TextureAddressMode.Clamp;
description.AddressW = TextureAddressMode.Clamp;
description.Filter = Filter.MinMagMipPoint;
description.MaximumLod = System.Single.MaxValue;
m_point = MyPipelineStates.CreateSamplerState(description);
description.Filter = Filter.MinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
m_linear = MyPipelineStates.CreateSamplerState(description);
description.AddressU = TextureAddressMode.Clamp;
description.AddressV = TextureAddressMode.Clamp;
description.AddressW = TextureAddressMode.Clamp;
description.Filter = Filter.ComparisonMinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
description.ComparisonFunction = Comparison.LessEqual;
m_shadowmap = MyPipelineStates.CreateSamplerState(description);
m_texture = MyPipelineStates.CreateSamplerState(description);
m_alphamaskArray = MyPipelineStates.CreateSamplerState(description);
UpdateFiltering();
Init();
}
示例11: Sampler
public Sampler(GxContext context)
{
mContext = context;
mDescription = new SamplerStateDescription
{
AddressU = TextureAddressMode.Wrap,
AddressV = TextureAddressMode.Wrap,
AddressW = TextureAddressMode.Wrap,
BorderColor = SharpDX.Color4.Black,
ComparisonFunction = Comparison.Always,
Filter = Filter.MinMagMipLinear,
MaximumAnisotropy = 0,
MaximumLod = float.MaxValue,
MinimumLod = float.MinValue,
MipLodBias = 0.0f
};
mChanged = true;
}
示例12: InitilizeSamplerStates
private static void InitilizeSamplerStates()
{
SamplerStateDescription description = new SamplerStateDescription();
description.AddressU = TextureAddressMode.Clamp;
description.AddressV = TextureAddressMode.Clamp;
description.AddressW = TextureAddressMode.Clamp;
description.Filter = Filter.MinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
m_defaultSamplerState = MyPipelineStates.CreateSamplerState(description);
description.AddressU = TextureAddressMode.Border;
description.AddressV = TextureAddressMode.Border;
description.AddressW = TextureAddressMode.Border;
description.Filter = Filter.MinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
description.BorderColor = new Color4(0, 0, 0, 0);
m_alphamaskSamplerState = MyPipelineStates.CreateSamplerState(description);
description.AddressU = TextureAddressMode.Clamp;
description.AddressV = TextureAddressMode.Clamp;
description.AddressW = TextureAddressMode.Clamp;
description.Filter = Filter.MinMagMipPoint;
description.MaximumLod = System.Single.MaxValue;
m_pointSamplerState = MyPipelineStates.CreateSamplerState(description);
description.Filter = Filter.MinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
m_linearSamplerState = MyPipelineStates.CreateSamplerState(description);
description.AddressU = TextureAddressMode.Clamp;
description.AddressV = TextureAddressMode.Clamp;
description.AddressW = TextureAddressMode.Clamp;
description.Filter = Filter.ComparisonMinMagMipLinear;
description.MaximumLod = System.Single.MaxValue;
description.ComparisonFunction = Comparison.LessEqual;
m_shadowmapSamplerState = MyPipelineStates.CreateSamplerState(description);
m_textureSamplerState = MyPipelineStates.CreateSamplerState(description);
m_alphamaskarraySamplerState = MyPipelineStates.CreateSamplerState(description);
UpdateTextureSampler(m_textureSamplerState, TextureAddressMode.Wrap);
UpdateTextureSampler(m_alphamaskarraySamplerState, TextureAddressMode.Clamp);
}
示例13: Initialize
/// <summary>
/// Binds the effect shader to the specified <see cref="Device"/>.
/// </summary>
/// <param name="device">The device to bind the shader to.</param>
/// <returns>If the binding was successful.</returns>
public bool Initialize(Device device)
{
try
{
matrixBuffer = new Buffer(device, Matrix.SizeInBytes * 3, ResourceUsage.Dynamic, BindFlags.ConstantBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, 0) {DebugName = "Matrix buffer"};
using (var bytecode = ShaderBytecode.CompileFromFile("Shaders/Texture.vs", "TextureVertexShader", "vs_4_0"))
{
layout = new InputLayout(device, ShaderSignature.GetInputSignature(bytecode), TextureDrawingVertex.VertexDeclaration) { DebugName = "Color vertex layout" };
vertexShader = new VertexShader(device, bytecode) { DebugName = "Texture vertex shader" };
}
using (var bytecode = ShaderBytecode.CompileFromFile("Shaders/Texture.ps", "TexturePixelShader", "ps_4_0"))
{
pixelShader = new PixelShader(device, bytecode) { DebugName = "Texture pixel shader" };
}
var samplerDesc = new SamplerStateDescription
{
AddressU = TextureAddressMode.Wrap,
AddressV = TextureAddressMode.Wrap,
AddressW = TextureAddressMode.Wrap,
Filter = Filter.ComparisonMinMagMipLinear,
MaximumAnisotropy = 1,
MipLodBias = 0f,
MinimumLod = 0,
MaximumLod = float.MaxValue,
BorderColor = Color.LimeGreen,
ComparisonFunction = Comparison.Always
};
pixelSampler = new SamplerState(device, samplerDesc);
texture = new Texture();
return texture.Initialize(device, "Textures/dirt.dds");
}
catch (Exception e)
{
MessageBox.Show("Shader error: " + e.Message);
return false;
}
}
示例14: Texture
/* CONSTRUCTORS & DESTRUCTOR */
/// <summary>
/// Constructs an blank texture object that has no effect on rendered objects.
/// </summary>
/// <param name="window">A reference to the Direct3D-capable window in which this texture will be rendered.</param>
public Texture(Window3D window)
: base()
{
Window = window;
Window.OnClose += Dispose;
_TSSD = new SamplerStateDescription()
{
AddressU = TextureAddressMode.Wrap,
AddressV = TextureAddressMode.Wrap,
AddressW = TextureAddressMode.Wrap,
BorderColor = Color4.Black,
ComparisonFunction = Comparison.Never,
Filter = Filter.Anisotropic,
MaximumAnisotropy = 16,
MaximumLod = float.MaxValue,
MinimumLod = 0f,
MipLodBias = 0f,
};
UpdateSettings = true;
}
示例15: UpdateTextureSampler
internal static void UpdateTextureSampler(SamplerId samplerState, TextureAddressMode addressMode)
{
SamplerStateDescription description = new SamplerStateDescription();
description.AddressU = addressMode;
description.AddressV = addressMode;
description.AddressW = addressMode;
description.MaximumLod = System.Single.MaxValue;
if(MyRender11.RenderSettings.AnisotropicFiltering == MyTextureAnisoFiltering.NONE)
{
description.Filter = Filter.MinMagMipLinear;
}
else
{
description.Filter = Filter.Anisotropic;
switch(MyRender11.RenderSettings.AnisotropicFiltering)
{
case MyTextureAnisoFiltering.ANISO_1:
description.MaximumAnisotropy = 1;
break;
case MyTextureAnisoFiltering.ANISO_4:
description.MaximumAnisotropy = 4;
break;
case MyTextureAnisoFiltering.ANISO_8:
description.MaximumAnisotropy = 8;
break;
case MyTextureAnisoFiltering.ANISO_16:
description.MaximumAnisotropy = 16;
break;
default:
description.MaximumAnisotropy = 1;
break;
}
}
MyPipelineStates.ChangeSamplerState(samplerState, description);
}