📦dariulone / cyberpunk-vr-port
← 返回首页
…
⚖️ MIT📅 创建于 2026-05-28🔄 更新于 2026-10-27

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有

CyberpunkVR Port

A 6-DoF VR mod for Cyberpunk 2077, built as a RED4ext plugin - CyberpunkVR_Stereo is the ONLY native plugin: it drives OpenXR head tracking, real stereo, the in-headset overlay and the full-body VR avatar with motion-controlled hands that used to live in a second DLL; and a set of CET / redscript mods add VR weapon aiming, the physical reload, motion melee, hand-to-holster equipping and more. Everything is configured in the VR menu (hold L3+R3) or the in-headset overlay (F10).

Repository: https://github.com/dariulone/cyberpunk-vr-port

⚠️ Experimental community mod. Not affiliated with CD PROJEKT RED. Use at your own risk and keep backups of your saves.

Features

  • Real stereo, not reprojection. The second eye is an actual engine view — a render-to-texture camera on the player entity that runs the frame graph for its own eye, from its own position, with its own projection. It falls back to mono automatically whenever that view has nothing fresh to give (menus, loading).
  • OpenXR head tracking injected into the REDengine render path, with the submitted frustum matching the one the engine actually rendered on both axes, plus world-scale / IPD controls. Each frame is submitted with its per-eye depth (XR_KHR_composition_layer_depth), so the runtime's reprojection knows where things are; generated frames carry none.
  • Each eye renders its own lens window (asymmetric projection, on by default, Stereo → Asymmetric projection): exactly the headset's off-centre field of view, at full pixel density and with square pixels, instead of a symmetric frustum that renders past the lens. Culling, occlusion, light lists and sun cascades follow each eye's window. The screen-space passes that assumed a centred monitor camera are corrected by shader twins — volumetric fog, screen-space and planar water reflections, cone AO, sun contact shadows, particles (they face the eye, not the screen), screens and holograms, and the Sandevistan — and the two eyes' reflections, AO and contact shadows are merged as one wide display at their inner edges. Exposure is metered from the place around you, so it no longer swings when you turn your head, and the sun-shadow cascade boundary no longer sweeps across the ground. With the switch off, off-axis lenses (Quest 3 and family) get a frustum sized to COVER the panel.
  • Native VR HUD panels with per-element placement, size and visibility, adjustable free-look cones, and separate interaction/dialogue and loot panels (head-locked by default). Scanner, CCTV, Basilisk and sniper displays have dedicated head-following channels; hit and kill markers have their own head-locked window. World markers retain their native depth and are projected separately for each eye. Popups that lay one flat picture over the frame (phone, radio, vehicle list, messages, shards) no longer double it.
  • Native VR frame generation with game motion vectors and depth: NVIDIA DLSS Frame Generation through the game's own nvngx_dlssg.dll (the default), FidelityFX with or without optical flow, and NVIDIA OFA + FidelityFX, with adaptive pacing and a performance overlay. Inputs come from DLSS, DLAA, native TAA, FSR 2, FSR 3, FSR 4 and XeSS; on non-NVIDIA GPUs optical flow falls back to FidelityFX. Ray-tracing motion formats and live RT changes are supported. CAS sharpening processes real captures before frame generation, not interpolated frames. CAS defaults to off and is bypassed automatically while game DLAA is active.
  • Upscalers per eye. FSR 3, FSR 3.1/4 and XeSS get a context per eye, so neither eye accumulates the other's history (blur and an IPD-wide ghost).
  • Optional GPU savers: fixed foveated DLSS, fixed peripheral VRS, a hidden-area mask for the lens edges, and sun shadows rendered once for both eyes.
  • The F10 overlay in both eyes, so a settings panel no longer costs you stereo the way a full-screen game menu does.
  • The two views agree. Sun cascade shadows, the shader clock, the foliage wind volume and the reflection march are all shared engine structures that the second view used to rebuild from its own frustum — which is where blinking shadows, dead flags, jittering vegetation and a mirror-finish ceiling came from. All four are lent from one view now.
  • The second view builds its own frame, rather than being handed MAIN's bytes. It keeps its own depth range (borrowing MAIN's near emptied the clustered light grid and put every lamp out indoors), the engine's own environment-override pass is run for it instead of copied — which is what brings the scanner's green tint back — and its composition is lent so the pass that draws the scanner outline executes for it at all. The finished frame is then taken at the node epilogue, from the engine's own acquire barrier, instead of mid-chain.
  • Every view is identified by name, never by elimination. The port used to call anything that was not the second eye "MAIN" — including the flat desktop window and every reflection-probe face — and that one habit produced a white second eye, a hang on ESC in a braindance, and a braindance with no colour grade. Views are matched by their virtual-camera name hash now; one that cannot be named is passed through untouched.
  • Braindances are stereo. A braindance renders through a camera no component points at, so the two eyes used to be built from different bases, at different rates, and the frame was submitted against a pose its pixels were never drawn from. One base, one head sample and one pose label serve both eyes, and the eye separation goes where the picture is actually rendered from.
  • Cameras you take over are yours. A surveillance camera or the AV turret keeps its own aim as the base and the head composes on top, at the headset's own fov, with both eyes on the lens rather than one on the player's body. The turret's camera never reaches the hook the port classifies cameras at, so it is identified through the entity the script names and driven through the located buffer; there is a viewpoint slider for the mission that needs one.
  • Full-body VR avatar (VRIK) — body under the HMD, arm-length calibration, leg IK, real-life squat. Hands are with the controllers, the shoulder girdle and elbows hang off the BODY rather than the head, and the solve is clocked by the engine's own animation batch. VRIK suspends itself during cutscenes so the avatar does not fight an authored scene.
  • Roomscale movement, bending and hybrid body rotation with paired headset, camera and avatar poses, anatomical shoulder reach and preserved foot contacts.
  • Gesture swimming and grip-based ladder climbing, including water-aware body posture, stroke-dependent propulsion and authored ladder hand poses.
  • Third-person and external-camera stereo, plus HMD aiming and steering for the Basilisk and head-driven surveillance cameras and story sniper sequences.
  • Tactical belt and physical grenades, with carried magazines, authored grenade grips and male/female belt assets.
  • Physical body rotation (optional) — the character turns to follow the headset through the game's own motion, independently of the VR view, so the mesh, the collision capsule, the aim and the movement direction all move with it. The view does not move and the hands stay on the controllers.
  • Physical crouch — squat in the room and the character crouches (on by default, 45 cm, Controls → Physical crouch depth); the VR camera stays put through weapon changes.
  • Paired animations get the body. The game's own reload (the Reload button) eases both arms and fingers onto its animation and back. Grapples and takedowns, picking up, dropping and hiding a body, and finishers hand the body to their animation; while carrying, the left arm holds the body and the right hand keeps aiming. Roomscale stays as it is.
  • The physical reload. Grab the magazine with your free hand's grip, pull it out along the path the weapon's own well defines, carry it, push it home; rack the slide with the other palm and release it with the right stick click. Ammo and sound follow the hands, not a timeline. Thirteen weapons are tuned individually — Unity, Tamayura, Tsunami Nue, Constitutional Liberty, Arasaka Kenshin, Militech Lexington, Militech Omaha, Kang Tao Chao, Tsunami Kappa, Arasaka Yukimura, Militech Ticon, Silverhand's Malorian, and the Malorian Overture revolver, which rolls its cylinder, ejects its cases and reloads from a real speedloader.
  • Decoupled VR weapon aim — bullets follow the real weapon muzzle, not the camera. The hit is redirected inside the engine's own PhysicalRay evaluator, so shotgun spread stays spread and every other shooter in the world keeps firing from their own barrel. Projectiles leave the muzzle too. Optional barrel dot in both eyes, scope-zoom aware.
  • Recoil in the hands, not the camera — the shot turns the wrist on a damped spring, every weapon kicks by its own measured amount (scaled by xr_recoil_scale, 0.7), and the head is never kicked.
  • A resting hand and a real two-handed hold — with a weapon out the empty hand relaxes instead of clawing at nothing, and bringing it to the weapon offers the support grip: squeeze and the wrist locks on, the off hand steers the aim from where it was when the grip closed, and the kick drops. Pull the hand 60 cm off the weapon and it lets go.
  • Physical optics — low-magnification scopes are real lenses in the headset instead of the flat-screen ADS overlay; sniper rifles look through a scope camera bound to the weapon; collimator reticles are placed by angle along the sight's own optical axis, so they stay on the bore instead of sliding across the glass when you look at the sight from the side. Bring your eye to the sight and it comes closer; no aim trigger needed.
  • VR motion melee — real swings trigger the game's native melee along the blade (native damage/reaction/stamina).
  • VR cyberware — mantis blades, gorilla arms, the monowire and the projectile launcher are driven by your arms, with free-hand gestures from the controllers. The monowire leaves the forearm housing and its line moves with the body.
  • Physical throws — hold the left trigger with a throwable melee weapon, squeeze the right grip, throw and open the grip. The knife flies nearly straight, aimed mostly where you looked just before the throw; aim assistance prefers the enemy nearest that gaze and curves the flight on to it.
  • Controller vibration — every shot by weapon class, melee blocks and parries, bullet blocks and deflections, the tactical belt and the grenade pin (*Controls → Controller vibration / Vibration str

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR