1

単純な長方形でテクスチャを取得しようとすると、奇妙な問題が発生します。テクスチャ内のピクセルの最後の列のみが使用されているようです。 http://i.imgur.com/40EoI.png <- その結果、上部に白黒の長方形が表示されます。

私は、すでに寄せられた質問の奥深くまでたどり着き、Google の危険な裏腹を旅しましたが、役に立ちませんでした。私は自分のコードを基にしたチュートリアル (偶然にも、選択したテクスチャで動作します) と比較しましたが、まだ困惑しています。入力レイアウト、おそらくオフセットではないかと思っていましたか?

D3D11_INPUT_ELEMENT_DESC ied[] =
{
    {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
    {"COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0},        
    {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0},
};

dev->CreateInputLayout(ied, 3, VS->GetBufferPointer(), VS->GetBufferSize(), &pLayout);
devcon->IASetInputLayout(pLayout);

そうでない場合は、CreateShaderResourceFromViewFile である可能性があります。

 D3DX11CreateShaderResourceViewFromFile(dev,        // the Direct3D device
                                   L"Ptitle.png",    // load Wood.png in the local folder
                                   NULL,           // no additional information
                                   NULL,           // no multithreading
                                   &Ttitle,      // address of the shader-resource-view
                                   NULL);          // no multithreading

また、参考までに - 大丈夫だと確信していますが、ここに頂点とそれぞれのテクスチャ座標があります

        // Title
    {-200.0f, 100.0f, 0.0f, D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), 0.0f, 1.0f},//13 BOTTOM LEFT
    {-200.0f, 200.0f, 0.0f, D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), 0.0f, 0.0f},//14 TOP LEFT
    {200.0f, 100.0f, 0.0f, D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), 1.0f, 1.0f},//15 BOTTOM RIGHT
    {200.0f, 200.0f, 0.0f, D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f), 1.0f, 0.0f},//16 TOP RIGHT

自分を蹴り飛ばしそうな予感。私が受けた助けに感謝します。また、私がまだ漠然としている場合はお詫び申し上げます。

4

1 に答える 1

0

入力したレイアウトが間違っているようです:

D3D11_INPUT_ELEMENT_DESC ied[] =
{
    {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
    {"COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0},        
    {"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0},
};

TEXCOORDの場合、色のサイズが16であるため、24を28に置き換えます。

于 2012-12-09T16:31:15.537 に答える