NatronGitHub / Natron

Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
http://NatronGitHub.github.io
GNU General Public License v2.0
4.65k stars 338 forks source link

OCIOLookTransform gives incorrect output when GPU acceleration is enabled #706

Closed Shrinks99 closed 2 years ago

Shrinks99 commented 2 years ago

Natron version

2.4.1

Operating system

Windows 10

System specs

RAM: 16 GB
CPU: i7 5820k
GPU: Nvidia GTX 970

Did you install Natron using the official installer?

What were you trying to do?

Use OCIOLookTransform to apply Filmic Blender look transforms

What did you expect to happen? What happened instead?

The OCIOLookTransform node provides incorrect output when GPU acceleration is enabled. When it is disabled the node works as expected. Here are screenshots showing the Natron Viewer overlaid atop Nuke's viewer as a reference. Node graphs are identical between the two programs.

GPU Render is enabled GPU Render On

GPU Render is Disabled

GPU Render Off

Step-by-step reproduction instructions

  1. Set OCIO configs (download here)
  2. Open file provided
  3. Enable GPU in OCIOLookTransform
  4. The output is posterized and wrong :(

filmictests.zip

Download the exr file used here (Original art by Juan Callejas, will try to keep hosted on Dropbox until this issue is closed)

devernay commented 2 years ago

This is expected, see the doc for that parameter: "Note that GPU render is not as accurate as CPU render, so this should be enabled with care."

OCIO is responsible for that implementation.

Shrinks99 commented 2 years ago

Fair enough, apparently OCIO v2 includes a new GPU enabled renderer which matches the CPU one so maybe that can be implemented in the future?

devernay commented 2 years ago

There's an OCIO2 branch in openfx-io, but there's a good amount of work to do to to port the GPU rendering stuff from OCIO1 to OCIO2 (they broke the API). see https://github.com/NatronGitHub/openfx-io/issues/4

devernay commented 2 years ago

The next build (alpha2?) should use OpenColorIO 2 (at least on Linux and macOS), thanks to @YakoYakoYokuYoku. This should fix the GPU render issues