本文整理汇总了C#中EffectTechnique类的典型用法代码示例。如果您正苦于以下问题:C# EffectTechnique类的具体用法?C# EffectTechnique怎么用?C# EffectTechnique使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
EffectTechnique类属于命名空间,在下文中一共展示了EffectTechnique类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VisualEffect
protected VisualEffect(IServiceProvider services, string effectAsset,
int effectLayerCount, IEnumerable<RenderTargetLayerType> requiredRenderTargets)
{
if (services == null)
throw new ArgumentNullException("services");
if (effectAsset == null)
throw new ArgumentNullException("effectAsset");
if (requiredRenderTargets == null)
throw new ArgumentNullException("requiredRenderTargets");
if (effectLayerCount < 0)
throw new ArgumentOutOfRangeException("affectedLayers", "Parameter should have non-negative value.");
renderer = (Renderer)services.GetService(typeof(Renderer));
resourceManager = (ResourceManager)services.GetService(typeof(ResourceManager));
this.requiredRenderTargets = requiredRenderTargets;
this.effectLayerCount = effectLayerCount > 0 ? effectLayerCount : renderer.KBufferManager.Configuration.LayerCount;
effect = resourceManager.Load<Effect>(effectAsset);
effectTechnique = effect.GetTechniqueByName(VisualEffectTechniqueName);
if (!effectTechnique.IsValid)
throw new ArgumentException(
string.Format("Given effect asset '{0}' does not contain technique {1}.", effectAsset, VisualEffectTechniqueName),
"effectAsset");
}
示例2: D3D10Renderer
public D3D10Renderer(Device1 device3D)
{
Contract.Requires(device3D != null);
_Device3D = device3D;
string shader = GetShaderText(Properties.Resources.RenderingEffects);
using(var byteCode = ShaderBytecode.Compile(
shader, "fx_4_0", ShaderFlags.None, EffectFlags.None))
{
_Effect = new Effect(_Device3D, byteCode);
}
_EffectTechnique = _Effect.GetTechniqueByName("WithTexture");
Contract.Assert(_EffectTechnique != null);
_EffectPass = _EffectTechnique.GetPassByIndex(0);
Contract.Assert(_EffectPass != null);
_InputLayout = new InputLayout(
_Device3D, _EffectPass.Description.Signature, _InputLayoutData);
const int byteSize = _Stride * _VertexCount;
using(DataStream stream = new DataStream(byteSize, true, true))
{
for(int i = 0; i < _QuadPrimitiveData.Length; i += 2)
{
float fx = (2.0f * _QuadPrimitiveData[i + 0].X) - 1.0f;
float fy = (2.0f * _QuadPrimitiveData[i + 0].Y) - 1.0f;
stream.Write(new Vector3(fx, -fy, 0.5f));
stream.Write(_QuadPrimitiveData[i + 1]);
}
stream.Seek(0, SeekOrigin.Begin);
BufferDescription description = new BufferDescription
{
BindFlags = BindFlags.VertexBuffer,
CpuAccessFlags = CpuAccessFlags.None,
OptionFlags = ResourceOptionFlags.None,
Usage = ResourceUsage.Immutable,
SizeInBytes = byteSize
};
description.SizeInBytes = byteSize;
_VertexBuffer = new Buffer(_Device3D, stream, description);
_VertexBufferBinding = new VertexBufferBinding(
_VertexBuffer, _Stride, _Offset);
}
}
示例3: ShapesDemo
public ShapesDemo(IntPtr hInstance)
: base(hInstance) {
_vb = null;
_ib = null;
_fx = null;
_tech = null;
_fxWVP = null;
_inputLayout = null;
_wireframeRS = null;
_theta = 1.5f * MathF.PI;
_phi = 0.1f * MathF.PI;
_radius = 15.0f;
MainWindowCaption = "Shapes Demo";
_lastMousePos = new Point(0, 0);
_gridWorld = Matrix.Identity;
_view = Matrix.Identity;
_proj = Matrix.Identity;
_boxWorld = Matrix.Scaling(2.0f, 1.0f, 2.0f) * Matrix.Translation(0, 0.5f, 0);
_centerSphere = Matrix.Scaling(2.0f, 2.0f, 2.0f) * Matrix.Translation(0, 2, 0);
for (int i = 0; i < 5; ++i) {
_cylWorld[i * 2] = Matrix.Translation(-5.0f, 1.5f, -10.0f + i * 5.0f);
_cylWorld[i * 2 + 1] = Matrix.Translation(5.0f, 1.5f, -10.0f + i * 5.0f);
_sphereWorld[i * 2] = Matrix.Translation(-5.0f, 3.5f, -10.0f + i * 5.0f);
_sphereWorld[i * 2 + 1] = Matrix.Translation(5.0f, 3.5f, -10.0f + i * 5.0f);
}
}
示例4: LoadResources
public override void LoadResources()
{
if (m_Disposed == true)
{
m_Effect = m_Effect = new Effect(GameEnvironment.Device, Bytecode); // Effect.FromFile(GameEnvironment.Device, Helper.ResolvePath(m_ShaderLocation), "fx_4_0", ShaderFlags.None, EffectFlags.None, null, null);
m_Technique = m_Effect.GetTechniqueByName("RenderParticles");
m_ParticlePass_Add = m_Technique.GetPassByName("Add");
m_Layout = new InputLayout(GameEnvironment.Device, m_ParticlePass_Add.Description.Signature, new[] {
new InputElement("POSITION", 0, Format.R32G32B32A32_Float, 0, 0),
new InputElement("TEXCOORD", 0, Format.R32G32_Float, 16, 0),
new InputElement("INST_POSITION", 0, Format.R32G32B32_Float, 0, 1, InputClassification.PerInstanceData, 1),
new InputElement("INST_COLOR", 0, Format.R32G32B32A32_Float, 12, 1, InputClassification.PerInstanceData, 1),
});
m_WorldViewProj = m_Effect.GetVariableByName("worldViewProj").AsMatrix();
m_ParticleTexture = m_Effect.GetVariableByName("particle_texture").AsResource();
m_AmpScale = m_Effect.GetVariableByName("ampScale").AsScalar();
m_PartScaleX = m_Effect.GetVariableByName("partScaleX").AsScalar();
m_PartScaleY = m_Effect.GetVariableByName("partScaleY").AsScalar();
m_MaxDistance = m_Effect.GetVariableByName("maxDistance").AsScalar();
m_MinDistance = m_Effect.GetVariableByName("minDistance").AsScalar();
m_ScaleDistance = m_Effect.GetVariableByName("scaleDistance").AsScalar();
m_Disposed = false;
}
}
示例5: FowardLightingEffect
public FowardLightingEffect(Device device, string filename)
: base(device, filename) {
Ambient = FX.GetTechniqueByName("Ambient");
DepthPrePass = FX.GetTechniqueByName("DepthPrePass");
Directional = FX.GetTechniqueByName("Directional");
PointLight = FX.GetTechniqueByName("Point");
_worldViewProj = FX.GetVariableByName("WorldViewProjection").AsMatrix();
_world = FX.GetVariableByName("World").AsMatrix();
_worldInvTranspose = FX.GetVariableByName("gWorldInvTranspose").AsMatrix();
_ambientDown = FX.GetVariableByName("AmbientDown").AsVector();
_ambientRange = FX.GetVariableByName("AmbientRange").AsVector();
_dirToLight = FX.GetVariableByName("DirToLight").AsVector();
_dirLightColor = FX.GetVariableByName("DirLightColor").AsVector();
_eyePosition = FX.GetVariableByName("EyePosition").AsVector();
_specularExponent = FX.GetVariableByName("specExp").AsScalar();
_specularIntensity = FX.GetVariableByName("specIntensity").AsScalar();
_pointLightPosition = FX.GetVariableByName("PointLightPosition").AsVector();
_pointLightRangeRcp = FX.GetVariableByName("PointLightRangeRcp").AsScalar();
_pointLightColor = FX.GetVariableByName("PointLightColor").AsVector();
_diffuseMap = FX.GetVariableByName("DiffuseTexture").AsResource();
}
示例6: LoadResources
public override void LoadResources()
{
if (m_Disposed == true)
{
m_TextFont.LoadResources();
//SlimDX.D3DCompiler.ShaderBytecode blob = SlimDX.D3DCompiler.ShaderBytecode.CompileFromFile(Helper.ResolvePath(m_ShaderLocation), "fx_4_0", SlimDX.D3DCompiler.ShaderFlags.EnableStrictness, SlimDX.D3DCompiler.EffectFlags.None);
m_Effect = new Effect(GameEnvironment.Device, Bytecode);
m_Technique = m_Effect.GetTechniqueByName("LinesAndBoxes");
m_Pass_BoxesAndText = m_Technique.GetPassByName("BoxesAndText");
m_Pass_Lines = m_Technique.GetPassByName("Lines");
m_Layout = new InputLayout(GameEnvironment.Device, m_Pass_Lines.Description.Signature, new[] {
new InputElement("POSITION", 0, Format.R32G32B32_Float, 0, 0),
new InputElement("TEXCOORD", 0, Format.R32G32_Float, 12, 0),
new InputElement("COLOR", 0, Format.R32G32B32A32_Float, 20, 0),
});
m_UiElementsTexture = m_Effect.GetVariableByName("UiElementsTexture").AsResource();
m_UiElementsTexture.SetResource(m_TextFont.TexureView);
m_Disposed = false;
}
}
示例7: Attach
public override void Attach(IRenderHost host)
{
/// --- attach
this.renderTechnique = Techniques.RenderCubeMap;
base.Attach(host);
/// --- get variables
this.vertexLayout = EffectsManager.Instance.GetLayout(this.renderTechnique);
this.effectTechnique = effect.GetTechniqueByName(this.renderTechnique.Name);
this.effectTransforms = new EffectTransformVariables(this.effect);
/// -- attach cube map
if (this.Filename != null)
{
/// -- attach texture
using (var texture = Texture2D.FromFile<Texture2D>(this.Device, this.Filename))
{
this.texCubeMapView = new ShaderResourceView(this.Device, texture);
}
this.texCubeMap = effect.GetVariableByName("texCubeMap").AsShaderResource();
this.texCubeMap.SetResource(this.texCubeMapView);
this.bHasCubeMap = effect.GetVariableByName("bHasCubeMap").AsScalar();
this.bHasCubeMap.Set(true);
/// --- set up geometry
var sphere = new MeshBuilder(false,true,false);
sphere.AddSphere(new Vector3(0, 0, 0));
this.geometry = sphere.ToMeshGeometry3D();
/// --- set up vertex buffer
this.vertexBuffer = Device.CreateBuffer(BindFlags.VertexBuffer, CubeVertex.SizeInBytes, this.geometry.Positions.Select((x, ii) => new CubeVertex() { Position = new Vector4(x, 1f) }).ToArray());
/// --- set up index buffer
this.indexBuffer = Device.CreateBuffer(BindFlags.IndexBuffer, sizeof(int), geometry.Indices.Array);
/// --- set up rasterizer states
var rasterStateDesc = new RasterizerStateDescription()
{
FillMode = FillMode.Solid,
CullMode = CullMode.Back,
IsMultisampleEnabled = true,
IsAntialiasedLineEnabled = true,
IsFrontCounterClockwise = false,
};
this.rasterState = new RasterizerState(this.Device, rasterStateDesc);
/// --- set up depth stencil state
var depthStencilDesc = new DepthStencilStateDescription()
{
DepthComparison = Comparison.LessEqual,
DepthWriteMask = global::SharpDX.Direct3D11.DepthWriteMask.All,
IsDepthEnabled = true,
};
this.depthStencilState = new DepthStencilState(this.Device, depthStencilDesc);
}
/// --- flush
this.Device.ImmediateContext.Flush();
}
示例8: LoadResources
public override void LoadResources()
{
if (m_Disposed == true)
{
m_Effect = m_Effect = new Effect(GameEnvironment.Device, Bytecode); // Effect.FromFile(GameEnvironment.Device, Helper.ResolvePath(m_ShaderLocation), "fx_4_0", ShaderFlags.None, EffectFlags.None, null, null);
m_Technique = m_Effect.GetTechniqueByName("Imposter");
m_Pass_NoBlend = m_Technique.GetPassByName("NoBlend");
m_Pass_OverlayAdd = m_Technique.GetPassByName("OverlayAdd");
m_Pass_OverlaySubtract = m_Technique.GetPassByName("OverlaySubtract");
m_Pass_OverlayInvert = m_Technique.GetPassByName("OverlayInvert");
m_Pass_OverlayAlpha = m_Technique.GetPassByName("OverlayAlpha");
m_Technique_BrightPass = m_Effect.GetTechniqueByName("Imposter_BrightPass");
m_Pass_NoBlend_BrightPass = m_Technique_BrightPass.GetPassByName("NoBlend");
m_Pass_OverlayAdd_BrightPass = m_Technique_BrightPass.GetPassByName("OverlayAdd");
m_Pass_OverlaySubtract_BrightPass = m_Technique_BrightPass.GetPassByName("OverlaySubtract");
m_Pass_OverlayAlpha_BrightPass = m_Technique_BrightPass.GetPassByName("OverlayAlpha");
m_ImposterTextureResource = m_Effect.GetVariableByName("imposter").AsResource();
m_BrightPassThreshold = m_Effect.GetVariableByName("brightPassThreshold").AsScalar();
m_Layout = new InputLayout(GameEnvironment.Device, m_Pass_NoBlend.Description.Signature, new[] {
new InputElement("POSITION", 0, Format.R32G32_Float, 0, 0),
new InputElement("TEXCOORD", 0, Format.R32G32_Float, 8, 0)
});
float minX = -1f, miny = -1f, maxX = 1f, maxY = 1f;
using (DataStream stream = new DataStream(4 * Marshal.SizeOf(typeof(Vertex2D)), true, true))
{
stream.WriteRange(new Vertex2D[] {
new Vertex2D() { Position = new Vector2(maxX, miny), TextureCoords = new Vector2(1.0f, 1.0f) },
new Vertex2D() { Position = new Vector2(minX, miny), TextureCoords = new Vector2(0.0f, 1.0f) },
new Vertex2D() { Position = new Vector2(maxX, maxY), TextureCoords = new Vector2(1.0f, 0.0f) },
new Vertex2D() { Position = new Vector2(minX, maxY), TextureCoords = new Vector2(0.0f, 0.0f) }
});
stream.Position = 0;
m_Vertices = new SlimDX.Direct3D11.Buffer(GameEnvironment.Device, stream, new BufferDescription()
{
BindFlags = BindFlags.VertexBuffer,
CpuAccessFlags = CpuAccessFlags.None,
OptionFlags = ResourceOptionFlags.None,
SizeInBytes = 4 * Marshal.SizeOf(typeof(Vertex2D)),
Usage = ResourceUsage.Default
});
}
m_VerticesBindings = new VertexBufferBinding(m_Vertices, Marshal.SizeOf(typeof(Vertex2D)), 0);
m_Disposed = false;
}
}
示例9: SsaoBlurEffect
public SsaoBlurEffect(Device device, string filename) : base(device, filename) {
HorzBlurTech = FX.GetTechniqueByName("HorzBlur");
VertBlurTech = FX.GetTechniqueByName("VertBlur");
_texelWidth = FX.GetVariableByName("gTexelWidth").AsScalar();
_texelHeight = FX.GetVariableByName("gTexelHeight").AsScalar();
_normalDepthMap = FX.GetVariableByName("gNormalDepthMap").AsResource();
_inputImage = FX.GetVariableByName("gInputImage").AsResource();
}
示例10: SsaoNormalDepthEffect
public SsaoNormalDepthEffect(Device device, string filename) : base(device, filename) {
NormalDepthTech = FX.GetTechniqueByName("NormalDepth");
NormalDepthAlphaClipTech = FX.GetTechniqueByName("NormalDepthAlphaClip");
_worldView = FX.GetVariableByName("gWorldView").AsMatrix();
_worldInvTransposeView = FX.GetVariableByName("gWorldInvTransposeView").AsMatrix();
_worldViewProj = FX.GetVariableByName("gWorldViewProj").AsMatrix();
_texTransform = FX.GetVariableByName("gTexTransform").AsMatrix();
_diffuseMap = FX.GetVariableByName("gDiffuseMap").AsResource();
}
示例11: DebugTexEffect
public DebugTexEffect(Device device, string filename) : base(device, filename) {
ViewArgbTech = FX.GetTechniqueByName("ViewArgbTech");
ViewRedTech = FX.GetTechniqueByName("ViewRedTech");
ViewGreenTech = FX.GetTechniqueByName("ViewGreenTech");
ViewBlueTech = FX.GetTechniqueByName("ViewBlueTech");
ViewAlphaTech = FX.GetTechniqueByName("ViewAlphaTech");
_texture = FX.GetVariableByName("gTexture").AsResource();
_wvp = FX.GetVariableByName("gWorldViewProj").AsMatrix();
}
示例12: Blender
protected Blender(IServiceProvider services, string effectAsset)
{
if (services == null)
throw new ArgumentNullException("services");
if (effectAsset == null)
throw new ArgumentNullException("effectAsset");
resourceManager = (ResourceManager) services.GetService(typeof (ResourceManager));
renderer = (Renderer) services.GetService(typeof (Renderer));
effect = resourceManager.Load<Effect>(effectAsset);
effectTechnique = effect.GetTechniqueByName(BlenderTechniqueName);
}
示例13: InstancedNormalMapEffect
public InstancedNormalMapEffect(Device device, string filename) : base(device, filename) {
Light1Tech = FX.GetTechniqueByName("Light1");
Light3TexTech = FX.GetTechniqueByName("Light3Tex");
_viewProj = FX.GetVariableByName("gViewProj").AsMatrix();
_texTransform = FX.GetVariableByName("gTexTransform").AsMatrix();
_eyePosW = FX.GetVariableByName("gEyePosW").AsVector();
_dirLights = FX.GetVariableByName("gDirLights");
_mat = FX.GetVariableByName("gMaterial");
_diffuseMap = FX.GetVariableByName("gDiffuseMap").AsResource();
_normalMap = FX.GetVariableByName("gNormalMap").AsResource();
}
示例14: ForwardLightingEffect
public ForwardLightingEffect(Device device, string filename)
: base(device, filename) {
Ambient = FX.GetTechniqueByName("Ambient");
_worldViewProj = FX.GetVariableByName("WorldViewProjection").AsMatrix();
_world = FX.GetVariableByName("World").AsMatrix();
_worldInvTranspose = FX.GetVariableByName("gWorldInvTranspose").AsMatrix();
_ambientDown = FX.GetVariableByName("AmbientDown").AsVector();
_ambientRange = FX.GetVariableByName("AmbientRange").AsVector();
_diffuseMap = FX.GetVariableByName("DiffuseTexture").AsResource();
}
示例15: LoadResources
public override void LoadResources()
{
if (m_Disposed == true)
{
m_Effect = new Effect(GameEnvironment.Device, Bytecode); // Helper.ResolvePath(m_ShaderLocation), "fx_4_0", ShaderFlags.None, EffectFlags.None, null, null);
m_Technique = m_Effect.GetTechniqueByName("BlurBilinear");
m_Pass_Gaussian = m_Technique.GetPassByName("Gaussian");
m_SourceTex = m_Effect.GetVariableByName("g_SourceTex").AsResource();
m_GWeights = m_Effect.GetVariableByName("g_GWeights").AsScalar();
//m_ElementCount = 1 + GAUSSIAN_MAX_SAMPLES;
m_DataStride = Marshal.SizeOf(typeof(Vector2)) * (1 + GAUSSIAN_MAX_SAMPLES);
InputElement[] IADesc = new InputElement[1 + (GAUSSIAN_MAX_SAMPLES / 2)];
IADesc[0] = new InputElement()
{
SemanticName = "POSITION",
SemanticIndex = 0,
AlignedByteOffset = 0,
Slot = 0,
Classification = InputClassification.PerVertexData,
Format = Format.R32G32_Float
};
for (int i = 1; i < 1 + (GAUSSIAN_MAX_SAMPLES / 2); i++)
{
IADesc[i] = new InputElement()
{
SemanticName = "TEXCOORD",
SemanticIndex = i - 1,
AlignedByteOffset = 8 + (i - 1) * 16,
Slot = 0,
Classification = InputClassification.PerVertexData,
Format = Format.R32G32B32A32_Float
};
}
// Real number of "sematinc based" elements
//m_ElementCount = 1 + GAUSSIAN_MAX_SAMPLES / 2;
EffectPassDescription PassDesc = m_Pass_Gaussian.Description;
m_Layout = new InputLayout(GameEnvironment.Device, PassDesc.Signature, IADesc);
m_Disposed = false;
}
}