Worldtoscreen vagy fejlesztési dobozt esp

WorldToScreen vagy fejlesztési dobozt esp

Hi all, hosszú ideig, hogy kitaláljam, mit jelent az értékrendet, vagy inkább a mátrix szükséges a fordítás a 3d helyzetben játékos a 2d képernyőn.
Sikeresen megtaláltuk a megfelelő értéket a CSS 80+, de hosszú ideje keres ez a mátrix, csak véletlenszerűen találja meg.
Bár szó és világosan, hogy ott kell lennie értékeit vetítés, a játékos kamera, nem egyértelmű, hogy melyik a 16 kész.
Elhoztam az egész kétdimenziós tömb a képernyőn (float Mass [4] [4] Valójában ez része a szerkezet a memóriában a játék), de ez nem sokat segít, azzal az eltéréssel, hogy időnként adatok vált gyorsan frissíteni.
Röviden, mondja meg, ki keres, hogyan ezeket az értékeket, mi fordítási funkciókat. A legelső funkció vizsgálat.
Tisztában vagyok, itt van egy pár, lehet ott, és az:

Flip, megújult általam használható D3D:

bool WorldToScreen (float * a, float * a)

a [0] = MyPlayer.WorldToScreenMatrix.flMatrix [0] [0] * a [0] + MyPlayer.WorldToScreenMatrix.flMatrix [0] [1] * a [1] + MyPlayer.WorldToScreenMatrix.flMatrix [0] [2] * a [2] + MyPlayer.WorldToScreenMatrix.flMatrix [0] [3];
Az [1] = MyPlayer.WorldToScreenMatrix.flMatrix [1] [0] * a [0] + MyPlayer.WorldToScreenMatrix.flMatrix [1] [1] * a [1] + MyPlayer.WorldToScreenMatrix.flMatrix [1] [2] * a [2] + MyPlayer.WorldToScreenMatrix.flMatrix [1] [3];
w = MyPlayer.WorldToScreenMatrix.flMatrix [3] [0] * a [0] + MyPlayer.WorldToScreenMatrix.flMatrix [3] [1] * a [1] + MyPlayer.WorldToScreenMatrix.flMatrix [3] [2] * a [ 2] + MyPlayer.WorldToScreenMatrix.flMatrix [3] [3];

if (w <0.01f)
return false;

float invw = 1.0f / W;
a [0] * = invw;
Az [1] * = invw;

int width = viewP_ESP.Width;
int height = viewP_ESP.Height;

float x = szélesség / 2;
float y = magasság / 2;

x + = 0,5 * a [0] * szélesség + 0,5;
y - = 0,5 * a [1] * magasság + 0,5;

a [0] = x + / * WindowRect.left * / viewP_ESP.Height;
Az [1] = y + / * WindowRect.top; * / viewP_ESP.Width;

D3DXVECTOR3 WorldToScreen (D3DXVECTOR3 in)
D3DXVECTOR3 ki, temp;

D3DXVec3Subtract (temp, -ban, InvViewTranslation);
float x = D3DXVec3Dot (temp, InvViewRight);
float y = D3DXVec3Dot (temp, InvViewUp);
float z = D3DXVec3Dot (temp, InvViewForward);

out.x = ViewPortMatrix.x * (1 + (x / ProjD1.x / z));
out.y = ViewPortMatrix.y * (1 - (y / ProjD2.y / z));
out.z = Z;

bool WorldToScreen (D3DXVECTOR3 INPOS, D3DXVECTOR3 outpos, LPDIRECT3DDEVICE9 pDevice)


DWORD dwRenderData = (DWORD) GetModuleHandleA ( "engine.dll") + 0x3B5260;
CRenderData * RenderData = (CRenderData *) (dwRenderData);

D3DXVECTOR3 vScreen;
D3DVIEWPORT9 g_ViewPort;

pDevice-> GetViewport (g_ViewPort);
g_ViewPort.X = g_ViewPort.Y = 0;
g_ViewPort.MinZ = 0;
g_ViewPort.MaxZ = 1;
D3DXVec3Project (vScreen, INPOS, g_ViewPort,
RenderData-> RenderData-> ProjectMatrix,
RenderData-> RenderData-> ViewMatrix,
RenderData-> RenderData-> WorldMatrix);

if (vScreen.z <1.0f && vScreen.x> 0.0f vScreen.y> 0.0f vScreen.x outpos.x = vScreen.x;
outpos.y = vScreen.y;
outpos.z = vScreen.z;

Túl flip, de sortsy a COD4:

// Megragadja a 3D koordinátákat, és megváltoztatja azokat, 2d számunkra, hogy játszani
// ------------------------------------------------ ---------------------------
/ * Bool ESP_WorldToScreen (Vect3d WorldLocation, Vect3d SajatPos)
Vect3d vLocal, vTransForm;
vForward = új Vect3d ();
vRight = új Vect3d ();
vUpward = új Vect3d ();

ESP_AngleVectors ();
vLocal = ESP_SubVectorDist (WorldLocation, SajatPos);

vTransForm.x = vLocal.dotproduct (* vRight);
vTransForm.y = vLocal.dotproduct (* vUpward);
vTransForm.z = vLocal.dotproduct (* vForward);

if (vTransForm.z <0.01)
return false;

ScreenX = screencenter [0] + (screencenter [0] / vTransForm.z * (1 / FOV [0])) * vTransForm.x;
Screeny = screencenter [1] - (screencenter [1] / vTransForm.z * (1 / FOV [1])) * vTransForm.y;

Re: WorldToScreen vagy fejlesztési dobozt esp

nincs helyes megértése mátrixok. Ne feledje, a 10-11 osztály - minden kihagyott órák trigonometria, kezdjük egy egyszerű. moymu kétdimenziós tömb, és akkor minden rendben lesz megérteni. Nem turkálni a mátrixok. de számítások megérteni, hogyan és milyen független felülvizsgálata, és a mérete a kép jelenik meg a képernyőn, vagy ha csak szeretné megérteni, hogyan kell kiszámítani a koordinátákat a fordítást 3d 2d - majd az úgynevezett mátrix nem kell dolgozni egyáltalán

Kapcsolódó cikkek