-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем здрасьте. Столкнулся с таким мемом у W2S.
Как это лечится и из за чего возникает? Что собственно говоря неправильно?
Сама W2S функция:
Как это лечится и из за чего возникает? Что собственно говоря неправильно?
Код:
bool DrawManager::WorldToScreen(Vector vOrigin, Vector &vScreen)
{
static uintptr_t clientDll = 0;
while (!clientDll) { clientDll = (uintptr_t)GetModuleHandle(L"client.dll"); Sleep(100); }
float w = g::viewMatrix[3][0] * vOrigin.x + g::viewMatrix[3][1] * vOrigin.y + g::viewMatrix[3][2] * vOrigin.z + g::viewMatrix[3][3];
float ScreenWidth = (float)this->viewPort.Width;
float ScreenHeight = (float)this->viewPort.Height;
if (w > 0.01)
{
float inverseWidth = 1 / w;
vScreen.x = (float)((ScreenWidth / 2) + (0.5 * ((g::viewMatrix[0][0] * vOrigin.x + g::viewMatrix[0][1] * vOrigin.y + g::viewMatrix[0][2] * vOrigin.z + g::viewMatrix[0][3]) * inverseWidth) * ScreenWidth + 0.5));
vScreen.y = (float)((ScreenHeight / 2) - (0.5 * ((g::viewMatrix[1][0] * vOrigin.x + g::viewMatrix[1][1] * vOrigin.y + g::viewMatrix[1][2] * vOrigin.z + g::viewMatrix[1][3]) * inverseWidth) * ScreenHeight + 0.5));
return true;
}
return false;
}