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; } }
protected override void OnAttached() { base.OnAttached(); // --- init instances buffer bHasInstances = this.effect.GetVariableByName("bHasInstances").AsScalar(); InstancesChanged(); }
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(); }
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(); }
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 EffectMaterialVariables(Effect effect, CustomPhongMaterial material) { this.material = material; this.material.OnMaterialPropertyChanged += Material_OnMaterialPropertyChanged; this.vMaterialAmbientVariable = effect.GetVariableByName("vMaterialAmbient").AsVector(); this.vMaterialDiffuseVariable = effect.GetVariableByName("vMaterialDiffuse").AsVector(); this.vMaterialEmissiveVariable = effect.GetVariableByName("vMaterialEmissive").AsVector(); this.vMaterialSpecularVariable = effect.GetVariableByName("vMaterialSpecular").AsVector(); this.vMaterialReflectVariable = effect.GetVariableByName("vMaterialReflect").AsVector(); this.sMaterialShininessVariable = effect.GetVariableByName("sMaterialShininess").AsScalar(); this.bHasDiffuseMapVariable = effect.GetVariableByName("bHasDiffuseMap").AsScalar(); this.bHasDiffuseAlphaMapVariable = effect.GetVariableByName("bHasAlphaMap").AsScalar(); this.bHasNormalMapVariable = effect.GetVariableByName("bHasNormalMap").AsScalar(); this.bHasDisplacementMapVariable = effect.GetVariableByName("bHasDisplacementMap").AsScalar(); this.bHasShadowMapVariable = effect.GetVariableByName("bHasShadowMap").AsScalar(); this.bHasSpecularMapVariable = effect.GetVariableByName("bHasSpecularMap").AsScalar(); this.bHasEmissiveMapVariable = effect.GetVariableByName("bHasEmissiveMap").AsScalar(); this.texDiffuseMapVariable = effect.GetVariableByName("texDiffuseMap").AsShaderResource(); this.texNormalMapVariable = effect.GetVariableByName("texNormalMap").AsShaderResource(); this.texDisplacementMapVariable = effect.GetVariableByName("texDisplacementMap").AsShaderResource(); this.texShadowMapVariable = effect.GetVariableByName("texShadowMap").AsShaderResource(); this.texDiffuseAlphaMapVariable = effect.GetVariableByName("texAlphaMap").AsShaderResource(); this.texSpecularMapVariable = effect.GetVariableByName("texSpecularMap").AsShaderResource(); this.texEmissiveMapVariable = effect.GetVariableByName("texEmissiveMap").AsShaderResource(); }
public void OnPreRender(Device device, float diffTime) { EffectVariable ev = effect.GetVariableByName("diffTime"); EffectScalarVariable esv = ev.AsScalar(); esv.Set(diffTime); }
/// <summary> /// Creates the mesh manager /// </summary> /// <param name="device"></param> public XMeshManager(D3DDevice device) { this.device = device; // Create the effect //XMesh.fxo was compiled from XMesh.fx using: // "$(DXSDK_DIR)utilities\bin\x86\fxc" "$(ProjectDir)Mesh\MeshLoaders\XMesh.fx" /T fx_4_0 /Fo"$(ProjectDir)Mesh\MeshLoaders\XMesh.fxo" using (Stream effectStream = Assembly.GetExecutingAssembly().GetManifestResourceStream( "Microsoft.WindowsAPICodePack.DirectX.DirectXUtilities.XMesh.fxo")) { effect = device.CreateEffectFromCompiledBinary(new BinaryReader(effectStream)); } // Obtain the techniques techniqueRenderTexture = effect.GetTechniqueByName("RenderTextured"); techniqueRenderVertexColor = effect.GetTechniqueByName("RenderVertexColor"); techniqueRenderMaterialColor = effect.GetTechniqueByName("RenderMaterialColor"); // Obtain the variables brightnessVariable = effect.GetVariableByName("Brightness").AsScalar; materialColorVariable = effect.GetVariableByName("MaterialColor").AsVector; worldVariable = effect.GetVariableByName("World").AsMatrix; viewVariable = effect.GetVariableByName("View").AsMatrix; projectionVariable = effect.GetVariableByName("Projection").AsMatrix; diffuseVariable = effect.GetVariableByName("tex2D").AsShaderResource; }
/// <summary> /// /// </summary> /// <param name="host"></param> protected override bool OnAttach(IRenderHost host) { // --- attach if (!base.OnAttach(host)) { return(false); } // --- scale texcoords var texScale = TextureCoodScale; // --- get geometry var geometry = this.geometryInternal as MeshGeometry3D; // -- set geometry if given if (geometry != null) { //throw new HelixToolkitException("Geometry not found!"); // --- init vertex buffer OnCreateGeometryBuffers(); } else { throw new System.Exception("Geometry must not be null"); } bInvertNormalVar = effect.GetVariableByName("bInvertNormal").AsScalar(); // --- flush //this.Device.ImmediateContext.Flush(); return(true); }
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) }); }
protected override bool OnAttach(IRenderHost host) { // --- attach if (!base.OnAttach(host)) { return(false); } // --- shader variables vViewport = effect.GetVariableByName("vViewport").AsVector(); bFixedSizeVariable = effect.GetVariableByName("bBillboardFixedSize").AsScalar(); // --- get geometry var geometry = geometryInternal as IBillboardText; if (geometry == null) { throw new System.Exception("Geometry must implement IBillboardText"); } // --- material // this.AttachMaterial(); this.bHasBillboardTexture = effect.GetVariableByName("bHasTexture").AsScalar(); this.billboardTextureVariable = effect.GetVariableByName("billboardTexture").AsShaderResource(); this.billboardAlphaTextureVariable = effect.GetVariableByName("billboardAlphaTexture").AsShaderResource(); this.bHasBillboardAlphaTexture = effect.GetVariableByName("bHasAlphaTexture").AsScalar(); OnCreateGeometryBuffers(); // --- set rasterstate OnRasterStateChanged(); // --- flush //Device.ImmediateContext.Flush(); return(true); }
protected override void OnAttached() { base.OnAttached(); xOutlineColorVar = effect.GetVariableByName("XRayObjectColor").AsVector(); xOutlineFadingFactor = effect.GetVariableByName("XRayBorderFadingFactor").AsScalar(); isBlendChanged = true; }
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) }); }
protected override void OnAttached() { base.OnAttached(); OnBoneParameterChanged(); OnBoneMatricesChanged(); hasBonesVar = effect.GetVariableByName("bHasBones").AsScalar(); boneMatricesVar = effect.GetVariableByName("SkinMatrices").AsMatrix(); }
public DisplacementMapEffect(Device device, string filename) : base(device, filename) { _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(); }
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"); }
protected override void LoadShaderVariables() { _useDiffuseTextureVar = Effect.GetVariableByName("gUseDiffuseTexture").AsScalar(); _diffuseTextureVar = Effect.GetVariableByName("gDiffuseTexture").AsShaderResource(); _useNormalTextureVar = Effect.GetVariableByName("gUseNormalTexture").AsScalar(); _normalTextureVar = Effect.GetVariableByName("gNormalTexture").AsShaderResource(); _wvpMatrixVar = Effect.GetVariableBySemantic("WORLDVIEWPROJECTION").AsMatrix(); _worldMatrixVar = Effect.GetVariableBySemantic("WORLD").AsMatrix(); }
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 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(); }
/// <summary> /// /// </summary> /// <param name="val"></param> /// <param name="name"></param> protected void GetVariableScalar(out EffectScalarVariable val, string name) { val = m_coreEffect.GetVariableByName(name).AsScalar(); if (!val.IsValid) { throw new Exception("変数が存在しません。エフェクトファイル[common.hlsl]内に" + name + "が存在しません。"); } }
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 ExtendedNormalMapEffect(Device device, string filename) : base(device, filename) { TweenFactor0 = FX.GetVariableByName("gTweenFactor0").AsScalar(); MorphTech = FX.GetTechniqueByName("MorphTech"); SelectedSubmeshMorphTech = FX.GetTechniqueByName("SelectedSubmeshMorphTech"); NormalsTech = FX.GetTechniqueByName("NormalsTech"); BonesTech = FX.GetTechniqueByName("BonesTech"); SelectedSubmeshTech = FX.GetTechniqueByName("SelectedSubmeshTech"); }
protected override bool OnAttach(IRenderHost host) { parameters.OnAttach(this.effect); this.effectTransforms = new EffectTransformVariables(effect); effectTechnique = effect.GetTechniqueByName(this.renderTechnique.Name); bHasTextureVar = effect.GetVariableByName("bHasDiffuseMap").AsScalar(); textureViewVar = effect.GetVariableByName("texDiffuseMap").AsShaderResource(); isBlendChanged = true; System.Windows.Media.CompositionTarget.Rendering += CompositionTarget_Rendering; return(true); }
public virtual void OnAttach(Effect effect) { currentSimulationStateVar = effect.GetVariableByName("CurrentSimulationState").AsUnorderedAccessView(); newSimulationStateVar = effect.GetVariableByName("NewSimulationState").AsUnorderedAccessView(); simulationStateVar = effect.GetVariableByName("SimulationState").AsShaderResource(); particleSizeVar = effect.GetVariableByName("ParticleSize").AsVector(); randomVectorVar = effect.GetVariableByName("RandomVector").AsVector(); randomSeedVar = effect.GetVariableByName("RandomSeed").AsScalar(); numTextureColumnVar = effect.GetVariableByName("NumTexCol").AsScalar(); numTextureRowVar = effect.GetVariableByName("NumTexRow").AsScalar(); animateSpriteByEnergyVar = effect.GetVariableByName("AnimateByEnergyLevel").AsScalar(); }
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 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 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 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 void Load() { try { string path = Path.Combine(ShaderManager.ShadaresFolder, "PhongBlinn.fx"); using (ShaderBytecode effectByteCode = ShaderBytecode.CompileFromFile( path, "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(); //diffuse = effect.GetVariableByName("materialDiffuse").AsVector(); //emissive = effect.GetVariableByName("materialEmissive").AsVector(); //ambient = effect.GetVariableByName("materialAmbient").AsVector(); //specular = effect.GetVariableByName("materialSpecular").AsVector(); //dirLightColor = effect.GetVariableByName("dirLightColor").AsVector(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
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 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(ShadersResourceManager.Manager, "DeferredLight"); E = new Effect(device, _b); TechPointLight = E.GetTechniqueByName("PointLight"); TechPointLight_NoSpec = E.GetTechniqueByName("PointLight_NoSpec"); TechPointLight_Debug = E.GetTechniqueByName("PointLight_Debug"); TechDirectionalLight = E.GetTechniqueByName("DirectionalLight"); TechDirectionalLight_Shadows = E.GetTechniqueByName("DirectionalLight_Shadows"); TechDirectionalLight_Shadows_NoFilter = E.GetTechniqueByName("DirectionalLight_Shadows_NoFilter"); TechDirectionalLight_Split = E.GetTechniqueByName("DirectionalLight_Split"); for (var i = 0; i < TechDirectionalLight.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechDirectionalLight.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) { throw new System.Exception("input signature (DeferredLight, PT, DirectionalLight) == 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()); FxWorldViewProjInv = new EffectOnlyMatrixVariable(E.GetVariableByName("gWorldViewProjInv").AsMatrix()); FxShadowViewProj = new EffectOnlyMatrixArrayVariable(E.GetVariableByName("gShadowViewProj").AsMatrix()); FxBaseMap = E.GetVariableByName("gBaseMap").AsResource(); FxNormalMap = E.GetVariableByName("gNormalMap").AsResource(); FxMapsMap = E.GetVariableByName("gMapsMap").AsResource(); FxDepthMap = E.GetVariableByName("gDepthMap").AsResource(); FxShadowMaps = E.GetVariableByName("gShadowMaps").AsResource(); FxPointLightRadius = E.GetVariableByName("gPointLightRadius").AsScalar(); FxScreenSize = E.GetVariableByName("gScreenSize").AsVector(); FxLightColor = E.GetVariableByName("gLightColor").AsVector(); FxDirectionalLightDirection = E.GetVariableByName("gDirectionalLightDirection").AsVector(); FxPointLightPosition = E.GetVariableByName("gPointLightPosition").AsVector(); FxShadowDepths = E.GetVariableByName("gShadowDepths").AsVector(); FxEyePosW = E.GetVariableByName("gEyePosW").AsVector(); }
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 EffectMaterialVariables(Effect effect) { this.vMaterialAmbientVariable = effect.GetVariableByName("vMaterialAmbient").AsVector(); this.vMaterialDiffuseVariable = effect.GetVariableByName("vMaterialDiffuse").AsVector(); this.vMaterialEmissiveVariable = effect.GetVariableByName("vMaterialEmissive").AsVector(); this.vMaterialSpecularVariable = effect.GetVariableByName("vMaterialSpecular").AsVector(); this.vMaterialReflectVariable = effect.GetVariableByName("vMaterialReflect").AsVector(); this.sMaterialShininessVariable = effect.GetVariableByName("sMaterialShininess").AsScalar(); this.bHasDiffuseMapVariable = effect.GetVariableByName("bHasDiffuseMap").AsScalar(); this.bHasNormalMapVariable = effect.GetVariableByName("bHasNormalMap").AsScalar(); this.bHasDisplacementMapVariable = effect.GetVariableByName("bHasDisplacementMap").AsScalar(); this.bHasShadowMapVariable = effect.GetVariableByName("bHasShadowMap").AsScalar(); this.texDiffuseMapVariable = effect.GetVariableByName("texDiffuseMap").AsShaderResource(); this.texNormalMapVariable = effect.GetVariableByName("texNormalMap").AsShaderResource(); this.texDisplacementMapVariable = effect.GetVariableByName("texDisplacementMap").AsShaderResource(); this.texShadowMapVariable = effect.GetVariableByName("texShadowMap").AsShaderResource(); }
public void Initialize(Device device) { _b = EffectUtils.Load("DeferredLight"); E = new Effect(device, _b); TechPointLight = E.GetTechniqueByName("PointLight"); TechPointLight_NoSpec = E.GetTechniqueByName("PointLight_NoSpec"); TechPointLight_Debug = E.GetTechniqueByName("PointLight_Debug"); TechDirectionalLight = E.GetTechniqueByName("DirectionalLight"); TechDirectionalLight_Shadows = E.GetTechniqueByName("DirectionalLight_Shadows"); TechDirectionalLight_Shadows_NoFilter = E.GetTechniqueByName("DirectionalLight_Shadows_NoFilter"); TechDirectionalLight_Split = E.GetTechniqueByName("DirectionalLight_Split"); for (var i = 0; i < TechDirectionalLight.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechDirectionalLight.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) throw new System.Exception("input signature (DeferredLight, PT, DirectionalLight) == null"); LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxWorld = E.GetVariableByName("gWorld").AsMatrix(); FxWorldInvTranspose = E.GetVariableByName("gWorldInvTranspose").AsMatrix(); FxWorldViewProj = E.GetVariableByName("gWorldViewProj").AsMatrix(); FxWorldViewProjInv = E.GetVariableByName("gWorldViewProjInv").AsMatrix(); FxShadowViewProj = E.GetVariableByName("gShadowViewProj").AsMatrix(); FxBaseMap = E.GetVariableByName("gBaseMap").AsResource(); FxNormalMap = E.GetVariableByName("gNormalMap").AsResource(); FxMapsMap = E.GetVariableByName("gMapsMap").AsResource(); FxDepthMap = E.GetVariableByName("gDepthMap").AsResource(); FxShadowMaps = E.GetVariableByName("gShadowMaps").AsResource(); FxPointLightRadius = E.GetVariableByName("gPointLightRadius").AsScalar(); FxScreenSize = E.GetVariableByName("gScreenSize").AsVector(); FxLightColor = E.GetVariableByName("gLightColor").AsVector(); FxDirectionalLightDirection = E.GetVariableByName("gDirectionalLightDirection").AsVector(); FxPointLightPosition = E.GetVariableByName("gPointLightPosition").AsVector(); FxShadowDepths = E.GetVariableByName("gShadowDepths").AsVector(); FxEyePosW = E.GetVariableByName("gEyePosW").AsVector(); }
/// <summary> /// /// </summary> /// <param name="host"></param> public override void Attach(IRenderHost host) { /// --- attach this.renderTechnique = Techniques.RenderLines; base.Attach(host); if (this.Geometry == null) return; #if DEFERRED if (renderHost.RenderTechnique == Techniques.RenderDeferred || renderHost.RenderTechnique == Techniques.RenderGBuffer) return; #endif // --- get device this.vertexLayout = EffectsManager.Instance.GetLayout(this.renderTechnique); this.effectTechnique = effect.GetTechniqueByName(this.renderTechnique.Name); this.effectTransforms = new EffectTransformVariables(this.effect); // --- get geometry var geometry = this.Geometry as LineGeometry3D; // -- set geometry if given if (geometry != null) { /// --- set up buffers this.vertexBuffer = Device.CreateBuffer(BindFlags.VertexBuffer, LinesVertex.SizeInBytes, this.CreateLinesVertexArray()); /// --- set up indexbuffer this.indexBuffer = Device.CreateBuffer(BindFlags.IndexBuffer, sizeof(int), geometry.Indices.Array); } /// --- init instances buffer this.hasInstances = (this.Instances != null)&&(this.Instances.Any()); this.bHasInstances = this.effect.GetVariableByName("bHasInstances").AsScalar(); if (this.hasInstances) { this.instanceBuffer = Buffer.Create(this.Device, this.instanceArray, new BufferDescription(Matrix.SizeInBytes * this.instanceArray.Length, ResourceUsage.Dynamic, BindFlags.VertexBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, 0)); } /// --- set up const variables this.vViewport = effect.GetVariableByName("vViewport").AsVector(); //this.vFrustum = effect.GetVariableByName("vFrustum").AsVector(); this.vLineParams = effect.GetVariableByName("vLineParams").AsVector(); /// --- set effect per object const vars var lineParams = new Vector4((float)this.Thickness, (float)this.Smoothness, 0, 0); this.vLineParams.Set(lineParams); /// === debug hack //{ // var texDiffuseMapView = ShaderResourceView.FromFile(device, @"G:\Projects\Deformation Project\FrameworkWPF2012\Externals\HelixToolkit-SharpDX\Source\Examples\SharpDX.Wpf\LightingDemo\TextureCheckerboard2.jpg"); // var texDiffuseMap = effect.GetVariableByName("texDiffuseMap").AsShaderResource(); // texDiffuseMap.SetResource(texDiffuseMapView); //} /// --- create raster state this.OnRasterStateChanged(this.DepthBias); //this.rasterState = new RasterizerState(this.device, rasterStateDesc); /// --- set up depth stencil state //var depthStencilDesc = new DepthStencilStateDescription() //{ // DepthComparison = Comparison.Less, // DepthWriteMask = global::SharpDX.Direct3D11.DepthWriteMask.All, // IsDepthEnabled = true, //}; //this.depthStencilState = new DepthStencilState(this.device, depthStencilDesc); /// --- flush this.Device.ImmediateContext.Flush(); }
public void Initialize(Device device) { _b = EffectUtils.Load("PpBasic"); E = new Effect(device, _b); TechCopy = E.GetTechniqueByName("Copy"); TechCopyNoAlpha = E.GetTechniqueByName("CopyNoAlpha"); TechOverlay = E.GetTechniqueByName("Overlay"); TechShadow = E.GetTechniqueByName("Shadow"); TechDepth = E.GetTechniqueByName("Depth"); TechFxaa = E.GetTechniqueByName("Fxaa"); for (var i = 0; i < TechCopy.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechCopy.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) throw new System.Exception("input signature (PpBasic, PT, Copy) == null"); LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxInputMap = E.GetVariableByName("gInputMap").AsResource(); FxOverlayMap = E.GetVariableByName("gOverlayMap").AsResource(); FxDepthMap = E.GetVariableByName("gDepthMap").AsResource(); FxSizeMultipler = E.GetVariableByName("gSizeMultipler").AsScalar(); FxScreenSize = E.GetVariableByName("gScreenSize").AsVector(); }
public void Initialize(Device device) { _b = EffectUtils.Load("PpBlur"); E = new Effect(device, _b); TechGaussianBlur = E.GetTechniqueByName("GaussianBlur"); TechReflectionGaussianBlur = E.GetTechniqueByName("ReflectionGaussianBlur"); for (var i = 0; i < TechGaussianBlur.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechGaussianBlur.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) throw new System.Exception("input signature (PpBlur, PT, GaussianBlur) == null"); LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxInputMap = E.GetVariableByName("gInputMap").AsResource(); FxMapsMap = E.GetVariableByName("gMapsMap").AsResource(); FxSampleWeights = E.GetVariableByName("gSampleWeights").AsScalar(); FxPower = E.GetVariableByName("gPower").AsScalar(); FxSampleOffsets = E.GetVariableByName("gSampleOffsets").AsVector(); }
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(); }
public void Initialize(Device device) { _b = EffectUtils.Load("PpFxaa311"); E = new Effect(device, _b); TechLuma = E.GetTechniqueByName("Luma"); TechFxaa = E.GetTechniqueByName("Fxaa"); for (var i = 0; i < TechLuma.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechLuma.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) throw new System.Exception("input signature (PpFxaa311, PT, Luma) == null"); LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxInputMap = E.GetVariableByName("gInputMap").AsResource(); FxDepthMap = E.GetVariableByName("gDepthMap").AsResource(); FxSizeMultipler = E.GetVariableByName("gSizeMultipler").AsScalar(); FxScreenSize = E.GetVariableByName("gScreenSize").AsVector(); }
public void Initialize(Device device) { _b = EffectUtils.Load("PpSmaa"); E = new Effect(device, _b); TechSmaa = E.GetTechniqueByName("Smaa"); TechSmaaB = E.GetTechniqueByName("SmaaB"); TechSmaaN = E.GetTechniqueByName("SmaaN"); for (var i = 0; i < TechSmaa.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechSmaa.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) throw new System.Exception("input signature (PpSmaa, PT, Smaa) == null"); LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxInputMap = E.GetVariableByName("gInputMap").AsResource(); FxEdgesMap = E.GetVariableByName("gEdgesMap").AsResource(); FxBlendMap = E.GetVariableByName("gBlendMap").AsResource(); FxAreaTexMap = E.GetVariableByName("gAreaTexMap").AsResource(); FxSearchTexMap = E.GetVariableByName("gSearchTexMap").AsResource(); FxSizeMultipler = E.GetVariableByName("gSizeMultipler").AsScalar(); FxScreenSizeSpec = E.GetVariableByName("gScreenSizeSpec").AsVector(); }
public void Initialize(Device device) { _b = EffectUtils.Load("SpecialShadow"); E = new Effect(device, _b); TechHorizontalShadowBlur = E.GetTechniqueByName("HorizontalShadowBlur"); TechVerticalShadowBlur = E.GetTechniqueByName("VerticalShadowBlur"); TechAmbientShadow = E.GetTechniqueByName("AmbientShadow"); TechResult = E.GetTechniqueByName("Result"); for (var i = 0; i < TechHorizontalShadowBlur.Description.PassCount && InputSignaturePT == null; i++) { InputSignaturePT = TechHorizontalShadowBlur.GetPassByIndex(i).Description.Signature; } if (InputSignaturePT == null) throw new System.Exception("input signature (SpecialShadow, PT, HorizontalShadowBlur) == null"); LayoutPT = new InputLayout(device, InputSignaturePT, InputLayouts.VerticePT.InputElementsValue); FxShadowViewProj = E.GetVariableByName("gShadowViewProj").AsMatrix(); FxInputMap = E.GetVariableByName("gInputMap").AsResource(); FxDepthMap = E.GetVariableByName("gDepthMap").AsResource(); FxMultipler = E.GetVariableByName("gMultipler").AsScalar(); FxCount = E.GetVariableByName("gCount").AsScalar(); FxPadding = E.GetVariableByName("gPadding").AsScalar(); FxSize = E.GetVariableByName("gSize").AsVector(); FxShadowSize = E.GetVariableByName("gShadowSize").AsVector(); }
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 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(); }