mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 17:09:57 -04:00
Turn Link's own motion vectors on by default.
DLSS, FSR 3.1 and frame generation get the real motion of Link and his equipment unless selective_motion = 0 is set. Its two status lines come every minute or two instead of every two seconds, now that every session writes them. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
@@ -545,11 +545,11 @@
|
||||
# dlaa_objmv = 1
|
||||
# Motion vectors of Link's own for DLSS, FSR 3.1 and frame generation (game 1.1.1): Link and the equipment attached to him are
|
||||
# drawn a second time with last frame's pose, so fast turns, attacks and jumps move by their real motion instead of an
|
||||
# estimate from colour and depth. 0, the default: the estimate, as before. 1: on, to try; it reads the player's
|
||||
# equipment from the game's memory at every submission and has not been played on this version yet. Read at start.
|
||||
# estimate from colour and depth. 1, the default; 0: the estimate, as before 0.10.0. It reads the player's equipment
|
||||
# from the game's memory at every submission. Read at start.
|
||||
# motion_guard_degrees (35, 45 or 60, the default): a part that turns more than this in one frame is checked against
|
||||
# last frame's depth before its vector is written.
|
||||
# selective_motion = 0
|
||||
# selective_motion = 1
|
||||
# Characters' trails: where a character, animal or held item moves without motion vectors of its own (all of them with
|
||||
# dlaa_objmv = 0), DLSS can drag a faint copy of it. The G-buffer marks those objects; on them and where they were the
|
||||
# frame before, DLSS is told to favour the current frame by this percentage (0, 35, 65 or 100; 0 off). Higher removes
|
||||
|
||||
@@ -32,11 +32,11 @@ static int owner_on;
|
||||
|
||||
static void owner_init(void *unused) {
|
||||
(void)unused;
|
||||
// NX2NAVI_SELECTIVE_MOTION (selective_motion; default 0, 1 on): off until it has been played. On, every guest
|
||||
// NX2NAVI_SELECTIVE_MOTION (selective_motion; default 1, 0 off: the estimate from colour and depth). On, every guest
|
||||
// submission walks the player's actor, equipment and models in guest memory (motion_owner_capture), each scene
|
||||
// draw is looked up in that list (vk_fg_pose.inc pose_owner), and the player's meshes are drawn a second time
|
||||
// into the motion vectors DLSS, FSR 3.1 and frame generation read.
|
||||
owner_on = RT_V111 && rt_knob("SELECTIVE_MOTION", "0");
|
||||
owner_on = RT_V111 && rt_knob("SELECTIVE_MOTION", "1");
|
||||
}
|
||||
int motion_owner_enabled(void) {
|
||||
plat_once(&owner_once, owner_init, NULL);
|
||||
@@ -259,7 +259,7 @@ void motion_owner_capture(MotionOwnerSnapshot *out) {
|
||||
capture_model_buffers(out);
|
||||
O.nbindings=out->count;
|
||||
memcpy(O.bindings,out->bindings,out->count*sizeof *O.bindings);
|
||||
if(O.captures%720==0) rt_log("motion direct: %u shape bindings from %u models",out->count,O.count);
|
||||
if(O.captures%43200==0) rt_log("motion direct: %u shape bindings from %u models",out->count,O.count);
|
||||
plat_mutex_unlock(&owner_lock);
|
||||
qsort(out->bindings, out->count, sizeof *out->bindings, binding_address_order);
|
||||
}
|
||||
@@ -268,7 +268,7 @@ void motion_owner_present(void) {
|
||||
if (!motion_owner_enabled()) return;
|
||||
plat_mutex_lock(&owner_lock);
|
||||
++O.producer_frame;
|
||||
if (O.producer_frame % 120 == 0)
|
||||
if (O.producer_frame % 7200 == 0) // on by default: a line every minute or two, not every two seconds
|
||||
rt_log("motion ownership: %u models, %llu captures, %llu owned/%llu other queries, "
|
||||
"%llu conflicts, %llu capacity misses, %u attachment rejections",
|
||||
O.count, (unsigned long long)O.captures, (unsigned long long)O.owned_queries,
|
||||
|
||||
Reference in New Issue
Block a user