Пример #1
0
    public OcclusionSurrogateDebugRenderer(Device device, ShaderCache shaderCache, int occlusionInfoOffset)
    {
        surrogateFacesView = BufferUtilities.ToStructuredBufferView(device, OcclusionSurrogateCommon.Mesh.Faces.ToArray());

        meshBuffers = new MeshBuffers(device, DrawMesh);

        var vertexShaderAndBytecode = shaderCache.GetVertexShader <OcclusionSurrogateDebugRenderer>("figure/occlusion/debug/DebugVertex");

        vertexShader = vertexShaderAndBytecode;
        inputLayout  = new InputLayout(device, vertexShaderAndBytecode.Bytecode, MeshBuffers.InputElements);

        using (var texture = MonochromaticTextures.Make(device, Color.LightGray)) {
            var textureView = new ShaderResourceView(device, texture);
            material = new BasicSpecularMaterial(device, shaderCache, textureView);
        }
    }
Пример #2
0
    public MeshRenderer(Device device, ShaderCache shaderCache, Matrix transform, TriMesh mesh)
    {
        this.meshBuffers = new MeshBuffers(device, mesh);

        this.modelToWorldTransform = new CoordinateNormalMatrixPairConstantBufferManager(device);

        var vertexShaderAndBytecode = shaderCache.GetVertexShader <MeshRenderer>("game/MeshVertex");

        this.vertexShader = vertexShaderAndBytecode;
        this.inputLayout  = new InputLayout(device, vertexShaderAndBytecode.Bytecode, MeshBuffers.InputElements);

        using (var texture = MonochromaticTextures.Make(device, Color.LightGray)) {
            var textureView = new ShaderResourceView(device, texture);
            this.material = new BasicSpecularMaterial(device, shaderCache, textureView);
        }

        this.transform = transform;
    }
Пример #3
0
 private static ShaderResourceView MakeMonochromeTexture(Device device, Vector4 value)
 {
     using (var whiteTexture = MonochromaticTextures.Make(device, value)) {
         return(new ShaderResourceView(device, whiteTexture));
     }
 }