public void InitializeResources(string[] cubetexturePath, string pathVertShader, string pathPixShader, InputElements input, string vertFilePath = "") { InitializeVertices(vertFilePath); // Update(); VertexBuffer = Direct3D11.Buffer.Create(Device, BindFlags.VertexBuffer, Vertices); MainShaderManager.Initialize(Device, input, VertexBuffer, pathVertShader, pathPixShader); ShadowShaderManager.Initialize(Device, VertexBuffer, true); Material = new Materials.Silver(); List <Texture2D> temttext = new List <Texture2D>(); foreach (string texturePath in cubetexturePath) { temttext.Add(TextureLoader.CreateTexture2DFromBitmap(Device, TextureLoader.LoadBitmap(new ImagingFactory2(), texturePath))); } Texture2D texture2D = new Texture2D(Device, new Texture2DDescription { ArraySize = 6, MipLevels = 1, Height = temttext[0].Description.Height, Width = temttext[0].Description.Width, CpuAccessFlags = CpuAccessFlags.None, Format = DXGI.Format.R8G8B8A8_UNorm, BindFlags = BindFlags.ShaderResource, OptionFlags = ResourceOptionFlags.TextureCube, SampleDescription = new DXGI.SampleDescription(1, 0), Usage = ResourceUsage.Default //!! }); TexturesCube = temttext.ToArray(); isTextureCube = true; for (int i = 0; i < 6; i++) { Device.ImmediateContext.CopySubresourceRegion(TexturesCube[i], 0, null, texture2D, i); TexturesCube[i].Dispose(); } TextureView = new ShaderResourceView(Device, texture2D); ShadowTransformBuffer = new Direct3D11.Buffer(Device, Utilities.SizeOf <Matrix>(), ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0); ShadowWorldBuffer = new Direct3D11.Buffer(Device, Utilities.SizeOf <MatrixBufferStruct>(), ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0); }
public void InitializeResources(ShaderResourceView textureResourceView, Materials.AbstractMaterial material, string pathVertShader, string pathPixShader, InputElements input, string vertFilePath = "") { InitializeVertices(vertFilePath); // this.Update(); VertexBuffer = Direct3D11.Buffer.Create(Device, BindFlags.VertexBuffer, Vertices); MainShaderManager.Initialize(Device, input, VertexBuffer, pathVertShader, pathPixShader); ShadowShaderManager.Initialize(Device, VertexBuffer, true); Material = material; TextureView = textureResourceView; ShadowTransformBuffer = new Direct3D11.Buffer(Device, Utilities.SizeOf <Matrix>(), ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0); ShadowWorldBuffer = new Direct3D11.Buffer(Device, Utilities.SizeOf <MatrixBufferStruct>(), ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0); }
public void UpdateResources(ShaderResourceView texture = null, Materials.AbstractMaterial material = null, string vertFilePath = "") { if (texture != null) { TextureView?.Dispose(); TextureView = texture; } if (material != null) { Material = material; } if (vertFilePath != "") { InitializeVertices(vertFilePath); } }
public void UpdateResources(string texturePath = "", Materials.AbstractMaterial material = null, string vertFilePath = "") { if (texturePath != "") { Texture?.Dispose(); TextureView?.Dispose(); Texture = TextureLoader.CreateTexture2DFromBitmap(Device, TextureLoader.LoadBitmap(new ImagingFactory2(), texturePath)); TextureView = new ShaderResourceView(Device, Texture); } if (material != null) { Material = material; } if (vertFilePath != "") { InitializeVertices(vertFilePath); } }
public void UpdateResources(Texture2D[] cubetextures, Materials.AbstractMaterial material = null, string vertFilePath = "") { Texture?.Dispose(); TextureView?.Dispose(); TexturesCube = cubetextures; Texture2D texture2D = new Texture2D(Device, new Texture2DDescription { ArraySize = 6, MipLevels = 1, Height = 512, Width = 512, CpuAccessFlags = CpuAccessFlags.Read, Format = DXGI.Format.R32G32B32A32_UInt, BindFlags = BindFlags.ShaderResource, OptionFlags = ResourceOptionFlags.TextureCube, SampleDescription = new DXGI.SampleDescription(1, 0), Usage = ResourceUsage.Immutable //!! }); isTextureCube = true; for (int i = 0; i < 6; i++) { Device.ImmediateContext.CopySubresourceRegion(cubetextures[i], 0, null, texture2D, i); cubetextures[i].Dispose(); } TextureView = new ShaderResourceView(Device, texture2D); if (material != null) { Material = material; } if (vertFilePath != "") { InitializeVertices(vertFilePath); } }