private void loadShaderVariables(BasicShader shader) { m_Effect = shader.Effect; // Obtain the technique m_Technique_HBAO_NLD[0] = m_Effect.GetTechniqueByName("HORIZON_BASED_AO_NLD_LOWQUALITY_Pass"); m_Technique_HBAO_LD[0] = m_Effect.GetTechniqueByName("HORIZON_BASED_AO_LD_LOWQUALITY_Pass"); m_Technique_HBAO_NLD[1] = m_Effect.GetTechniqueByName("HORIZON_BASED_AO_NLD_Pass"); m_Technique_HBAO_LD[1] = m_Effect.GetTechniqueByName("HORIZON_BASED_AO_LD_Pass"); m_Technique_HBAO_NLD[2] = m_Effect.GetTechniqueByName("HORIZON_BASED_AO_NLD_QUALITY_Pass"); m_Technique_HBAO_LD[2] = m_Effect.GetTechniqueByName("HORIZON_BASED_AO_LD_QUALITY_Pass"); // Obtain pointers to the shader variales m_DepthTexVar = m_Effect.GetVariableByName("tLinDepth").AsResource(); m_NormalTexVar = m_Effect.GetVariableByName("tNormal").AsResource(); m_RandTexVar = m_Effect.GetVariableByName("tRandom").AsResource(); m_pNumSteps = m_Effect.GetVariableByName("g_NumSteps").AsScalar(); m_pNumDirs = m_Effect.GetVariableByName("g_NumDir").AsScalar(); m_pRadius = m_Effect.GetVariableByName("g_R").AsScalar(); m_pInvRadius = m_Effect.GetVariableByName("g_inv_R").AsScalar(); m_pSqrRadius = m_Effect.GetVariableByName("g_sqr_R").AsScalar(); m_pAngleBias = m_Effect.GetVariableByName("g_AngleBias").AsScalar(); m_pTanAngleBias = m_Effect.GetVariableByName("g_TanAngleBias").AsScalar(); m_pAttenuation = m_Effect.GetVariableByName("g_Attenuation").AsScalar(); m_pContrast = m_Effect.GetVariableByName("g_Contrast").AsScalar(); m_pFocalLen = m_Effect.GetVariableByName("g_FocalLen").AsVector(); m_pInvFocalLen = m_Effect.GetVariableByName("g_InvFocalLen").AsVector(); m_pInvResolution = m_Effect.GetVariableByName("g_InvResolution").AsVector(); m_pResolution = m_Effect.GetVariableByName("g_Resolution").AsVector(); // Set Defaults updateShaderState(); }
public void Initialize(Device device) { _b = EffectUtils.Load(ShadersResourceManager.Manager, "DeferredTransparent"); E = new Effect(device, _b); TechDebug = E.GetTechniqueByName("Debug"); TechDebugPost = E.GetTechniqueByName("DebugPost"); TechDebugLighting = E.GetTechniqueByName("DebugLighting"); TechDebugLocalReflections = E.GetTechniqueByName("DebugLocalReflections"); TechCombine0 = E.GetTechniqueByName("Combine0"); for (var i = 0; i < TechDebug.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechDebug.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) { throw new System.Exception("input signature (DeferredTransparent, PT, Debug) == null"); } LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxWorldViewProjInv = new EffectOnlyMatrixVariable(E.GetVariableByName("gWorldViewProjInv").AsMatrix()); FxBaseMap = E.GetVariableByName("gBaseMap").AsResource(); FxNormalMap = E.GetVariableByName("gNormalMap").AsResource(); FxMapsMap = E.GetVariableByName("gMapsMap").AsResource(); FxDepthMap = E.GetVariableByName("gDepthMap").AsResource(); FxLightMap = E.GetVariableByName("gLightMap").AsResource(); FxLocalReflectionMap = E.GetVariableByName("gLocalReflectionMap").AsResource(); FxReflectionCubemap = E.GetVariableByName("gReflectionCubemap").AsResource(); FxAmbientDown = E.GetVariableByName("gAmbientDown").AsVector(); FxAmbientRange = E.GetVariableByName("gAmbientRange").AsVector(); FxEyePosW = E.GetVariableByName("gEyePosW").AsVector(); }
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(); }
protected override void OnLoadShaders(string shaderFileNeme) { base.OnLoadShaders("textureOnly.fx"); _CameraMatrix = Effect.GetVariableByName("ViewProjection").AsMatrix(); _DiffuseTexture = Effect.GetVariableByName("DiffuseTexture").AsResource(); }
// System.Collections.Generic.SortedDictionary<int,Vector2> public void RebuildTextureCache() { texturecache.Clear(); passindex.Clear(); for (int i = 0; i < this.shader.DefaultEffect.Description.GlobalVariableCount; i++) { EffectVariable var = this.shader.DefaultEffect.GetVariableByIndex(i); if (var.GetVariableType().Description.TypeName == "Texture2D") { EffectResourceVariable rv = var.AsResource(); texturecache.Add(rv); } if (var.GetVariableType().Description.TypeName == "float" || var.GetVariableType().Description.TypeName == "int") { if (var.Description.Semantic == "PASSINDEX") { passindex.Add(var.AsScalar()); } if (var.Description.Semantic == "PASSITERATIONINDEX") { passiterindex.Add(var.AsScalar()); } } } }
public static void RenderFullScreenQuad(ShaderResourceView srv) { Shader e = WorldData.GetObject("FullScreenQuad.fx") as Shader; if (e == null) { return; } ShaderHelper.UpdateCommonEffectVars(e, Matrix.Identity); EffectTechnique t = e.EffectObj.GetTechniqueByName("FullScreen"); Game.Device.InputAssembler.SetPrimitiveTopology(PrimitiveTopology.TriangleList); for (int p = 0; p < t.Description.PassCount; p++) { EffectPass pass = t.GetPassByIndex(p); InputLayout l = ShaderHelper.ConstructInputLayout(MeshInputElements10.FullScreenQuad, pass.Description.Signature); Game.Device.InputAssembler.SetInputLayout(l); EffectResourceVariable diffTex = e.GetVar(ShaderHelper.DiffTex).AsResource(); if (diffTex != null) { diffTex.SetResource(srv); } pass.Apply(); Game.Device.Draw(3, 0); } }
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(); }
public static bool SetResource(this EffectResourceVariable variable, IRenderableTexture texture) { var res = texture?.Resource; variable.SetResource(res); return(res != null); }
private void LoadEffect(string fileName) { _effect = Effect.FromFile(_dxDevice, fileName, "fx_4_0", ShaderFlags.None, EffectFlags.None, null, null); _streamOutTech = _effect.GetTechniqueByName("StreamOutTech"); _drawTech = _effect.GetTechniqueByName("DrawTech"); _viewProjVar = _effect.GetVariableByName("gViewProj").AsMatrix(); _gameTimeVar = _effect.GetVariableByName("gGameTime").AsScalar(); _timeStepVar = _effect.GetVariableByName("gTimeStep").AsScalar(); _eyePosVar = _effect.GetVariableByName("gEyePosW").AsVector(); _emitPosVar = _effect.GetVariableByName("gEmitPosW").AsVector(); _emitDirVar = _effect.GetVariableByName("gEmitDirW").AsVector(); _texArrayVar = _effect.GetVariableByName("gTexArray").AsResource(); _randomTexVar = _effect.GetVariableByName("gRandomTex").AsResource(); ShaderSignature signature = _streamOutTech.GetPassByIndex(0).Description.Signature; _vertexLayout = new InputLayout(_dxDevice, signature, new[] { new InputElement("POSITION", 0, Format.R32G32B32_Float, 0, 0), new InputElement("VELOCITY", 0, Format.R32G32B32_Float, 12, 0), new InputElement("SIZE", 0, Format.R32G32_Float, 24, 0), new InputElement("AGE", 0, Format.R32_Float, 32, 0), new InputElement("TYPE", 0, Format.R32_UInt, 36, 0) }); }
public void Initialize(Device device) { _b = EffectUtils.Load(ShadersResourceManager.Manager, "DeferredPpSslr"); E = new Effect(device, _b); TechHabrahabrVersion = E.GetTechniqueByName("HabrahabrVersion"); for (var i = 0; i < TechHabrahabrVersion.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechHabrahabrVersion.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) { throw new System.Exception("input signature (DeferredPpSslr, PT, HabrahabrVersion) == null"); } LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxWorldViewProjInv = new EffectOnlyMatrixVariable(E.GetVariableByName("gWorldViewProjInv").AsMatrix()); FxWorldViewProj = new EffectOnlyMatrixVariable(E.GetVariableByName("gWorldViewProj").AsMatrix()); FxBaseMap = E.GetVariableByName("gBaseMap").AsResource(); FxLightMap = E.GetVariableByName("gLightMap").AsResource(); FxNormalMap = E.GetVariableByName("gNormalMap").AsResource(); FxMapsMap = E.GetVariableByName("gMapsMap").AsResource(); FxDepthMap = E.GetVariableByName("gDepthMap").AsResource(); FxEyePosW = E.GetVariableByName("gEyePosW").AsVector(); }
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; } }
private void LoadEffect(string shaderFileName) { _effect = Effect.FromFile(_dxDevice, shaderFileName, "fx_4_0", ShaderFlags.None, EffectFlags.None, null, null); _renderTech = _effect.GetTechniqueByName("Render"); //C++ Comparaison// technique = effect->GetTechniqueByName( "Render" ); _eyePosWVar = _effect.GetVariableByName("gEyePosW").AsVector(); _viewProjVar = _effect.GetVariableByName("gViewProj").AsMatrix(); _worldVar = _effect.GetVariableByName("gWorld").AsMatrix(); _fillColorVar = _effect.GetVariableByName("gFillColor").AsVector(); _lightVariable = _effect.GetVariableByName("gLight"); _imageMapVar = _effect.GetVariableByName("gImageMap").AsResource(); _depthMapVar = _effect.GetVariableByName("gDepthMap").AsResource(); _resVar = _effect.GetVariableByName("gRes").AsVector(); _depthToRgbVar = _effect.GetVariableByName("gDepthToRgb").AsMatrix(); _focalLengthDepthVar = _effect.GetVariableByName("gFocalLengthDepth").AsScalar(); _focalLengthImageVar = _effect.GetVariableByName("gFocalLengthImage").AsScalar(); ShaderSignature signature = _renderTech.GetPassByIndex(0).Description.Signature; _inputLayout = new InputLayout(_dxDevice, signature, new[] { new InputElement("POSITION", 0, SlimDX.DXGI.Format.R16G16_SInt, 0, 0) }); }
public QuadShaderDeviceData(DX11RenderContext context) { string basepath = "VVVV.DX11.Nodes.effects.quad.fx"; DX11Effect effect = DX11Effect.FromResource(Assembly.GetExecutingAssembly(), basepath); quadshader = new DX11ShaderInstance(context, effect); texturevariable = quadshader.Effect.GetVariableBySemantic("INPUTTEXTURE").AsResource(); samplervariable = quadshader.Effect.GetVariableBySemantic("SAMPLERSTATE").AsSampler(); Quad quad = new Quad(); quad.Size = new Vector2(1.0f); quadgeometry = context.Primitives.QuadNormals(quad); quadlayouts = new List <InputLayout>(); for (int i = 0; i < 4; i++) { InputLayout layout; quadshader.SelectTechnique(i); bool res = quadgeometry.ValidateLayout(quadshader.GetPass(0), out layout); quadlayouts.Add(layout); } }
private void CompileShaders(string texturePath, string shaderPath) { _shaderEffect = new Effect(_device, ShaderBytecode.CompileFromFile(shaderPath, "fx_5_0", ShaderFlags.None, EffectFlags.None)); _shaderEffectPass = _shaderEffect.GetTechniqueByIndex((int)RenderParameters.ShaderMode).GetPassByIndex(0); _device.ImmediateContext.InputAssembler.InputLayout = new InputLayout(_device, _shaderEffectPass.Description.Signature, VertexShaderInput.InputLayout); // Setup Global Variables _world = _shaderEffect.GetVariableByName("World").AsMatrix(); _worldViewProjection = _shaderEffect.GetVariableByName("WorldViewProj").AsMatrix(); _tessFactor = _shaderEffect.GetVariableByName("TessFactor").AsScalar(); _textureMap = _shaderEffect.GetVariableByName("Texture").AsResource(); _enableTexture = _shaderEffect.GetVariableByName("EnableTexture").AsScalar(); _enableNormals = _shaderEffect.GetVariableByName("Normals").AsScalar(); _textureView = new ShaderResourceView(_device, Texture2D.FromFile(_device, texturePath)); // Setup Lighting Variables _phongParameters = _shaderEffect.GetVariableByName("AmbSpecDiffShini").AsVector(); _lightColor = _shaderEffect.GetVariableByName("LightColor").AsVector(); _lightDirection = _shaderEffect.GetVariableByName("LightDirection").AsVector(); _light2Color = _shaderEffect.GetVariableByName("Light2Color").AsVector(); _light2Direction = _shaderEffect.GetVariableByName("Light2Direction").AsVector(); _ambientLightColor = _shaderEffect.GetVariableByName("AmbientLight").AsVector(); _cameraPosition = _shaderEffect.GetVariableByName("Eye").AsVector(); _flatShading = _shaderEffect.GetVariableByName("FlatShading").AsScalar(); // Valences and Prefixes for ACC _valencePrefixResource = _shaderEffect.GetVariableByName("ValencePrefixBuffer").AsResource(); }
public ImageShaderInfo(DX11ShaderInstance shader) { var effect = shader.Effect; this.techniqueInfo = new ImageShaderTechniqueInfo[effect.Description.TechniqueCount]; int maxPassCount = 0; for (int i = 0; i < this.techniqueInfo.Length; i++) { this.techniqueInfo[i] = new ImageShaderTechniqueInfo(effect.GetTechniqueByIndex(i)); maxPassCount = this.techniqueInfo[i].PassCount > maxPassCount ? this.techniqueInfo[i].PassCount : maxPassCount; } //Set list of max pass count this.passResultVariableArray = new List <EffectResourceVariable> [maxPassCount]; for (int i = 0; i < effect.Description.GlobalVariableCount; i++) { EffectVariable var = effect.GetVariableByIndex(i); if (var.GetVariableType().Description.TypeName == "Texture2D") { EffectResourceVariable rv = var.AsResource(); if (rv.Description.Semantic == "INITIAL") { this.initialTextureVariables.Add(rv); } if (rv.Description.Semantic == "PREVIOUS") { this.previousTextureVariables.Add(rv); } if (rv.Description.Semantic == "DEPTHTEXTURE") { this.depthTextureVariables.Add(rv); } //If semantic starts with passresult if (rv.Description.Semantic.StartsWith("PASSRESULT")) { string sidx = rv.Description.Semantic.Substring(10); int pridx; if (int.TryParse(sidx, out pridx)) { if (pridx < maxPassCount) { if (this.passResultVariableArray[pridx] == null) { this.passResultVariableArray[pridx] = new List <EffectResourceVariable>(); } this.passResultVariableArray[pridx].Add(rv); } } } } } }
public TerrainEffect(Device device, string filename) : base(device, filename) { Light1Tech = FX.GetTechniqueByName("Light1"); Light2Tech = FX.GetTechniqueByName("Light2"); Light3Tech = FX.GetTechniqueByName("Light3"); Light1FogTech = FX.GetTechniqueByName("Light1Fog"); Light2FogTech = FX.GetTechniqueByName("Light2Fog"); Light3FogTech = FX.GetTechniqueByName("Light3Fog"); Light1ShadowTech = FX.GetTechniqueByName("Light1Shadow"); Light2ShadowTech = FX.GetTechniqueByName("Light2Shadow"); Light3ShadowTech = FX.GetTechniqueByName("Light3Shadow"); Light1FogShadowTech = FX.GetTechniqueByName("Light1FogShadow"); Light2FogShadowTech = FX.GetTechniqueByName("Light2FogShadow"); Light3FogShadowTech = FX.GetTechniqueByName("Light3FogShadow"); Light1TechNT = FX.GetTechniqueByName("Light1NT"); Light2TechNT = FX.GetTechniqueByName("Light2NT"); Light3TechNT = FX.GetTechniqueByName("Light3NT"); Light1FogTechNT = FX.GetTechniqueByName("Light1FogNT"); Light2FogTechNT = FX.GetTechniqueByName("Light2FogNT"); Light3FogTechNT = FX.GetTechniqueByName("Light3FogNT"); NormalDepthTech = FX.GetTechniqueByName("NormalDepth"); TessBuildShadowMapTech = FX.GetTechniqueByName("TessBuildShadowMapTech"); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _fogColor = FX.GetVariableByName("gFogColor").AsVector(); _fogStart = FX.GetVariableByName("gFogStart").AsScalar(); _fogRange = FX.GetVariableByName("gFogRange").AsScalar(); _dirLights = FX.GetVariableByName("gDirLights"); _mat = FX.GetVariableByName("gMaterial"); _minDist = FX.GetVariableByName("gMinDist").AsScalar(); _maxDist = FX.GetVariableByName("gMaxDist").AsScalar(); _minTess = FX.GetVariableByName("gMinTess").AsScalar(); _maxTess = FX.GetVariableByName("gMaxTess").AsScalar(); _texelCellSpaceU = FX.GetVariableByName("gTexelCellSpaceU").AsScalar(); _texelCellSpaceV = FX.GetVariableByName("gTexelCellSpaceV").AsScalar(); _worldCellSpace = FX.GetVariableByName("gWorldCellSpace").AsScalar(); _worldFrustumPlanes = FX.GetVariableByName("gWorldFrustumPlanes").AsVector(); _layerMapArray = FX.GetVariableByName("gLayerMapArray").AsResource(); _blendMap = FX.GetVariableByName("gBlendMap").AsResource(); _heightMap = FX.GetVariableByName("gHeightMap").AsResource(); _view = FX.GetVariableByName("gView").AsMatrix(); _ambientMap = FX.GetVariableByName("gSsaoMap").AsResource(); _viewProjTex = FX.GetVariableByName("gViewProjTex").AsMatrix(); _shadowTransform = FX.GetVariableByName("gShadowTransform").AsMatrix(); _shadowMap = FX.GetVariableByName("gShadowMap").AsResource(); _walkMap = FX.GetVariableByName("gWalkMap").AsResource(); _unwalkableSRV = FX.GetVariableByName("gUnwalkable").AsResource(); }
public void Initialize(Device device) { _b = EffectUtils.Load(ShadersResourceManager.Manager, "DarkMaterial"); E = new Effect(device, _b); TechStandard = E.GetTechniqueByName("Standard"); TechAlpha = E.GetTechniqueByName("Alpha"); TechReflective = E.GetTechniqueByName("Reflective"); TechNm = E.GetTechniqueByName("Nm"); TechNmUvMult = E.GetTechniqueByName("NmUvMult"); TechAtNm = E.GetTechniqueByName("AtNm"); TechMaps = E.GetTechniqueByName("Maps"); TechDiffMaps = E.GetTechniqueByName("DiffMaps"); TechGl = E.GetTechniqueByName("Gl"); TechAmbientShadow = E.GetTechniqueByName("AmbientShadow"); TechMirror = E.GetTechniqueByName("Mirror"); TechFlatMirror = E.GetTechniqueByName("FlatMirror"); for (var i = 0; i < TechAmbientShadow.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechAmbientShadow.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) { throw new System.Exception("input signature (DarkMaterial, PT, AmbientShadow) == null"); } LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); for (var i = 0; i < TechStandard.Description.PassCount && InputSignaturePNTG == null; i++) { InputSignaturePNTG = TechStandard.GetPassByIndex(i).Description.Signature; } if (InputSignaturePNTG == null) { throw new System.Exception("input signature (DarkMaterial, PNTG, Standard) == null"); } LayoutPNTG = new InputLayout(device, InputSignaturePNTG, InputLayouts.VerticePNTG.InputElementsValue); FxShadowViewProj = E.GetVariableByName("gShadowViewProj").AsMatrix(); FxWorld = E.GetVariableByName("gWorld").AsMatrix(); FxWorldInvTranspose = E.GetVariableByName("gWorldInvTranspose").AsMatrix(); FxWorldViewProj = E.GetVariableByName("gWorldViewProj").AsMatrix(); FxShadowMaps = E.GetVariableByName("gShadowMaps").AsResource(); FxDiffuseMap = E.GetVariableByName("gDiffuseMap").AsResource(); FxNormalMap = E.GetVariableByName("gNormalMap").AsResource(); FxMapsMap = E.GetVariableByName("gMapsMap").AsResource(); FxDetailsMap = E.GetVariableByName("gDetailsMap").AsResource(); FxDetailsNormalMap = E.GetVariableByName("gDetailsNormalMap").AsResource(); FxReflectionCubemap = E.GetVariableByName("gReflectionCubemap").AsResource(); FxFlatMirrored = E.GetVariableByName("gFlatMirrored").AsScalar(); FxEyePosW = E.GetVariableByName("gEyePosW").AsVector(); FxLightDir = E.GetVariableByName("gLightDir").AsVector(); FxMaterial = E.GetVariableByName("gMaterial"); FxReflectiveMaterial = E.GetVariableByName("gReflectiveMaterial"); FxMapsMaterial = E.GetVariableByName("gMapsMaterial"); FxAlphaMaterial = E.GetVariableByName("gAlphaMaterial"); FxNmUvMultMaterial = E.GetVariableByName("gNmUvMultMaterial"); }
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; } }
public WavesEffect(Device device, string filename) : base(device, filename) { _waveDispTexTransform0 = FX.GetVariableByName("gWaveDispTexTransform0").AsMatrix(); _waveDispTexTransform1 = FX.GetVariableByName("gWaveDispTexTransform1").AsMatrix(); _waveNormalTexTransform0 = FX.GetVariableByName("gWaveNormalTexTransform0").AsMatrix(); _waveNormalTexTransform1 = FX.GetVariableByName("gWaveNormalTexTransform1").AsMatrix(); _heightScale0 = FX.GetVariableByName("gHeightScale0").AsScalar(); _heightScale1 = FX.GetVariableByName("gHeightScale1").AsScalar(); _normalMap0 = FX.GetVariableByName("gNormalMap0").AsResource(); _normalMap1 = FX.GetVariableByName("gNormalMap1").AsResource(); }
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(); }
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(); }
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(); }
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(); }
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(); }
public WavesEffect(Device device, string filename) : base(device, filename) { _waveDispTexTransform0 = FX.GetVariableByName("gWaveDispTexTransform0").AsMatrix(); _waveDispTexTransform1 = FX.GetVariableByName("gWaveDispTexTransform1").AsMatrix(); _waveNormalTexTransform0 = FX.GetVariableByName("gWaveNormalTexTransform0").AsMatrix(); _waveNormalTexTransform1 = FX.GetVariableByName("gWaveNormalTexTransform1").AsMatrix(); _heightScale0 = FX.GetVariableByName("gHeightScale0").AsScalar(); _heightScale1 = FX.GetVariableByName("gHeightScale1").AsScalar(); _normalMap0 = FX.GetVariableByName("gNormalMap0").AsResource(); _normalMap1 = FX.GetVariableByName("gNormalMap1").AsResource(); }
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(); }
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(); }
private static void LoadShaders() { ShaderBytecode bytecode = null; bytecode = ShaderBytecode.CompileFromFile("Shaders.fx", null, "fx_5_0", ShaderFlags.None, EffectFlags.None, null, null); fx = new Effect(device, bytecode); bytecode.Dispose(); techniqueTextured = fx.GetTechniqueByName("Textured"); techniqueSelected = fx.GetTechniqueByName("Selected"); techniqueColor = fx.GetTechniqueByName("Color"); WVP = fx.GetVariableByName("WVP").AsMatrix(); fxTex = fx.GetVariableByName("tex").AsResource(); }
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(); }
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; } }
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(); }
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(); }
public SsaoEffect(Device device, string filename) : base(device, filename) { SsaoTech = FX.GetTechniqueByName("Ssao"); _viewToTexSpace = FX.GetVariableByName("gViewToTexSpace").AsMatrix(); _offsetVectors = FX.GetVariableByName("gOffsetVectors").AsVector(); _frustumCorners = FX.GetVariableByName("gFrustumCorners").AsVector(); _occlusionRadius = FX.GetVariableByName("gOcclusionRadius").AsScalar(); _occlusionFadeStart = FX.GetVariableByName("gOcclusionFadeStart").AsScalar(); _occlusionFadeEnd = FX.GetVariableByName("gOcclusionFadeEnd").AsScalar(); _surfaceEpsilon = FX.GetVariableByName("gSurfaceEpsilon").AsScalar(); _normalDepthMap = FX.GetVariableByName("gNormalDepthMap").AsResource(); _randomVecMap = FX.GetVariableByName("gRandomVecMap").AsResource(); }
public TreeSpriteEffect(Device device, string filename) : base(device, filename) { Light3Tech = FX.GetTechniqueByName("Light3"); Light3TexAlphaClipTech = FX.GetTechniqueByName("Light3TexAlphaClip"); Light3TexAlphaClipFogTech = FX.GetTechniqueByName("Light3TexAlphaClipFog"); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _fogColor = FX.GetVariableByName("gFogColor").AsVector(); _fogStart = FX.GetVariableByName("gFogStart").AsScalar(); _fogRange = FX.GetVariableByName("gFogRange").AsScalar(); _dirLights = FX.GetVariableByName("gDirLights"); _mat = FX.GetVariableByName("gMaterial"); _treeTextureMapArray = FX.GetVariableByName("gTreeMapArray").AsResource(); }
// System.Collections.Generic.SortedDictionary<int,Vector2> public void RebuildTextureCache() { texturecache.Clear(); for (int i = 0; i < this.shader.DefaultEffect.Description.GlobalVariableCount; i++) { EffectVariable var = this.shader.DefaultEffect.GetVariableByIndex(i); if (var.GetVariableType().Description.TypeName == "Texture2D") { EffectResourceVariable rv = var.AsResource(); texturecache.Add(rv); } } }
public static void RenderMesh2(Model m, Vector3 position, string effectName, string technique, Matrix mWorld, int stride) { if (m == null || m.MeshObj == null) { return; } Shader e = WorldData.GetObject(effectName) as Shader; Matrix world = Matrix.Identity + Matrix.Translation(position); if (mWorld != null) { world = mWorld; } ShaderHelper.UpdateCommonEffectVars(e, world); EffectTechnique t = e.EffectObj.GetTechniqueByName(technique); D3D10.Buffer indexBuffer = m.MeshObj.GetDeviceIndexBuffer(); D3D10.Buffer vertextBuffer = m.MeshObj.GetDeviceVertexBuffer(0); Game.Device.InputAssembler.SetPrimitiveTopology(PrimitiveTopology.TriangleList); Game.Device.InputAssembler.SetIndexBuffer(indexBuffer, Format.R16_UInt, 0); Game.Device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(vertextBuffer, stride, 0)); for (int p = 0; p < t.Description.PassCount; p++) { EffectPass pass = t.GetPassByIndex(p); InputLayout l = ShaderHelper.ConstructInputLayout(m.Mesh3d.inputElements, pass.Description.Signature); Game.Device.InputAssembler.SetInputLayout(l); for (int subset = 0; subset < m.Mesh3d.NumAttributes; subset++) { EffectResourceVariable diffTex = e.GetVar(ShaderHelper.DiffTex).AsResource(); if (diffTex != null) { diffTex.SetResource(m.Mesh3d.textureViews[subset]); } pass.Apply(); MeshAttributeRange r = m.Mesh3d.attrTable[subset]; // * 2 cause adj data is twice as much data //Game.Device.DrawIndexed((r.FaceCount * 3) * 2, (r.FaceStart * 3) * 2, 0); Game.Device.DrawIndexed((r.FaceCount * 3), (r.FaceStart * 3), 0); } } indexBuffer.Dispose(); vertextBuffer.Dispose(); }
public ParticleEffect(Device device, string filename) : base(device, filename) { StreamOutTech = FX.GetTechniqueByName("StreamOutTech"); DrawTech = FX.GetTechniqueByName("DrawTech"); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _gameTime = FX.GetVariableByName("gGameTime").AsScalar(); _timeStep = FX.GetVariableByName("gTimeStep").AsScalar(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _emitPosW = FX.GetVariableByName("gEmitPosW").AsVector(); _emitDirW = FX.GetVariableByName("gEmitDirW").AsVector(); _texArray = FX.GetVariableByName("gTexArray").AsResource(); _randomTex = FX.GetVariableByName("gRandomTex").AsResource(); }
public TreeSpriteEffect(Device device, string filename) : base(device, filename) { Light3Tech = FX.GetTechniqueByName("Light3"); Light3TexAlphaClipTech = FX.GetTechniqueByName("Light3TexAlphaClip"); Light3TexAlphaClipFogTech = FX.GetTechniqueByName("Light3TexAlphaClipFog"); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _fogColor = FX.GetVariableByName("gFogColor").AsVector(); _fogStart = FX.GetVariableByName("gFogStart").AsScalar(); _fogRange = FX.GetVariableByName("gFogRange").AsScalar(); _dirLights = FX.GetVariableByName("gDirLights"); _mat = FX.GetVariableByName("gMaterial"); _treeTextureMapArray = FX.GetVariableByName("gTreeMapArray").AsResource(); }
public SsaoEffect(Device device, string filename) : base(device, filename) { SsaoTech = FX.GetTechniqueByName("Ssao"); _viewToTexSpace = FX.GetVariableByName("gViewToTexSpace").AsMatrix(); _offsetVectors = FX.GetVariableByName("gOffsetVectors").AsVector(); _frustumCorners = FX.GetVariableByName("gFrustumCorners").AsVector(); _occlusionRadius = FX.GetVariableByName("gOcclusionRadius").AsScalar(); _occlusionFadeStart = FX.GetVariableByName("gOcclusionFadeStart").AsScalar(); _occlusionFadeEnd = FX.GetVariableByName("gOcclusionFadeEnd").AsScalar(); _surfaceEpsilon = FX.GetVariableByName("gSurfaceEpsilon").AsScalar(); _normalDepthMap = FX.GetVariableByName("gNormalDepthMap").AsResource(); _randomVecMap = FX.GetVariableByName("gRandomVecMap").AsResource(); }
public ShaderDeviceData(DX11RenderContext context) { string basepath = "VVVV.DX11.Nodes.effects.DrawFullScreen.fx"; using (DX11Effect effect = DX11Effect.FromResource(Assembly.GetExecutingAssembly(), basepath)) { shaderInstance = new DX11ShaderInstance(context, effect); inputTextureVariable = shaderInstance.Effect.GetVariableBySemantic("INPUTTEXTURE").AsResource(); colorVariable = shaderInstance.Effect.GetVariableBySemantic("COLOR").AsVector(); samplerVariable = shaderInstance.Effect.GetVariableBySemantic("TEXTURESAMPLER").AsSampler(); texTransformVariable = shaderInstance.Effect.GetVariableBySemantic("TEXTUREMATRIX").AsMatrix(); pass = shaderInstance.CurrentTechnique.GetPassByIndex(0); } }
public ParticleEffect(Device device, string filename) : base(device, filename) { StreamOutTech = FX.GetTechniqueByName("StreamOutTech"); DrawTech = FX.GetTechniqueByName("DrawTech"); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _gameTime = FX.GetVariableByName("gGameTime").AsScalar(); _timeStep = FX.GetVariableByName("gTimeStep").AsScalar(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _emitPosW = FX.GetVariableByName("gEmitPosW").AsVector(); _emitDirW = FX.GetVariableByName("gEmitDirW").AsVector(); _texArray = FX.GetVariableByName("gTexArray").AsResource(); _randomTex = FX.GetVariableByName("gRandomTex").AsResource(); }
/// <summary> /// Create our BasicEffect /// </summary> /// <param name="Device">The device which will be used to perform all the rendering</param> public BasicEffect(Device Device) { this.Device = Device; ImmediateContext = Device.ImmediateContext; // // Compile shader // string compileErrors; var compiledShader = SlimDX.D3DCompiler.ShaderBytecode.CompileFromFile ( "../../Effects/BasicEffect/BasicEffect.fx", null, "fx_5_0", SlimDX.D3DCompiler.ShaderFlags.Debug | SlimDX.D3DCompiler.ShaderFlags.SkipOptimization, SlimDX.D3DCompiler.EffectFlags.None, null, null, out compileErrors ); if (compileErrors != null && compileErrors != "") { throw new EffectBuildException(compileErrors); } Effect = new Effect(Device, compiledShader); EffectTechnique = Effect.GetTechniqueByName("BasicTechnique"); // // Setup input description // var vertexDesc = new[] { new InputElement("POSITION", 0, SlimDX.DXGI.Format.R32G32B32_Float, 0, 0, InputClassification.PerVertexData, 0), new InputElement("TEXCOORD", 0, SlimDX.DXGI.Format.R32G32_Float, 12, 0, InputClassification.PerVertexData, 0) }; WorldViewProj = SlimDX.Matrix.Identity; CPO_WorldViewProj = Effect.GetVariableByName("gWorldViewProj").AsMatrix(); CPO_SelectionColor = Effect.GetVariableByName("gSelectionColor").AsVector(); SRV_BasicTexture = Effect.GetVariableByName("gBasicTexture").AsResource(); InputLayout = new InputLayout(Device, EffectTechnique.GetPassByIndex(0).Description.Signature, vertexDesc); Util.ReleaseCom(ref compiledShader); }
public void Initialize(Device device) { _b = EffectUtils.Load(ShadersResourceManager.Manager, "DeferredGObject"); E = new Effect(device, _b); TechStandardDeferred = E.GetTechniqueByName("StandardDeferred"); TechStandardForward = E.GetTechniqueByName("StandardForward"); TechAmbientShadowDeferred = E.GetTechniqueByName("AmbientShadowDeferred"); TechTransparentDeferred = E.GetTechniqueByName("TransparentDeferred"); TechTransparentForward = E.GetTechniqueByName("TransparentForward"); TechTransparentMask = E.GetTechniqueByName("TransparentMask"); for (var i = 0; i < TechStandardDeferred.Description.PassCount && InputSignaturePNTG == null; i++) { InputSignaturePNTG = TechStandardDeferred.GetPassByIndex(i).Description.Signature; } if (InputSignaturePNTG == null) { throw new System.Exception("input signature (DeferredGObject, PNTG, StandardDeferred) == null"); } LayoutPNTG = new InputLayout(device, InputSignaturePNTG, InputLayouts.VerticePNTG.InputElementsValue); for (var i = 0; i < TechAmbientShadowDeferred.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechAmbientShadowDeferred.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) { throw new System.Exception("input signature (DeferredGObject, PT, AmbientShadowDeferred) == null"); } LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxWorld = new EffectOnlyMatrixVariable(E.GetVariableByName("gWorld").AsMatrix()); FxWorldInvTranspose = new EffectOnlyMatrixVariable(E.GetVariableByName("gWorldInvTranspose").AsMatrix()); FxWorldViewProj = new EffectOnlyMatrixVariable(E.GetVariableByName("gWorldViewProj").AsMatrix()); FxDiffuseMap = E.GetVariableByName("gDiffuseMap").AsResource(); FxNormalMap = E.GetVariableByName("gNormalMap").AsResource(); FxMapsMap = E.GetVariableByName("gMapsMap").AsResource(); FxDetailsMap = E.GetVariableByName("gDetailsMap").AsResource(); FxDetailsNormalMap = E.GetVariableByName("gDetailsNormalMap").AsResource(); FxReflectionCubemap = E.GetVariableByName("gReflectionCubemap").AsResource(); FxEyePosW = E.GetVariableByName("gEyePosW").AsVector(); FxAmbientDown = E.GetVariableByName("gAmbientDown").AsVector(); FxAmbientRange = E.GetVariableByName("gAmbientRange").AsVector(); FxLightColor = E.GetVariableByName("gLightColor").AsVector(); FxDirectionalLightDirection = E.GetVariableByName("gDirectionalLightDirection").AsVector(); FxMaterial = E.GetVariableByName("gMaterial"); }
public void Load() { try { using (ShaderBytecode effectByteCode = ShaderBytecode.CompileFromFile( "Shaders/MorphingUnit.fx", "Render", "fx_5_0", ShaderFlags.EnableStrictness, EffectFlags.None)) { effect = new Effect(DeviceManager.Instance.device, effectByteCode); technique = effect.GetTechniqueByIndex(0); pass = technique.GetPassByIndex(0); inputSignature = pass.Description.Signature; } layout = new InputLayout(DeviceManager.Instance.device, inputSignature, elements); //WorldViewProjection = effect.GetVariableByName("matWorldViewProj").AsMatrix(); World = effect.GetVariableByName("World").AsMatrix(); View = effect.GetVariableByName("View").AsMatrix(); Projection = effect.GetVariableByName("Projection").AsMatrix(); //LightDir = effect.GetVariableByName("vecLightDir").AsVector(); CameraPosition = effect.GetVariableByName("CameraPosition").AsVector(); LightDirection = effect.GetVariableByName("LightDirection").AsVector(); DiffuseColor = effect.GetVariableByName("DiffuseColor").AsVector(); AmbientColor = effect.GetVariableByName("AmbientColor").AsVector(); SpecularColor = effect.GetVariableByName("SpecularColor").AsVector(); LightColor = effect.GetVariableByName("LightColor").AsVector(); SpecularPower = effect.GetVariableByName("SpecularPower").AsScalar(); UseTexture = effect.GetVariableByName("UseTexture").AsScalar(); TextureVariable = effect.GetVariableByName("Texture").AsResource(); RealmBlend = effect.GetVariableByName("RealmBlend").AsScalar(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
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.Debug | ShaderFlags.EnableStrictness, EffectFlags.None, null, null); m_Technique = m_Effect.GetTechniqueByName("Render"); m_Pass0 = m_Technique.GetPassByName("P0"); /*m_Layout = new InputLayout(GameEnvironment.Device, m_Pass0.Description.Signature, new[] { new InputElement( "POSITION", 0, Format.R32G32B32_Float, 0, 0, InputClassification.PerVertexData, 0), new InputElement( "NORMAL", 0, Format.R32G32B32_Float, 0, 12, InputClassification.PerVertexData, 0), new InputElement( "TEXCOORD", 0, Format.R32G32_Float, 0, 24, InputClassification.PerVertexData, 0), });*/ m_Layout = new InputLayout(GameEnvironment.Device, m_Pass0.Description.Signature, new[] { new InputElement("POSITION", 0, Format.R32G32B32_Float, 0, 0), new InputElement("NORMAL", 0, Format.R32G32B32_Float, 12, 0), new InputElement("TEXCOORD", 0, Format.R32G32_Float, 24, 0) }); //texColorMap //texNormalMap //texDiffuseMap //texSpecularMap //m_DiffuseVariable = m_Effect.GetVariableByName("g_txDiffuse").AsResource(); m_DiffuseVariable = m_Effect.GetVariableByName("texColorMap").AsResource(); m_NormalMapVariable = m_Effect.GetVariableByName("texNormalMap").AsResource(); m_WorldVariable = m_Effect.GetVariableByName("World").AsMatrix(); m_ViewVariable = m_Effect.GetVariableByName("View").AsMatrix(); m_InvViewVariable = m_Effect.GetVariableByName("InvView").AsMatrix(); m_ProjectionVariable = m_Effect.GetVariableByName("Projection").AsMatrix(); //m_SpecularMapVariable = m_Effect.GetVariableByName("g_txEnvMap").AsResource(); m_SpecularMapVariable = m_Effect.GetVariableByName("texSpecularMap").AsResource(); m_DiffuseMapVariable = m_Effect.GetVariableByName("texDiffuseMap").AsResource(); m_EyeVariable = m_Effect.GetVariableByName("Eye").AsVector(); m_Disposed = false; } }
public BuildShadowMapEffect(Device device, string filename) : base(device, filename) { BuildShadowMapTech = FX.GetTechniqueByName("BuildShadowMapTech"); BuildShadowMapAlphaClipTech = FX.GetTechniqueByName("BuildShadowMapAlphaClipTech"); TessBuildShadowMapTech = FX.GetTechniqueByName("TessBuildShadowMapTech"); TessBuildShadowMapAlphaClipTech = FX.GetTechniqueByName("TessBuildShadowMapAlphaClipTech"); _heightScale = FX.GetVariableByName("gHeightScale").AsScalar(); _maxTessDistance = FX.GetVariableByName("gMaxTessDistance").AsScalar(); _minTessDistance = FX.GetVariableByName("gMinTessDistance").AsScalar(); _minTessFactor = FX.GetVariableByName("gMinTessFactor").AsScalar(); _maxTessFactor = FX.GetVariableByName("gMaxTessFactor").AsScalar(); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _normalMap = FX.GetVariableByName("gNormalMap").AsResource(); _diffuseMap = FX.GetVariableByName("gDiffuseMap").AsResource(); _worldViewProj = FX.GetVariableByName("gWorldViewProj").AsMatrix(); _world = FX.GetVariableByName("gWorld").AsMatrix(); _worldInvTranspose = FX.GetVariableByName("gWorldInvTranspose").AsMatrix(); _texTransform = FX.GetVariableByName("gTexTransform").AsMatrix(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); }
public TerrainEffect(Device device, string filename) : base(device, filename) { Light1Tech = FX.GetTechniqueByName("Light1"); Light2Tech = FX.GetTechniqueByName("Light2"); Light3Tech = FX.GetTechniqueByName("Light3"); Light1FogTech = FX.GetTechniqueByName("Light1Fog"); Light2FogTech = FX.GetTechniqueByName("Light2Fog"); Light3FogTech = FX.GetTechniqueByName("Light3Fog"); Light1ShadowTech = FX.GetTechniqueByName("Light1Shadow"); Light2ShadowTech = FX.GetTechniqueByName("Light2Shadow"); Light3ShadowTech = FX.GetTechniqueByName("Light3Shadow"); Light1FogShadowTech = FX.GetTechniqueByName("Light1FogShadow"); Light2FogShadowTech = FX.GetTechniqueByName("Light2FogShadow"); Light3FogShadowTech = FX.GetTechniqueByName("Light3FogShadow"); Light1TechNT = FX.GetTechniqueByName("Light1NT"); Light2TechNT = FX.GetTechniqueByName("Light2NT"); Light3TechNT = FX.GetTechniqueByName("Light3NT"); Light1FogTechNT = FX.GetTechniqueByName("Light1FogNT"); Light2FogTechNT = FX.GetTechniqueByName("Light2FogNT"); Light3FogTechNT = FX.GetTechniqueByName("Light3FogNT"); NormalDepthTech = FX.GetTechniqueByName("NormalDepth"); TessBuildShadowMapTech = FX.GetTechniqueByName("TessBuildShadowMapTech"); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _fogColor = FX.GetVariableByName("gFogColor").AsVector(); _fogStart = FX.GetVariableByName("gFogStart").AsScalar(); _fogRange = FX.GetVariableByName("gFogRange").AsScalar(); _dirLights = FX.GetVariableByName("gDirLights"); _mat = FX.GetVariableByName("gMaterial"); _minDist = FX.GetVariableByName("gMinDist").AsScalar(); _maxDist = FX.GetVariableByName("gMaxDist").AsScalar(); _minTess = FX.GetVariableByName("gMinTess").AsScalar(); _maxTess = FX.GetVariableByName("gMaxTess").AsScalar(); _texelCellSpaceU = FX.GetVariableByName("gTexelCellSpaceU").AsScalar(); _texelCellSpaceV = FX.GetVariableByName("gTexelCellSpaceV").AsScalar(); _worldCellSpace = FX.GetVariableByName("gWorldCellSpace").AsScalar(); _worldFrustumPlanes = FX.GetVariableByName("gWorldFrustumPlanes").AsVector(); _layerMapArray = FX.GetVariableByName("gLayerMapArray").AsResource(); _blendMap = FX.GetVariableByName("gBlendMap").AsResource(); _heightMap = FX.GetVariableByName("gHeightMap").AsResource(); _view = FX.GetVariableByName("gView").AsMatrix(); _ambientMap = FX.GetVariableByName("gSsaoMap").AsResource(); _viewProjTex = FX.GetVariableByName("gViewProjTex").AsMatrix(); _shadowTransform = FX.GetVariableByName("gShadowTransform").AsMatrix(); _shadowMap = FX.GetVariableByName("gShadowMap").AsResource(); _walkMap = FX.GetVariableByName("gWalkMap").AsResource(); _unwalkableSRV = FX.GetVariableByName("gUnwalkable").AsResource(); }
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; } }
public InstancedBasicEffect(Device device, string filename) : base(device, filename) { Light1Tech = FX.GetTechniqueByName("Light1"); Light2Tech = FX.GetTechniqueByName("Light2"); Light3Tech = FX.GetTechniqueByName("Light3"); Light0TexTech = FX.GetTechniqueByName("Light0Tex"); Light1TexTech = FX.GetTechniqueByName("Light1Tex"); Light2TexTech = FX.GetTechniqueByName("Light2Tex"); Light3TexTech = FX.GetTechniqueByName("Light3Tex"); Light0TexAlphaClipTech = FX.GetTechniqueByName("Light0TexAlphaClip"); Light1TexAlphaClipTech = FX.GetTechniqueByName("Light1TexAlphaClip"); Light2TexAlphaClipTech = FX.GetTechniqueByName("Light2TexAlphaClip"); Light3TexAlphaClipTech = FX.GetTechniqueByName("Light3TexAlphaClip"); Light1FogTech = FX.GetTechniqueByName("Light1Fog"); Light2FogTech = FX.GetTechniqueByName("Light2Fog"); Light3FogTech = FX.GetTechniqueByName("Light3Fog"); Light0TexFogTech = FX.GetTechniqueByName("Light0TexFog"); Light1TexFogTech = FX.GetTechniqueByName("Light1TexFog"); Light2TexFogTech = FX.GetTechniqueByName("Light2TexFog"); Light3TexFogTech = FX.GetTechniqueByName("Light3TexFog"); Light0TexAlphaClipFogTech = FX.GetTechniqueByName("Light0TexAlphaClipFog"); Light1TexAlphaClipFogTech = FX.GetTechniqueByName("Light1TexAlphaClipFog"); Light2TexAlphaClipFogTech = FX.GetTechniqueByName("Light2TexAlphaClipFog"); Light3TexAlphaClipFogTech = FX.GetTechniqueByName("Light3TexAlphaClipFog"); _viewProj = FX.GetVariableByName("gViewProj").AsMatrix(); _texTransform = FX.GetVariableByName("gTexTransform").AsMatrix(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _fogColor = FX.GetVariableByName("gFogColor").AsVector(); _fogStart = FX.GetVariableByName("gFogStart").AsScalar(); _fogRange = FX.GetVariableByName("gFogRange").AsScalar(); _dirLights = FX.GetVariableByName("gDirLights"); _mat = FX.GetVariableByName("gMaterial"); _diffuseMap = FX.GetVariableByName("gDiffuseMap").AsResource(); }
public void Initialize(Device device) { _b = EffectUtils.Load("SpecialTrackMap"); E = new Effect(device, _b); TechMain = E.GetTechniqueByName("Main"); TechPp = E.GetTechniqueByName("Pp"); TechFinal = E.GetTechniqueByName("Final"); TechFinalCheckers = E.GetTechniqueByName("FinalCheckers"); TechPpHorizontalBlur = E.GetTechniqueByName("PpHorizontalBlur"); TechPpVerticalBlur = E.GetTechniqueByName("PpVerticalBlur"); for (var i = 0; i < TechMain.Description.PassCount && InputSignaturePNTG == null; i++) { InputSignaturePNTG = TechMain.GetPassByIndex(i).Description.Signature; } if (InputSignaturePNTG == null) throw new System.Exception("input signature (SpecialTrackMap, PNTG, Main) == null"); LayoutPNTG = new InputLayout(device, InputSignaturePNTG, InputLayouts.VerticePNTG.InputElementsValue); for (var i = 0; i < TechPp.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechPp.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) throw new System.Exception("input signature (SpecialTrackMap, PT, Pp) == null"); LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxWorldViewProj = E.GetVariableByName("gWorldViewProj").AsMatrix(); FxWorldInvTranspose = E.GetVariableByName("gWorldInvTranspose").AsMatrix(); FxInputMap = E.GetVariableByName("gInputMap").AsResource(); FxScreenSize = E.GetVariableByName("gScreenSize").AsVector(); }
public QuadShaderDeviceData(DX11RenderContext context) { string basepath = "VVVV.DX11.Nodes.effects.quad.fx"; DX11Effect effect = DX11Effect.FromResource(Assembly.GetExecutingAssembly(), basepath); quadshader = new DX11ShaderInstance(context, effect); texturevariable = quadshader.Effect.GetVariableBySemantic("INPUTTEXTURE").AsResource(); samplervariable = quadshader.Effect.GetVariableBySemantic("SAMPLERSTATE").AsSampler(); Quad quad = new Quad(); quad.Size = new Vector2(1.0f); quadgeometry = context.Primitives.QuadNormals(quad); quadlayouts = new List<InputLayout>(); for (int i = 0; i < 4; i++) { InputLayout layout; quadshader.SelectTechnique(i); bool res = quadgeometry.ValidateLayout(quadshader.GetPass(0), out layout); quadlayouts.Add(layout); } }
public MenuEffect(Device device) { Device = device; ImmediateContext = Device.ImmediateContext; // Compile the shader... string compileErrors; var compiledShader = SlimDX.D3DCompiler.ShaderBytecode.CompileFromFile ( "../../Effects/MenuEffect/MenuEffect.fx", null, "fx_5_0", SlimDX.D3DCompiler.ShaderFlags.None, SlimDX.D3DCompiler.EffectFlags.None, null, null, out compileErrors ); if (compileErrors != null && compileErrors != "") { throw new EffectBuildException(compileErrors); } Effect = new Effect(Device, compiledShader); Technique = Effect.GetTechniqueByName("MenuTechnique"); var vertexDesc = new[] { new InputElement("POSITION", 0, SlimDX.DXGI.Format.R32G32_Float, 0, 0, InputClassification.PerVertexData, 0), new InputElement("TEXCOORD", 0, SlimDX.DXGI.Format.R32G32_Float, 8, 0, InputClassification.PerVertexData, 0) }; CPO_BlendColor = Effect.GetVariableByName("gBlendColor").AsVector(); SRV_DiffuseMap = Effect.GetVariableByName("gDiffuseMap").AsResource(); InputLayout = new InputLayout(Device, Technique.GetPassByIndex(0).Description.Signature, vertexDesc); Util.ReleaseCom(ref compiledShader); DepthStencilStateDescription dssd = new DepthStencilStateDescription() { IsDepthEnabled = false, DepthWriteMask = DepthWriteMask.All, DepthComparison = Comparison.Less, IsStencilEnabled = true, StencilReadMask = 0xFF, StencilWriteMask = 0xFF, FrontFace = new DepthStencilOperationDescription() { FailOperation = StencilOperation.Keep, PassOperation = StencilOperation.Keep, DepthFailOperation = StencilOperation.Increment, Comparison = Comparison.Always }, BackFace = new DepthStencilOperationDescription() { FailOperation = StencilOperation.Keep, PassOperation = StencilOperation.Keep, Comparison = Comparison.Always, DepthFailOperation = StencilOperation.Decrement } }; DepthDisabledState = DepthStencilState.FromDescription(Device, dssd); }
public BasicEffect(Device device, string filename) : base(device, filename) { Light1Tech = FX.GetTechniqueByName("Light1"); Light2Tech = FX.GetTechniqueByName("Light2"); Light3Tech = FX.GetTechniqueByName("Light3"); Light0TexTech = FX.GetTechniqueByName("Light0Tex"); Light1TexTech = FX.GetTechniqueByName("Light1Tex"); Light2TexTech = FX.GetTechniqueByName("Light2Tex"); Light3TexTech = FX.GetTechniqueByName("Light3Tex"); Light0TexAlphaClipTech = FX.GetTechniqueByName("Light0TexAlphaClip"); Light1TexAlphaClipTech = FX.GetTechniqueByName("Light1TexAlphaClip"); Light2TexAlphaClipTech = FX.GetTechniqueByName("Light2TexAlphaClip"); Light3TexAlphaClipTech = FX.GetTechniqueByName("Light3TexAlphaClip"); Light1FogTech = FX.GetTechniqueByName("Light1Fog"); Light2FogTech = FX.GetTechniqueByName("Light2Fog"); Light3FogTech = FX.GetTechniqueByName("Light3Fog"); Light0TexFogTech = FX.GetTechniqueByName("Light0TexFog"); Light1TexFogTech = FX.GetTechniqueByName("Light1TexFog"); Light2TexFogTech = FX.GetTechniqueByName("Light2TexFog"); Light3TexFogTech = FX.GetTechniqueByName("Light3TexFog"); Light0TexAlphaClipFogTech = FX.GetTechniqueByName("Light0TexAlphaClipFog"); Light1TexAlphaClipFogTech = FX.GetTechniqueByName("Light1TexAlphaClipFog"); Light2TexAlphaClipFogTech = FX.GetTechniqueByName("Light2TexAlphaClipFog"); Light3TexAlphaClipFogTech = FX.GetTechniqueByName("Light3TexAlphaClipFog"); Light1ReflectTech = FX.GetTechniqueByName("Light1Reflect"); Light2ReflectTech = FX.GetTechniqueByName("Light2Reflect"); Light3ReflectTech = FX.GetTechniqueByName("Light3Reflect"); Light0TexReflectTech = FX.GetTechniqueByName("Light0TexReflect"); Light1TexReflectTech = FX.GetTechniqueByName("Light1TexReflect"); Light2TexReflectTech = FX.GetTechniqueByName("Light2TexReflect"); Light3TexReflectTech = FX.GetTechniqueByName("Light3TexReflect"); Light0TexAlphaClipReflectTech = FX.GetTechniqueByName("Light0TexAlphaClipReflect"); Light1TexAlphaClipReflectTech = FX.GetTechniqueByName("Light1TexAlphaClipReflect"); Light2TexAlphaClipReflectTech = FX.GetTechniqueByName("Light2TexAlphaClipReflect"); Light3TexAlphaClipReflectTech = FX.GetTechniqueByName("Light3TexAlphaClipReflect"); Light1FogReflectTech = FX.GetTechniqueByName("Light1FogReflect"); Light2FogReflectTech = FX.GetTechniqueByName("Light2FogReflect"); Light3FogReflectTech = FX.GetTechniqueByName("Light3FogReflect"); Light0TexFogReflectTech = FX.GetTechniqueByName("Light0TexFogReflect"); Light1TexFogReflectTech = FX.GetTechniqueByName("Light1TexFogReflect"); Light2TexFogReflectTech = FX.GetTechniqueByName("Light2TexFogReflect"); Light3TexFogReflectTech = FX.GetTechniqueByName("Light3TexFogReflect"); Light0TexAlphaClipFogReflectTech = FX.GetTechniqueByName("Light0TexAlphaClipFogReflect"); Light1TexAlphaClipFogReflectTech = FX.GetTechniqueByName("Light1TexAlphaClipFogReflect"); Light2TexAlphaClipFogReflectTech = FX.GetTechniqueByName("Light2TexAlphaClipFogReflect"); Light3TexAlphaClipFogReflectTech = FX.GetTechniqueByName("Light3TexAlphaClipFogReflect"); // skinned techs Light1SkinnedTech = FX.GetTechniqueByName("Light1Skinned"); Light2SkinnedTech = FX.GetTechniqueByName("Light2Skinned"); Light3SkinnedTech = FX.GetTechniqueByName("Light3Skinned"); Light0TexSkinnedTech = FX.GetTechniqueByName("Light0TexSkinned"); Light1TexSkinnedTech = FX.GetTechniqueByName("Light1TexSkinned"); Light2TexSkinnedTech = FX.GetTechniqueByName("Light2TexSkinned"); Light3TexSkinnedTech = FX.GetTechniqueByName("Light3TexSkinned"); Light0TexAlphaClipSkinnedTech = FX.GetTechniqueByName("Light0TexAlphaClipSkinned"); Light1TexAlphaClipSkinnedTech = FX.GetTechniqueByName("Light1TexAlphaClipSkinned"); Light2TexAlphaClipSkinnedTech = FX.GetTechniqueByName("Light2TexAlphaClipSkinned"); Light3TexAlphaClipSkinnedTech = FX.GetTechniqueByName("Light3TexAlphaClipSkinned"); Light1FogSkinnedTech = FX.GetTechniqueByName("Light1FogSkinned"); Light2FogSkinnedTech = FX.GetTechniqueByName("Light2FogSkinned"); Light3FogSkinnedTech = FX.GetTechniqueByName("Light3FogSkinned"); Light0TexFogSkinnedTech = FX.GetTechniqueByName("Light0TexFogSkinned"); Light1TexFogSkinnedTech = FX.GetTechniqueByName("Light1TexFogSkinned"); Light2TexFogSkinnedTech = FX.GetTechniqueByName("Light2TexFogSkinned"); Light3TexFogSkinnedTech = FX.GetTechniqueByName("Light3TexFogSkinned"); Light0TexAlphaClipFogSkinnedTech = FX.GetTechniqueByName("Light0TexAlphaClipFogSkinned"); Light1TexAlphaClipFogSkinnedTech = FX.GetTechniqueByName("Light1TexAlphaClipFogSkinned"); Light2TexAlphaClipFogSkinnedTech = FX.GetTechniqueByName("Light2TexAlphaClipFogSkinned"); Light3TexAlphaClipFogSkinnedTech = FX.GetTechniqueByName("Light3TexAlphaClipFogSkinned"); Light1ReflectSkinnedTech = FX.GetTechniqueByName("Light1ReflectSkinned"); Light2ReflectSkinnedTech = FX.GetTechniqueByName("Light2ReflectSkinned"); Light3ReflectSkinnedTech = FX.GetTechniqueByName("Light3ReflectSkinned"); Light0TexReflectSkinnedTech = FX.GetTechniqueByName("Light0TexReflectSkinned"); Light1TexReflectSkinnedTech = FX.GetTechniqueByName("Light1TexReflectSkinned"); Light2TexReflectSkinnedTech = FX.GetTechniqueByName("Light2TexReflectSkinned"); Light3TexReflectSkinnedTech = FX.GetTechniqueByName("Light3TexReflectSkinned"); Light0TexAlphaClipReflectSkinnedTech = FX.GetTechniqueByName("Light0TexAlphaClipReflectSkinned"); Light1TexAlphaClipReflectSkinnedTech = FX.GetTechniqueByName("Light1TexAlphaClipReflectSkinned"); Light2TexAlphaClipReflectSkinnedTech = FX.GetTechniqueByName("Light2TexAlphaClipReflectSkinned"); Light3TexAlphaClipReflectSkinnedTech = FX.GetTechniqueByName("Light3TexAlphaClipReflectSkinned"); Light1FogReflectSkinnedTech = FX.GetTechniqueByName("Light1FogReflectSkinned"); Light2FogReflectSkinnedTech = FX.GetTechniqueByName("Light2FogReflectSkinned"); Light3FogReflectSkinnedTech = FX.GetTechniqueByName("Light3FogReflectSkinned"); Light0TexFogReflectSkinnedTech = FX.GetTechniqueByName("Light0TexFogReflectSkinned"); Light1TexFogReflectSkinnedTech = FX.GetTechniqueByName("Light1TexFogReflectSkinned"); Light2TexFogReflectSkinnedTech = FX.GetTechniqueByName("Light2TexFogReflectSkinned"); Light3TexFogReflectSkinnedTech = FX.GetTechniqueByName("Light3TexFogReflectSkinned"); Light0TexAlphaClipFogReflectSkinnedTech = FX.GetTechniqueByName("Light0TexAlphaClipFogReflectSkinned"); Light1TexAlphaClipFogReflectSkinnedTech = FX.GetTechniqueByName("Light1TexAlphaClipFogReflectSkinned"); Light2TexAlphaClipFogReflectSkinnedTech = FX.GetTechniqueByName("Light2TexAlphaClipFogReflectSkinned"); Light3TexAlphaClipFogReflectSkinnedTech = FX.GetTechniqueByName("Light3TexAlphaClipFogReflectSkinned"); _worldViewProj = FX.GetVariableByName("gWorldViewProj").AsMatrix(); _world = FX.GetVariableByName("gWorld").AsMatrix(); _worldInvTranspose = FX.GetVariableByName("gWorldInvTranspose").AsMatrix(); _texTransform = FX.GetVariableByName("gTexTransform").AsMatrix(); _eyePosW = FX.GetVariableByName("gEyePosW").AsVector(); _fogColor = FX.GetVariableByName("gFogColor").AsVector(); _fogStart = FX.GetVariableByName("gFogStart").AsScalar(); _fogRange = FX.GetVariableByName("gFogRange").AsScalar(); _dirLights = FX.GetVariableByName("gDirLights"); _mat = FX.GetVariableByName("gMaterial"); _diffuseMap = FX.GetVariableByName("gDiffuseMap").AsResource(); _shadowMap = FX.GetVariableByName("gShadowMap").AsResource(); _cubeMap = FX.GetVariableByName("gCubeMap").AsResource(); _boneTransforms = FX.GetVariableByName("gBoneTransforms").AsMatrix(); _shadowTransform = FX.GetVariableByName("gShadowTransform").AsMatrix(); _ssaoMap = FX.GetVariableByName("gSsaoMap").AsResource(); _worldViewProjTex = FX.GetVariableByName("gWorldViewProjTex").AsMatrix(); }
private void LoadEffect(string shaderFileName) { _effect = Effect.FromFile(_dxDevice, shaderFileName, "fx_4_0", ShaderFlags.None, EffectFlags.None, null, null); _renderTech = _effect.GetTechniqueByName("Render"); //C++ Comparaison// technique = effect->GetTechniqueByName( "Render" ); _eyePosWVar = _effect.GetVariableByName("gEyePosW").AsVector(); _viewProjVar = _effect.GetVariableByName("gViewProj").AsMatrix(); _worldVar = _effect.GetVariableByName("gWorld").AsMatrix(); _fillColorVar = _effect.GetVariableByName("gFillColor").AsVector(); _lightVariable = _effect.GetVariableByName("gLight"); _imageMapVar = _effect.GetVariableByName("gImageMap").AsResource(); _depthMapVar = _effect.GetVariableByName("gDepthMap").AsResource(); _resVar = _effect.GetVariableByName("gRes").AsVector(); _depthToRgbVar = _effect.GetVariableByName("gDepthToRgb").AsMatrix(); _focalLengthDepthVar = _effect.GetVariableByName("gFocalLengthDepth").AsScalar(); _focalLengthImageVar = _effect.GetVariableByName("gFocalLengthImage").AsScalar(); ShaderSignature signature = _renderTech.GetPassByIndex(0).Description.Signature; _inputLayout = new InputLayout(_dxDevice, signature, new[] { new InputElement("POSITION", 0, SlimDX.DXGI.Format.R16G16_SInt, 0, 0) }); }
private void CompileShaders(string texturePath, string shaderPath) { _shaderEffect = new Effect(_device, ShaderBytecode.CompileFromFile(shaderPath, "fx_5_0", ShaderFlags.None, EffectFlags.None)); _shaderEffectPass = _shaderEffect.GetTechniqueByIndex((int) RenderParameters.ShaderMode).GetPassByIndex(0); _device.ImmediateContext.InputAssembler.InputLayout = new InputLayout(_device, _shaderEffectPass.Description.Signature, VertexShaderInput.InputLayout); // Setup Global Variables _world = _shaderEffect.GetVariableByName("World").AsMatrix(); _worldViewProjection = _shaderEffect.GetVariableByName("WorldViewProj").AsMatrix(); _tessFactor = _shaderEffect.GetVariableByName("TessFactor").AsScalar(); _textureMap = _shaderEffect.GetVariableByName("Texture").AsResource(); _enableTexture = _shaderEffect.GetVariableByName("EnableTexture").AsScalar(); _enableNormals = _shaderEffect.GetVariableByName("Normals").AsScalar(); _textureView = new ShaderResourceView(_device, Texture2D.FromFile(_device, texturePath)); // Setup Lighting Variables _phongParameters = _shaderEffect.GetVariableByName("AmbSpecDiffShini").AsVector(); _lightColor = _shaderEffect.GetVariableByName("LightColor").AsVector(); _lightDirection = _shaderEffect.GetVariableByName("LightDirection").AsVector(); _light2Color = _shaderEffect.GetVariableByName("Light2Color").AsVector(); _light2Direction = _shaderEffect.GetVariableByName("Light2Direction").AsVector(); _ambientLightColor = _shaderEffect.GetVariableByName("AmbientLight").AsVector(); _cameraPosition = _shaderEffect.GetVariableByName("Eye").AsVector(); _flatShading = _shaderEffect.GetVariableByName("FlatShading").AsScalar(); // Valences and Prefixes for ACC _valencePrefixResource = _shaderEffect.GetVariableByName("ValencePrefixBuffer").AsResource(); }
public void Update() { updateRequired = false; if (device == null || effect == null) { updateRequired = true; return; } Texture2D texture = image; textureResourceView = new ShaderResourceView(device, texture); textureResource = effect.GetVariableByName("Texture_" + textureIndex).AsResource(); device.PixelShader.SetShaderResource(textureResourceView, 0); textureResource.SetResource(textureResourceView); setSampler(); }
public void Update(IPluginIO pin, DX11RenderContext context) { if (quadshader == null) { string basepath = "VVVV.DX11.Nodes.effects.quad.fx"; DX11Effect effect = DX11Effect.FromResource(Assembly.GetExecutingAssembly(), basepath); quadshader = new DX11ShaderInstance(context, effect); texturevariable = quadshader.Effect.GetVariableBySemantic("INPUTTEXTURE").AsResource(); samplervariable = quadshader.Effect.GetVariableBySemantic("SAMPLERSTATE").AsSampler(); Quad quad = new Quad(); quad.Size = new Vector2(1.0f); quadgeometry = context.Primitives.QuadNormals(quad); quadlayouts = new List<InputLayout>(); for (int i = 0; i < 4; i++) { InputLayout layout; quadshader.SelectTechnique(i); bool res = quadgeometry.ValidateLayout(quadshader.GetPass(0), out layout); quadlayouts.Add(layout); } } if (this.spmax > 0) { if (!this.FOutLayer[0].Contains(context)) { this.FOutLayer[0][context] = new DX11Layer(); this.FOutLayer[0][context].Render = this.Render; } } }
protected override void OnLoadShaders(string shaderFileNeme) { base.OnLoadShaders("default.fx"); _CameraMatrix = Effect.GetVariableByName("ViewProjection").AsMatrix(); world = Effect.GetVariableByName("World").AsMatrix(); color = Effect.GetVariableByName("Color").AsVector(); _DiffuseTexture = Effect.GetVariableByName("DiffuseTexture").AsResource(); }
public NormalMapEffect(Device device, string filename) : base(device, filename) { _normalMap = FX.GetVariableByName("gNormalMap").AsResource(); }
public override void LoadResources() { if (m_Disposed == true) { #region Load Volume Effect 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); RayStartTechnique = m_Effect.GetTechniqueByName("RayStart"); RayStartOutsidePass = RayStartTechnique.GetPassByName("Outside"); RayStartInsidePass = RayStartTechnique.GetPassByName("Inside"); VolumeLayout = new InputLayout(GameEnvironment.Device, RayStartOutsidePass.Description.Signature, new[] { new InputElement("POSITION", 0, Format.R32G32B32_Float, 0, 0), new InputElement("COLOR", 0, Format.R32G32B32_Float, 12, 0) }); RayDirectionTechnique = m_Effect.GetTechniqueByName("RayDirection"); RayDirectionPass0 = RayDirectionTechnique.GetPassByIndex(0); //RayDirectionPass1 = RayDirectionTechnique.GetPassByIndex(1); BillboardTechnique = m_Effect.GetTechniqueByName("Final"); BillboardPass0 = BillboardTechnique.GetPassByIndex(0); ImposterTechnique = m_Effect.GetTechniqueByName("Imposter"); ImposterPass0 = ImposterTechnique.GetPassByIndex(0); BillboardLayout = new InputLayout(GameEnvironment.Device, BillboardPass0.Description.Signature, new[] { new InputElement("POSITION", 0, Format.R32G32_Float, 0, 0), new InputElement("TEXCOORD", 0, Format.R32G32_Float, 8, 0) }); rayStart_texture = m_Effect.GetVariableByName("rayStart_texture").AsResource(); rayDir_texture = m_Effect.GetVariableByName("rayDir_texture").AsResource(); imposter = m_Effect.GetVariableByName("imposter").AsResource(); volume_texture = m_Effect.GetVariableByName("volume_texture").AsResource(); LocationColor = m_Effect.GetVariableByName("locationColor").AsVector(); #endregion #region Billboard Verts float minX = -1f; float miny = -1f; float maxX = 1f; float 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; BillboardVertices = 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 }); } BillboardVerticesBindings = new VertexBufferBinding(BillboardVertices, Marshal.SizeOf(typeof(UIVertex)), 0); #endregion m_Disposed = false; } }