Tresjs / tres

Declarative ThreeJS using Vue Components

Home Page:https://tresjs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Set tone-mapping default to ACESFilmicToneMapping

alvarosabu opened this issue · comments

Describe

As a developer using TresJS, I would like the tone-mapping of the renderer to be set to ACESFilmicToneMapping as default.

This will introduce a Breaking change.

Decisions based on feedback from the community:

Screenshot 2024-01-04 at 08 32 46

Screenshot 2024-01-04 at 08 33 36

From left to right: r3f, Tres, Threlte

Screenshot 2024-01-03 at 15 56 42

Docs

Render defaults
Canvas uses createRoot which will create a translucent THREE.WebGLRenderer with the following constructor args:

antialias=true
alpha=true
powerPreference="high-performance"
and with the following properties:

outputColorSpace = THREE.SRGBColorSpace
toneMapping = THREE.ACESFilmicToneMapping
It will also create the following scene internals:

A THREE.Perspective camera
A THREE.Orthographic cam if orthographic is true
A THREE.PCFSoftShadowMap if shadows is true
A THREE.Scene (into which all the JSX is rendered) and a THREE.Raycaster
In recent versions of threejs, THREE.ColorManagement.enabled will be set to true to enable automatic conversion of colors according to the renderer's configured color space. R3F will handle texture color space conversion. For more on this topic, see https://threejs.org/docs/#manual/en/introduction/Color-management.

Update this is because of the toneMapping which is set as threejs default NoToneMapping vs the ACESFilmicToneMapping used by the rest of the renderers.

I just asked Cody and he stated that is by design to align with Blender + useful for realistic lighting