private static void InitilizeSamplerStates() { SamplerStateDescription description = new SamplerStateDescription(); description.AddressU = TextureAddressMode.Clamp; description.AddressV = TextureAddressMode.Clamp; description.AddressW = TextureAddressMode.Clamp; description.Filter = Filter.MinMagMipLinear; description.MaximumLod = System.Single.MaxValue; m_defaultSamplerState = MyPipelineStates.CreateSamplerState(description); description.AddressU = TextureAddressMode.Border; description.AddressV = TextureAddressMode.Border; description.AddressW = TextureAddressMode.Border; description.Filter = Filter.MinMagMipLinear; description.MaximumLod = System.Single.MaxValue; description.BorderColor = new Color4(0, 0, 0, 0); m_alphamaskSamplerState = MyPipelineStates.CreateSamplerState(description); description.AddressU = TextureAddressMode.Clamp; description.AddressV = TextureAddressMode.Clamp; description.AddressW = TextureAddressMode.Clamp; description.Filter = Filter.MinMagMipPoint; description.MaximumLod = System.Single.MaxValue; m_pointSamplerState = MyPipelineStates.CreateSamplerState(description); description.Filter = Filter.MinMagMipLinear; description.MaximumLod = System.Single.MaxValue; m_linearSamplerState = MyPipelineStates.CreateSamplerState(description); description.AddressU = TextureAddressMode.Clamp; description.AddressV = TextureAddressMode.Clamp; description.AddressW = TextureAddressMode.Clamp; description.Filter = Filter.ComparisonMinMagMipLinear; description.MaximumLod = System.Single.MaxValue; description.ComparisonFunction = Comparison.LessEqual; m_shadowmapSamplerState = MyPipelineStates.CreateSamplerState(description); m_textureSamplerState = MyPipelineStates.CreateSamplerState(description); m_alphamaskarraySamplerState = MyPipelineStates.CreateSamplerState(description); UpdateTextureSampler(m_textureSamplerState, TextureAddressMode.Wrap); UpdateTextureSampler(m_alphamaskarraySamplerState, TextureAddressMode.Clamp); StandardSamplers = new SamplerState[6]; StandardSamplers[0] = MyPipelineStates.GetSampler(m_defaultSamplerState); StandardSamplers[1] = MyPipelineStates.GetSampler(m_pointSamplerState); StandardSamplers[2] = MyPipelineStates.GetSampler(m_linearSamplerState); StandardSamplers[3] = MyPipelineStates.GetSampler(m_textureSamplerState); StandardSamplers[4] = MyPipelineStates.GetSampler(m_alphamaskSamplerState); StandardSamplers[5] = MyPipelineStates.GetSampler(m_alphamaskarraySamplerState); }
internal static void InitOnce() { SamplerStateDescription description = new SamplerStateDescription(); description.AddressU = TextureAddressMode.Clamp; description.AddressV = TextureAddressMode.Clamp; description.AddressW = TextureAddressMode.Clamp; description.Filter = Filter.MinMagMipLinear; description.MaximumLod = System.Single.MaxValue; m_default = MyPipelineStates.CreateSamplerState(description); description.AddressU = TextureAddressMode.Border; description.AddressV = TextureAddressMode.Border; description.AddressW = TextureAddressMode.Border; description.Filter = Filter.MinMagMipLinear; description.MaximumLod = System.Single.MaxValue; description.BorderColor = new Color4(0, 0, 0, 0); m_alphamask = MyPipelineStates.CreateSamplerState(description); description.AddressU = TextureAddressMode.Clamp; description.AddressV = TextureAddressMode.Clamp; description.AddressW = TextureAddressMode.Clamp; description.Filter = Filter.MinMagMipPoint; description.MaximumLod = System.Single.MaxValue; m_point = MyPipelineStates.CreateSamplerState(description); description.Filter = Filter.MinMagMipLinear; description.MaximumLod = System.Single.MaxValue; m_linear = MyPipelineStates.CreateSamplerState(description); description.AddressU = TextureAddressMode.Clamp; description.AddressV = TextureAddressMode.Clamp; description.AddressW = TextureAddressMode.Clamp; description.Filter = Filter.ComparisonMinMagMipLinear; description.MaximumLod = System.Single.MaxValue; description.ComparisonFunction = Comparison.LessEqual; m_shadowmap = MyPipelineStates.CreateSamplerState(description); m_texture = MyPipelineStates.CreateSamplerState(description); m_alphamaskArray = MyPipelineStates.CreateSamplerState(description); UpdateFiltering(); Init(); }
internal static void Init() { m_proxyVs = MyShaders.CreateVs("clouds.hlsl"); m_cloudPs = MyShaders.CreatePs("clouds.hlsl"); m_proxyIL = MyShaders.CreateIL(m_proxyVs.BytecodeId, MyVertexLayouts.GetLayout( new MyVertexInputComponent(MyVertexInputComponentType.POSITION_PACKED, 0), new MyVertexInputComponent(MyVertexInputComponentType.NORMAL, 1), new MyVertexInputComponent(MyVertexInputComponentType.TANGENT_SIGN_OF_BITANGENT, 1), new MyVertexInputComponent(MyVertexInputComponentType.TEXCOORD0_H, 1))); m_fogShader = MyShaders.CreateCs("clouds.hlsl", new [] { new ShaderMacro("NUMTHREADS", m_numFogThreads) }); SamplerStateDescription description = new SamplerStateDescription { AddressU = TextureAddressMode.Wrap, AddressV = TextureAddressMode.Wrap, AddressW = TextureAddressMode.Wrap, Filter = Filter.MinMagMipLinear, MaximumLod = System.Single.MaxValue }; m_textureSampler = MyPipelineStates.CreateSamplerState(description); }