rtx-remix icon indicating copy to clipboard operation
rtx-remix copied to clipboard

[Runtime bug] Capture Left-handed setting has no effect/Rect lights are mirrored [Max Payne 1]

Open PappaSlask opened this issue 1 year ago • 7 comments

Describe the bug The Scene Left-Handed Coordinate System checkbox in the Remix ingame UI has no effect on my captures, which causes lights to point in the wrong direction and not being synced with the game. It used to work fine before, but was broken some time ago. EDIT: It works on dxvk build 265!

Somewhere between build 265 and 420, the function was removed. Because it's not present in 0.4.1/420-423.

Some closer details on this was added by Mark on the Remix discord: I know the left handed option was removed here: https://github.com/NVIDIAGameWorks/dxvk-remix/commit/c754bd19d94d11b4f9375241b377761f3fa87285 and then a newleft handed option was added back in with this PR: https://github.com/NVIDIAGameWorks/dxvk-remix/commit/aea8f5cc89f5b3f65e71f2f94460af8b6c8e9bbb

Using dxvk version 265, when enabling Left-handed capture, my captures actually receive a negative value for the Z Scale, applied to the instance meshes, effectively making the whole level mirrored. But, it will also sync up lights positions and directions with the game correctly, which is desirable. The best would be to have lights directions synced with the game while also not having to show up mirrored in Composer/toolkit.

Temporary solution to this issue: In Composer, make the capture layer the authoring layer, then go to stage tab and select instances, in the options panel press Add Transforms, and then set a minus before the value for X Scale on transforms (e.g -1.0)

  • remix-0.5.0, Bridge Version: remix-main+e0dbe92d, DXVK Version: remix-main+d61d1ac2
  • RTX 3070
  • GPU Driver: 31.0.15.5123
  • Max Payne Retail CD version, patch [1.05]

d3d9.log NvRemixBridge.log MaxPayne_d3d9.log rtx - Copy.conf.log

To Reproduce Steps to reproduce the behavior:

  1. Load game
  2. Flip on Left-handed setting
  3. Capture a scene
  4. Load cap in Kit or Composer, notice the level layout
  5. Restart the game, turn off Left-handed capping
  6. Cap the scene again
  7. Open the scene in Kit or Composer and notice it's identical to your first capture.

Expected behavior

  • Directly impacts my capture

PappaSlask avatar May 04 '24 19:05 PappaSlask

Ticket updated with more details. Sorry for not adding enough information and context from the very start!

PappaSlask avatar May 08 '24 23:05 PappaSlask

Captured lights not applying the same inversion + handedness correction was known and very recently fixed. Please try this build, and if the problem persists, then we will go ahead and track the issue internally.

nv-nfreybler avatar May 09 '24 14:05 nv-nfreybler

REMIX-2828 and REMIX-2703 for tracking

nv-nfreybler avatar May 09 '24 21:05 nv-nfreybler

Captured lights not applying the same inversion + handedness correction was known and very recently fixed. Please try this build, and if the problem persists, then we will go ahead and track the issue internally.

Hello @nv-nfreybler This has nothing to do with captured lights. We generally never capture vanilla lights from the game, because we like to add our own custom lights.

Furthermore, I tried the special build I was suggested. This is what I found:

  • Left-handed capping or not, makes no difference on anything for my scene or the game.
  • Lights are still shining in the wrong direction (mirrored), unless I create transforms for instances (main instances parent in Stage) and add a minus to X scale (-1.0)
  • mesh_light sources are synced with their instance_light twin, but movement between the two is mirrored, unless I add a minus to X scale for instances.
  • The source light and its instance twin coexist in the scene, but on different locations. This is due to the parent mesh used for the light has its origin/pivot point offset to the actual location of the mesh, and is a fundamental problem with the Max Payne series.
  • Should I touch the transforms for the light_instance (either by changing transforms values directly, or by moving it with the movement tool) the synchronization breaks between the mesh_light and its instance twin, and it's not reversable unless deleted and a new light is added.

PappaSlask avatar May 10 '24 15:05 PappaSlask

@nv-ajaus Hi Alex! Any updates on this sir?

PappaSlask avatar Jul 11 '24 00:07 PappaSlask

@NV-LL Any update on this guys?

PappaSlask avatar Sep 25 '24 18:09 PappaSlask

Hi @PappaSlask, sorry for the delay here, we ran into a process snag with the various tickets involved and missed posting an update on this one.

We found and fixed a number of issues a couple of months ago that caused lights to be oriented/positioned incorrectly in some instances, both in runtime captures as well as when lights are loaded from toolkit into runtime. I'm not sure if this covers all that you described in your May 10 comment, but I suspect it might address most of it --- have you re-tested this on the latest released runtime + toolkit? Are you still seeing the same symptoms?

nsubtil avatar Sep 25 '24 22:09 nsubtil

Hi @PappaSlask - checking in to see if you've been able to retest this issue with the latest runtime and toolkit builds. Thanks!

NV-LL avatar Oct 10 '24 17:10 NV-LL