Зацепил Direct3D 9, но мои вещи не нарисованы

Привет всем, я возиться с некоторыми DLL инъекций вещи. Поэтому я скачал простой пример приложения Direct3D 9 (он показывает только куб), которым я хочу манипулировать.

Мне уже удалось подключить функции EndScene и Reset этого приложения, и теперь я просто хочу добавить больше света к текущему нарисованному кадру.

Вот моя функция EndScene:

HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE9 pDevice) {
lightHackTest2(pDevice);
auto ret = origEndScene(pDevice);
placeHooks();
return ret;
}

и вот моя функция lightHackTest2:

void lightHackTest2(LPDIRECT3DDEVICE9 pDevice) {
pDevice->SetRenderState(D3DRS_AMBIENT, D3DCOLOR_XRGB(100, 100, 100));
}

void lightHackTest(LPDIRECT3DDEVICE9 pDevice) {
D3DLIGHT9 light;
ZeroMemory(&light, sizeof(light));
light.Type = D3DLIGHT_DIRECTIONAL;
light.Diffuse.r = 0.5f;
light.Diffuse.g = 0.5f;
light.Diffuse.b = 0.5f;
light.Diffuse.a = 1.0f;
light.Direction.x = -1.0f;
light.Direction.y = -0.5f;
light.Direction.z = -1.0f;

pDevice->SetLight(0, &light);
pDevice->LightEnable(0, TRUE);
}

Эти функции на самом деле вызываются (проверяется с помощью некоторых MessageBoxes), но все остается на месте.

Я неправильно применяю свет?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector