Как я могу установить матрицы просмотра / мира в SlimDX / DirectX11 - PullRequest
1 голос
/ 24 января 2012

Я пытаюсь реализовать простую камеру FPS, которую я привел из старого проекта XNA, в SlimDX.Direct3D11.Я понятия не имею, как установить результирующую матрицу представления или любую другую матрицу в этом отношении.

Все найденные мной учебники используют C ++ и функции или классы, которые недоступны в SlimDX.Кто-нибудь из вас знает больше примеров, чем три на домашней странице SlimDX?

Это мой вершинный шейдер

cbuffer MatrixBuffer
{
    matrix worldMatrix;
    matrix viewMatrix;
    matrix projectionMatrix;
};

struct VertexInputType
{
    float4 position : POSITION;
    float2 tex : TEXCOORD0;
};

struct PixelInputType
{
    float4 position : SV_POSITION;
    float2 tex : TEXCOORD0;
};
PixelInputType TextureVertexShader(VertexInputType input)
{
    PixelInputType output;

    input.position.w = 1.0f;

    output.position = mul(input.position, worldMatrix);
    output.position = mul(output.position, viewMatrix);
    output.position = mul(output.position, projectionMatrix);

    output.tex = input.tex;

    return output;
}

И загрузка их с помощью

bytecode = ShaderBytecode.CompileFromFile("shader/triangle.fx", "TextureVertexShader", "vs_4_0", ShaderFlags.None, EffectFlags.None);
inputSignature = ShaderSignature.GetInputSignature(bytecode);
vertexShader = new VertexShader(device, bytecode);
...