선을 그릴 때 Direct3D 9를 사용하고 있습니다.다른 색상의 정점 버퍼에서 정점을 그리는 방법
지금 사용하고있는 정점의 형식은 D3DFVF_XYZ|D3DFVF_DIFFUSE
이며 정점 버퍼에 저장됩니다. 그들은 DrawPrimitive
으로 그려지며 D3DPT_LINELIST
입니다.
그려진 전체 정점 버퍼 또는 특정 정점의 그려진 색을 정점 버퍼를 잠그지 않고 그 내용을 수정하려면 어떻게해야합니까? 이것은 매 프레임마다 이루어져야합니다.
정점 버퍼를 사용할 수 있습니까? 나는 맞춤형 쉐이더가없는 솔루션을 선호한다 (기본 direct3d 9 파이프 라인 사용).
이것이 가능하지 않다면 성능면에서 다음으로 가장 좋은 것은 무엇일까요? 버텍스 버퍼를 잠그거나 DrawPrimitiveUP
을 사용하는 것만 생각할 수 있습니다. 둘 다 꽤 현명한 성능입니다.
는 솔루션 코드 업데이트 : 정점이 더 이상
FVF_DIFFUSE
필요하지 않습니다
m_pDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
m_pDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
m_pDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_CONSTANT);
m_pDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_CONSTANT);
m_pDevice->SetTextureStageState(0, D3DTSS_CONSTANT, D3DCOLOR_ARGB(120,0,255,0));
.