- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 251
- Реакции
- 6
Парни, делюсь годнотой для тех, кто страдает с расчетами FOV. Нашел в рендере игры уже готовое значение cot(fov/2), которое хранится в view render. Использовать его максимально просто, так что пастеры, радуйтесь.
Простой дельта-угол:
Сама магия проекции:
Кто уже пробовал внедрять это в свой external? Как полет, нет ли проблем с просадкой FPS при чтении из этого офсета? Делитесь результатами в треде.
Простой дельта-угол:
Код:
float c_vector_3f::calc_fov( const c_vector_3f& o ) const
{
return math::rad_to_deg( std::acosf( std::cosf( math::deg_to_rad( o.x - x ) )
* std::cosf( math::deg_to_rad( o.y - y ) ) ) );
}
Сама магия проекции:
Код:
float engine::project_fov( float fov_deg )
{
ImGuiIO& io = ImGui::GetIO( );
float half_w = io.DisplaySize.x * 0.5f;
float cot_half_fov = driver::read< float >(
reinterpret_cast< uintptr_t >( get_view_render( ) ) + 0xD0 );
return half_w * std::tanf( math::deg_to_rad( fov_deg ) ) / cot_half_fov;
}
Кто уже пробовал внедрять это в свой external? Как полет, нет ли проблем с просадкой FPS при чтении из этого офсета? Делитесь результатами в треде.