LPDIRECT3DDEVICE::DrawPrimitiveUP рисует только в черно-белом режиме

struct tri_vertex 
{ 
    float x, y, z, h;
    D3DCOLOR color;
};

void Draw2DLine(float x1, float y1, float x2, float y2, D3DCOLOR dwColor)
{
    tri_vertex vertices[2] = 
    {
        x1, y1, 0.0f, 1.0f, dwColor,
        x2, y2, 0.0f, 1.0f, dwColor,
    };

    pDevice->DrawPrimitiveUP(D3DPT_LINELIST, 1, vertices, sizeof(tri_vertex));
} 


pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );
pDevice->SetRenderState( D3DRS_LIGHTING, false ); 
pDevice->SetTexture( NULL, NULL );
pDevice->SetPixelShader( NULL );

// If commented out, the block drawn is black. Otherwise its completely white.
pDevice->SetVertexShader( NULL );

// For transparency 
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
pDevice->SetRenderState(D3DRS_BLENDOP,D3DBLENDOP_ADD);

pDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);

Я пытаюсь нарисовать простую линию, используя DrawPrimitiveUP(). Однако нарисованная линия либо полностью черная, либо белая, в зависимости от обнуления SetVertexShader. Он также не поддерживает прозрачность ни в одном из них.


person John    schedule 04.06.2014    source источник


Ответы (1)


Однако нарисованная линия либо полностью черная, либо белая, в зависимости от обнуления SetVertexShader.

Чего вы ожидали? цветная линия? Вы установили цвет линии?

Он также не поддерживает прозрачность ни в одном из них.

Вы устанавливаете текстуру на ноль, поэтому смешение не влияет на линию.

person zdd    schedule 06.06.2014
comment
Да, цвет выбран. Он поддерживает прозрачность в других приложениях D3D с нулевой текстурой. - person John; 08.06.2014
comment
где вы установили цвета? Меня очень интересует прозрачная линия, можете ли вы показать мне ее изображение? - person zdd; 09.06.2014
comment
Его задают из параметра Draw2DLine() - person John; 09.06.2014
comment
Хотите предоставить компилируемый код? Я хочу попробовать. в настоящее время я не могу понять, что что-то не так с кодом, который вы предоставили. - person zdd; 10.06.2014