Developer knowledge network · moderated exchange

UnreliableCode Topluluğu

Geliştirici Araştırması, Tersine Mühendislik ve Kodlama Topluluğu

Knowledge indexCanlı
4Categories
919Threads
2.8KGönderiler
Release

Dynamic Recoil Crosshair in ImGui (Standalone cl_crosshair_recoil emulation) [v2.4 Technical Discussion]

imgui_artisan
UI Designer
MEMBER
Temsilci: 202
Katılım Tarihi: Apr 2019
Gönderiler: 54
Teşekkürler: 28
1 ay önce · Jul 23, 2026 9:47 PM
#1

How to calculate recoil crosshair offset on screen without modifying client convars:

CPP
void DrawRecoilCrosshair(C_CSPlayerPawn* pLocal, Vector2 screenCenter) {
    Vector2 punch = { pLocal->m_aimPunchAngle().x, pLocal->m_aimPunchAngle().y };
    float fov = 90.0f; // Local FOV
    
    // Screen pixels per angle degree
    float pixelsPerDegree = (float)screenHeight / fov;
    
    float dx = -punch.y * pixelsPerDegree * 2.0f;
    float dy = punch.x * pixelsPerDegree * 2.0f;
    
    ImVec2 crosshairPos(screenCenter.x + dx, screenCenter.y + dy);
    ImGui::GetBackgroundDrawList()->AddCircleFilled(crosshairPos, 2.5f, IM_COL32(0, 255, 255, 220));
}
matrix_math_guy
Math Specialist
MEMBER
Temsilci: 105
Katılım Tarihi: Aug 2018
Gönderiler: 52
Teşekkürler: 41
1 ay önce · Jul 24, 2026 1:25 AM
#2

Multiplying by 2.0f accounts for the WeaponRecoilScale factor in Source engine. Exact pixel accuracy.

csgo_offset_hound
Offset Master
MEMBER
Temsilci: 114
Katılım Tarihi: Apr 2019
Gönderiler: 16
Teşekkürler: 16
1 ay önce · Jul 24, 2026 5:08 PM
#3

Clean and lightweight HUD addition.