uhx Опубликовано 8 июня, 2016 Поделиться Опубликовано 8 июня, 2016 Пытаюсь сделать сплошную заливку без ТЕНЕЙ. Если объект находится в тени, то толку от чамсов очень мало, приходится постоянно напрягатся и выискивать "затемненные" объекты, что конечно же никуда не годится. Я в общем уже пол гугла перерыл, чес слово, но так и не смог решить проблему. Скрытый текст DrawIndexedPrimitive( IDirect3DDevice9* pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount ) ... LPDIRECT3DBASETEXTURE9 oldTexture; DWORD dwOldZEnable; pDevice->GetTexture( 0, &oldTexture ); pDevice->GetRenderState( D3DRS_ZENABLE, &dwOldZEnable ); // Запомнили старые параметры for( int i = 0; i < 203; i++ ) { pDevice->GetRenderState( (D3DRENDERSTATETYPE)( i + 7 ), &renderStates[i] ); // О да, это я так дебажил RenderState и пытался восстановить такую картину: при наведении на объект вблизи он у меня подсвечивается и заливка ложится без теней... не вышло почему то } //pDevice->SetRenderState( D3DRS_ZENABLE, false ); Просто закомментил этот момент, дабы не мешал на момент правок //pDevice->SetTexture( 0, textureChamsColor ); //CDirectX::oDrawIndexedPrimitive( pDevice, Type, BaseVertexIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount ); pDevice->SetRenderState( D3DRS_ZENABLE, true ); pDevice->SetTexture( 0, textureChamsVisibleColor ); // Моя сплошная текстура желтого цвета. /*pDevice->SetRenderState( D3DRS_ALPHAREF, 0 ); pDevice->SetRenderState( D3DRS_ALPHAFUNC, 5 ); pDevice->SetRenderState( D3DRS_SRCBLEND, 5 ); pDevice->SetRenderState( D3DRS_DESTBLEND, 6 );*/ // Не особо полезный код pDevice->SetRenderState( D3DRS_SRGBWRITEENABLE, false ); // Тоже понятия не имею что это, но в дебаге так было CDirectX::oDrawIndexedPrimitive( pDevice, Type, BaseVertexIndex, MinIndex, NumVertices, StartIndex, PrimitiveCount ); // Отрисовываю pDevice->SetTexture( 0, oldTexture ); // Возвращаю старую текстуру, ибо из за этого последующий рендер немного ломается ( стандартная подсветка союзников и тд ) pDevice->SetRenderState( D3DRS_ZENABLE, dwOldZEnable ); return D3D_OK; // Ну и соответственно выходим из функции, так как мы все уже отрисовали что нужно. Вот текущий код, всю функцию копировать не стал: помимо чамсов еще куча мусора, который к ним самим не относится. Если надо будет - скину все Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения