Ceci est toujours un problème en suspens. J'essaye d'obtenir un point de travail de système de Sprites de point de rendre un soleil dans mon monde. J'ai remarqué qu'un autre utilisateur posait une question similaire (avec le même code, vraisemblablement de ma classe :)) mais ils n'ont pas pu le compléter. Mon code actuel pour cela est la suivante:Utilisation de sprites ponctuels avec direct x. Quelles sont les étapes à suivre?
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);
Je ne vois pas mon soleil sur l'écran, et il semble être de faire le mélange alpha sur le reste de mon monde, plutôt que sur un soleil que je suis en train de charger. Cela pourrait-il être dû à quels appareils j'utilise? Toute aide serait grandement appréciée :)
Aack! Veuillez sauvegarder LudoRenderer :: GetInstance() -> GetDevice() quelque part avant que mes yeux ne saignent ... – Justicle
Compréhensible: P – Mark
Avez-vous exécuté PIX pour voir ce qui se passe quand vous appelez DrawPrimitive? – Anteru