Код: Выделить всё
static void RW_SetupRenderState(IDirect3DDevice8* dev)
{
dev->SetRenderState(D3DRS_ZENABLE, FALSE);
dev->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
dev->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
dev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
dev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
dev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
dev->SetRenderState(D3DRS_LIGHTING, FALSE);
dev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
dev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
dev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
dev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
dev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
dev->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
dev->SetVertexShader(D3DFVF_XYZRHW| D3DFVF_DIFFUSE | D3DFVF_TEX1);
}
Код: Выделить всё
for (i = 0; i < g_scene.objectsCount; ++i)
{
self->BeginScene();
RW_SetupRenderState(self);
RWObject* o = &g_scene.objects[i];
if (!o->id[0]) continue;
RW_RenderObject(self, o, g_curFrame);
self->EndScene();
}

Кроме того, да, я сначала рисую логотип, а затем эффект блика
Моя цель — сделать это похожим на блендер

Любая помощь в этом будет полезна, так как я не знаю, куда еще пойти, также протестировал много разных комбинаций, которые я видел в Интернете, но это была лучшая
Подробнее здесь: https://stackoverflow.com/questions/798 ... ts-overlap
Мобильная версия