D3D Render

Статус
В этой теме нельзя размещать новые ответы.

deropleat

Известный
Автор темы
105
56
Я не знаю как это прокомментировать, но когда я рисую меню, то оно само не рисуется, но при нажатии на ESC происходит вот такая помойка:
sa-mp-991.png
 

deropleat

Известный
Автор темы
105
56
P.S Вот эти два квадратика - курсор. Как я понимаю, связано с функциями Render'a самого, поскольку если допустим я использую вот эту строчку, то игра выведет такой же экран:
Код:
MyDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);

Что тебя интересует именно, @Rinat_Namazov?

С хуками все нормально, там проблема как я понимаю в Render'е, в подготовке к отрисовке(т.е к примеру из-за этих строчек происходит такая помойка[это лишь из одной функции я вырезал]):
Код:
MyDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE); // Делает экран черным
MyDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CW); // Попросту умирают кадры и остается последний кадр (виден последний кадр игры до открытия меню)
 

deropleat

Известный
Автор темы
105
56
Рендер плохой, возьми из собейта
Уже понял что с Render'ом проблема, только что хотел UPD отписать. Только вот не могу понять в чем дело, вот пример допустим линии:
Код:
void CRender::Line(int sX, int sY, int eX, int eY, D3DCOLOR Color)
{
    vertex pVertex[2] = { { sX, sY, 0.0f, 1.0f, Color }, { eX, eY, 0.0f, 1.0f, Color } };
    MyDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);
    MyDevice->SetTexture(0, nullptr);
    MyDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
    MyDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
    MyDevice->SetRenderState(D3DRS_FOGENABLE, FALSE);
    MyDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
    MyDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
    MyDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
    MyDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
    MyDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
    MyDevice->SetRenderState(D3DRS_STENCILENABLE, FALSE);
    MyDevice->DrawPrimitiveUP(D3DPT_LINELIST, 1, &pVertex, sizeof(vertex));
}

P.S Переносить Render из s0beit ко мне - суицид, но попробуем, надеюсь поможет. Тему не закрывайте, может быть сможет кто-то помочь в чем загвоздка.

UPD: Починил, причем без другого Render'a.

В меню объект рисуется нормально, в игре нет - есть предположения?

sa-mp-996.png - рисуется,
sa-mp-997.png - рисуется, но как надо.

P.S Не смотрите на положение цветов, он крутится, следственно и цвета меняются.

Как я понимаю, смешивание и что-то в этом роде - не работают в игре.
 
Последнее редактирование:

iAmerican

Известный
Друг
615
257
Уже понял что с Render'ом проблема, только что хотел UPD отписать. Только вот не могу понять в чем дело, вот пример допустим линии:


P.S Переносить Render из s0beit ко мне - суицид, но попробуем, надеюсь поможет. Тему не закрывайте, может быть сможет кто-то помочь в чем загвоздка.

UPD: Починил, причем без другого Render'a.

В меню объект рисуется нормально, в игре нет - есть предположения?

Посмотреть вложение 21196 - рисуется,
Посмотреть вложение 21197 - рисуется, но как надо.

P.S Не смотрите на положение цветов, он крутится, следственно и цвета меняются.

Как я понимаю, смешивание и что-то в этом роде - не работают в игре.

Самое оптимальное , взять рендер с собейта, там перенести 2 файла всего лишь.
Проблема так же может крыться и в самом хуке пресента , сцены или где ты там рисуешь.
Я пробовал много рендеров и нормально рисовал только собейтовский.
 

SR_team

like pancake
BH Team
4,719
6,362
Уже понял что с Render'ом проблема, только что хотел UPD отписать. Только вот не могу понять в чем дело, вот пример допустим линии:
Код:
void CRender::Line(int sX, int sY, int eX, int eY, D3DCOLOR Color)
{
    vertex pVertex[2] = { { sX, sY, 0.0f, 1.0f, Color }, { eX, eY, 0.0f, 1.0f, Color } };
    MyDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);
    MyDevice->SetTexture(0, nullptr);
    MyDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
    MyDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
    MyDevice->SetRenderState(D3DRS_FOGENABLE, FALSE);
    MyDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
    MyDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
    MyDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
    MyDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
    MyDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
    MyDevice->SetRenderState(D3DRS_STENCILENABLE, FALSE);
    MyDevice->DrawPrimitiveUP(D3DPT_LINELIST, 1, &pVertex, sizeof(vertex));
}

P.S Переносить Render из s0beit ко мне - суицид, но попробуем, надеюсь поможет. Тему не закрывайте, может быть сможет кто-то помочь в чем загвоздка.

UPD: Починил, причем без другого Render'a.

В меню объект рисуется нормально, в игре нет - есть предположения?

Посмотреть вложение 21196 - рисуется,
Посмотреть вложение 21197 - рисуется, но как надо.

P.S Не смотрите на положение цветов, он крутится, следственно и цвета меняются.

Как я понимаю, смешивание и что-то в этом роде - не работают в игре.
16 бит? Для градиента g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD); используешь?
 

deropleat

Известный
Автор темы
105
56
16 бит? Для градиента g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD); используешь?
Нет, не использую. Использовать требуется именно в отрисовке объекта или совать в преднастройку состояний?

Не было времени заниматься, поэтому так долго не отвечал.
 
Статус
В этой теме нельзя размещать новые ответы.