public DirectComputePrefixScan(Device graphicsDevice) { this.graphicsDevice = graphicsDevice; computeScanExclusiveShared = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "ScanExclusiveShared", "cs_5_0", ShaderFlags.None, EffectFlags.None)); computeScanExclusiveShared2 = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "ScanExclusiveShared2", "cs_5_0", ShaderFlags.None, EffectFlags.None)); computeUniformUpdate = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "UniformUpdate", "cs_5_0", ShaderFlags.None, EffectFlags.None)); }
/// <summary> /// Object's default constructor. /// </summary> /// <param name="graphicsDevice">Virtual adapter used to perform rendering.</param> /// <param name="camera">Instance of a camera object.</param> public SkyCube(Device graphicsDevice, Camera camera) { this.graphicsDevice = graphicsDevice; this.camera = camera; GenerateSky(); shader = new Effect(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\SkyCube.hlsl", "fx_5_0", ShaderFlags.None, EffectFlags.None)); }
public DefaultRenderer(Device graphicsDevice, Camera camera, VoxelMeshContainer container) { this.graphicsDevice = graphicsDevice; this.camera = camera; this.container = container; #if DEBUG shader = new Effect(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\VoxelMesh.hlsl", "fx_5_0", ShaderFlags.Debug, EffectFlags.None)); #else shader = new Effect(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\VoxelMesh.hlsl", "fx_5_0", ShaderFlags.None, EffectFlags.None)); #endif layout = new InputLayout(graphicsDevice, shader.GetTechniqueByIndex(0).GetPassByIndex(0).Description.Signature, new[] { new InputElement("POSITION", 0, Format.R32G32B32_Float, 0, 0, InputClassification.PerVertexData, 0), new InputElement("NORMAL", 0, Format.R32G32B32_Float, 12, 0, InputClassification.PerVertexData, 0), new InputElement("AMBIENT", 0, Format.R32_Float, 24, 0, InputClassification.PerVertexData, 0) }); }
private void Initialize() { constantBuffer = new Buffer(graphicsDevice, new BufferDescription() { BindFlags = BindFlags.ConstantBuffer, CpuAccessFlags = CpuAccessFlags.Write, OptionFlags = ResourceOptionFlags.None, SizeInBytes = (int)Math.Ceiling(Marshal.SizeOf(typeof(DirectComputeConstantBuffer)) / 16.0) * 16, Usage = ResourceUsage.Dynamic }); computePositionWeightNoiseCube = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "PositionWeightNoiseCube", "cs_5_0", ShaderFlags.None, EffectFlags.None)); computeNormalAmbient = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "NormalAmbient", "cs_5_0", ShaderFlags.None, EffectFlags.None)); computeMarchingCubesCases = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "MarchingCubesCases", "cs_5_0", ShaderFlags.None, EffectFlags.None)); computeMarchingCubesVertices = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "MarchingCubesVertices", "cs_5_0", ShaderFlags.None, EffectFlags.None)); computePositionWeightNoiseCubeWarp = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "PositionWeightNoiseCubeWarp", "cs_5_0", ShaderFlags.None, EffectFlags.None)); computePositionWeightFormula = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "PositionWeightFormula", "cs_5_0", ShaderFlags.None, EffectFlags.None)); prefixScan = new DirectComputePrefixScan(graphicsDevice); }
/// <summary> /// Default constructor. /// </summary> /// <param name="graphicsDevice">Virtual adapter used to perform rendering.</param> public QuadRenderer(Device graphicsDevice) { this.graphicsDevice = graphicsDevice; effect = new Effect(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\QuadRenderer.hlsl", "fx_5_0", ShaderFlags.None, EffectFlags.None)); }
/// <summary> /// Adds shader program with specified entry point to the set. /// </summary> /// <param name="name">Shader program entry point.</param> private void AddEffect(string name) { effects.Add(name, new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\PostProcess.hlsl", name, "cs_5_0", ShaderFlags.None, EffectFlags.None))); }
private void Initialize() { computeFillNoiseTexture = new ComputeShader(graphicsDevice, ShaderPrecompiler.PrecompileOrLoad(@"Shaders\TerrainGenerator.hlsl", "FillNoiseTexture", "cs_5_0", ShaderFlags.None, EffectFlags.None)); }