fogclear
This module removes the fog and allows you to see further.Contact / 联系我
If you have any questions, feel free to contact me ↓ Email: [email protected] QQ: 670155978
如有任何问题,请与我联系 ↓ 邮箱:[email protected] QQ:670155978
FogClear
Fog and view-distance mod for R.E.P.O. (BepInEx 5 / Harmony).
Removes the room fog while keeping the original atmosphere, and extends the camera far clip plane so distant rooms and props render clearly — without touching the light or shadow budget that the game relies on for performance.
Features
- Fog toggle owned by the mod. Fog is driven purely by the hotkey state: on = force
RenderSettings.fog = false, off = forceRenderSettings.fog = true. It never reads the game's state machine back, soSpectateCameracannot flip it under you. The toggle responds instantly — the change is applied the same frame the key is pressed, with no latency and no missed presses. - View distance that stays smooth.
ExtendViewDistanceonly changes the real render camera'sfarClipPlaneand the fog switch. It does not raiseGraphicsManager.lightDistanceorQualitySettings.shadowDistanceany more — that coupling was the entire reason earlier versions stuttered the moment you turned view distance on. View distance is now on by default at 500 m. - Light distance and shadow distance are separate switches, on by default.
Lighting.ExtendLightDistanceandLighting.ExtendShadowDistancedefault to on and are hard-capped (40 m / 60 m) so the starting values equal the game's own top graphics preset; turn them off in the cfg if a room starts to stutter. The game activates a light whendistance < GraphicsManager.lightDistance * PropLight.lightRangeMultiplier, so even a +5 m nudge gets multiplied across every room in the map and switches on dozens of lights at once. - Single write point per frame. State is pushed from a
CameraUpdate.LateUpdateprefix — the moment right before the game renders its cameras — instead of four postfix hooks fighting the game every frame. - Throttled light refresh.
LightManager.UpdateInstant()starts a fade coroutine per light; it is now rate-limited (3 s by default) instead of being called on every write. - Hotkey toggle.
\by default, rebindable in the cfg. No extra diagnostic hotkeys: every toggle writes one state line to the log (fog values, far clip, light counts, write rate), so nothing else competes for a key.
Configuration
Edit BepInEx/config/com.fogclear.repo.cfg after the first launch.
| Section | Setting | Default | Description |
|---|---|---|---|
| General | Enabled | true | Start with fog removal on |
| General | ToggleKey | Backslash | Hotkey that toggles fog removal |
| General | ConfigSchema | 5 | Internal, do not edit |
| ViewDistance | ExtendViewDistance | true | Extend camera far clip plane |
| ViewDistance | FarClipPlane | 500 | Target far clip distance in meters (default 500; raise carefully, hard cap 2000) |
| Lighting | ExtendLightDistance | true | Extend light activation distance |
| Lighting | LightDistance | 30 | Light activation distance in meters, capped at 40 |
| Lighting | ExtendShadowDistance | true | Extend shadow distance |
| Lighting | ShadowDistance | 25 | Shadow distance in meters, capped at 60 |
| Lighting | LightRefreshIntervalSeconds | 3 | Minimum interval between light refreshes |
| Performance | PixelLightGuard | true | Lower per-pixel light count while view distance is extended |
| Performance | PixelLightCount | 4 | Per-pixel light cap used by the guard |
Installation
- Install BepInEx 5 for R.E.P.O.
- Drop
FogClear0.3.1.dllintoBepInEx/plugins/. - Launch the game. Press
\to toggle fog removal.
Notes
- Client-side only. It changes what you see, not what other players see; no host privileges required.
- Upgrading from 0.2.x: the config section moved from
ViewDistance.ExtendLightingDistancetoLighting.ExtendLightDistance. Any leftover aggressive values (LightDistance=35,ShadowDistance=30,ExtendLightDistance=true) are reset to the safe defaults on first launch and a line is written to the log. AFarClipPlanestill sitting at the old default 100, or anExtendViewDistancestill off, is migrated to 500 / on; manually tuned values above 100 are left alone. - If you still want distant lights on, raise
LightDistancea little at a time and read the active light count printed in the log on each\toggle. Once that number jumps by a few hundred, frame time goes with it. - Turning fog removal off (
\) also returns the far clip to the game's own value, because the extended view distance rides on the same switch.
FogClear(中文)
R.E.P.O. 去雾与视野距离扩展模组(BepInEx 5 / Harmony)。
在保留原版氛围的前提下移除房间浓雾,并扩展摄像机远裁剪,让远处房间与物件清晰可见 —— 但不再动游戏的灯光与阴影预算,那正是旧版一开视距就卡的根源。
功能
- 雾气开关完全由模组按键掌握:开启去雾 = 强制
RenderSettings.fog=false,关闭去雾 = 强制RenderSettings.fog=true,不回读游戏状态机,SpectateCamera也无法把它翻回去。开关按键即时生效 —— 按下当帧就完成切换,无延迟、无失灵。 - 视距扩展不再拖累帧率:
ExtendViewDistance只改真实渲染相机的farClipPlane与雾开关,不再连带抬高GraphicsManager.lightDistance与QualitySettings.shadowDistance。视距现在默认开启,距离 500 米。 - 灯光距离、阴影距离拆成两个独立开关,默认开启:
Lighting.ExtendLightDistance与Lighting.ExtendShadowDistance默认均为开启,起始数值就等于游戏最高画质档,并强制上限钳制(40m / 60m);某间房开始掉帧时在 cfg 里单独关掉即可。游戏判定一盏灯点亮的条件是距离 < GraphicsManager.lightDistance × PropLight.lightRangeMultiplier,倍率一乘,5 米的增量就足以把整张地图几十个房间的灯同时点亮。 - 每帧只写一次:状态下发改到
CameraUpdate.LateUpdate的 Prefix —— 游戏逐个Camera.Render()之前的那一刻,取代原先四个后置钩子跟游戏抢写。 - 灯光刷新节流:
LightManager.UpdateInstant()会给每盏灯各起一条淡入淡出协程,现在改为限频调用(默认 3 秒)。 - 热键开关:默认
\,可在 cfg 中改键。不占用额外诊断键:每次切换会往日志写一行状态(雾参数、远裁剪、灯光数量、写入频率),不需要再抢一个按键。
配置
首次运行后编辑 BepInEx/config/com.fogclear.repo.cfg。
| Section | Setting | Default | 说明 |
|---|---|---|---|
| General | Enabled | true | 启动时是否自动开启去雾 |
| General | ToggleKey | Backslash | 去雾开关热键 |
| General | ConfigSchema | 5 | 内部使用,请勿修改 |
| ViewDistance | ExtendViewDistance | true | 是否扩展摄像机远裁剪(默认开启) |
| ViewDistance | FarClipPlane | 500 | 目标远裁剪距离(米),默认 500;可继续上调,硬上限 2000 |
| Lighting | ExtendLightDistance | true | 是否扩展灯光激活距离 |
| Lighting | LightDistance | 30 | 灯光激活距离(米),上限 40 |
| Lighting | ExtendShadowDistance | true | 是否扩展阴影距离 |
| Lighting | ShadowDistance | 25 | 阴影距离(米),上限 60 |
| Lighting | LightRefreshIntervalSeconds | 3 | 灯光刷新最小间隔(秒) |
| Performance | PixelLightGuard | true | 扩展视距时压低逐像素光源数 |
| Performance | PixelLightCount | 4 | 护栏生效时的逐像素光源上限 |
安装
- 为 R.E.P.O. 安装 BepInEx 5。
- 将
FogClear0.3.1.dll放入BepInEx/plugins/。 - 启动游戏;按
\切换去雾。
说明
- 纯客户端模组,只影响本地画面,不影响他人,无需主机权限。
- 从 0.2.x 升级:配置项由
ViewDistance.ExtendLightingDistance迁到Lighting.ExtendLightDistance。旧版遗留的激进值(LightDistance=35、ShadowDistance=30、ExtendLightDistance=true)会在首次启动时自动回落为安全默认值,并在日志中提示。仍停留在旧默认 100 的FarClipPlane,以及处于关闭状态的ExtendViewDistance,会被迁到 500 / 开启;你自己调到 100 以上的距离一律保留不动。 - 确实想要远处灯光,请小幅逐步提高
LightDistance,每次按\时看日志里的激活灯数量;这个数字一动就是几百,帧率也会跟着走。 - 按
\关闭去雾时,远裁剪也会交还游戏自身的值 —— 扩展视距挂在同一个开关上。
