이것은 여전히 중요한 문제입니다.직접적인 x로 포인트 스프라이트 사용하기. 어떤 단계를 밟아야합니까?
나는 내 세계에서 태양을 렌더링하는 포인트 스프라이트 시스템을 얻으려고하고있다. 비슷한 질문을하는 다른 사용자가 있음을 알게되었습니다 (아마도 내 수업에서 같은 코드로 :)). 그러나 그들은 이것을 완료 할 수 없었습니다. 이에 대한 나의 현재 코드는 다음과 같습니다
float fPointSize = 10.0f,fPointScaleB = 100.0f;
에 IDirect3DDevice9을 * m_Device = LudoRenderer ::하는 GetInstance() -> GetDevice(); m_Device-> SetRenderState (D3DRS_POINTSPRITEENABLE, true); m_Device-> SetRenderState (D3DRS_POINTSCALEENABLE, true);
m_Device->SetRenderState(D3DRS_POINTSIZE,
*((DWORD*)&fPointSize));
m_Device->SetRenderState(D3DRS_POINTSCALE_B,
*((DWORD*)&fPointScaleB));
m_Device->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
m_Device->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ONE);
m_Device->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);
std::wstring hardcoded = L"..\\Data\\sun.png";
m_SunTexture = LudoTextureManager::GetInstance()->GetTextureData(hardcoded.c_str()).m_Texture;
m_Device->SetTexture(0,m_SunTexture);
m_Device->DrawPrimitive(D3DPT_POINTLIST,0,12);
나는 화면에 내 일을 보지 않고, 오히려 내가로드하기 위해 노력하고있어 어떤 일에보다, 나의 세계의 나머지 부분에 알파 혼합을하고있는 것으로 보인다. 내가 사용하고있는 장치 때문에 이것이있을 수 있습니까? 도움이 크게 주시면 감사하겠습니다 :)
Aack! 내 눈이 피가 나기 전에 어딘가에 LudoRenderer :: GetInstance() -> GetDevice()를 저장하십시오 .... – Justicle
이해할 수 : P – Mark
DrawPrimitive 호출 중에 어떤 일이 발생했는지 보려면 PIX를 실행 했습니까? – Anteru