Commit graph

53 commits

Author SHA1 Message Date
Fabien Servant
0bf2c41524 Use pixel aspect ratio for 3d viewer 2024-11-26 15:30:09 +01:00
Grégoire De Lillo
5fca8a74e2 [ui] Viewer3D: Fix wrong camera up vector initialization
Default camera up should be accurate and consistent with camera view center.
Default camera up vector is not refresh or checked when default camera view center is set.
2024-11-14 10:49:56 +00:00
Grégoire De Lillo
bfda6f66ac [ui] Viewer3D: Use directional light & add light controller
Use a single light entity instead of one per camera.
Use directional light instead of point light.
Add camera relative directional light controller.
2024-11-14 10:49:56 +00:00
Candice Bentéjac
62f0a3e5df [qt6][Viewer3D] Change picking behavior 2024-11-07 18:15:44 +01:00
Candice Bentéjac
b884fc4e6b [qt6] Viewer3D: Reset the default render mode to "Textured" 2024-11-07 18:15:43 +01:00
Candice Bentéjac
5a0b1c0c95 [qt6][qml] Clean-up code and harmonize comments 2024-11-07 18:15:37 +01:00
Candice Bentéjac
b12d1fed06 [qt6][qml] Remove unnecessary module imports 2024-11-07 18:13:36 +01:00
Candice Bentéjac
92e56673ed [qt6] Use JS functions format to declare explicit parameters in slots 2024-11-07 18:13:19 +01:00
Candice Bentéjac
240188c0b4 [qt6][Viewer3D] Disable wireframe mode
Disable and hide the wireframe mode as the shaders need to be updated
for RHI.
2024-11-07 18:13:18 +01:00
Candice Bentéjac
f6a9e5d59c [qt6][Viewer3D] Remove PointSize render state
`PointSize` is not supported by RHI.
2024-11-07 18:09:12 +01:00
Candice Bentéjac
3ff279d99a [qt6] Use JS functions format to declare explicit parameters in slots 2024-11-07 18:09:10 +01:00
Candice Bentéjac
0e71f2a520 [qt6] Update versions for all the imported modules
Qt3D.Extras cannot be updated to 2.6 yet, otherwise there are errors.
2024-11-07 18:09:01 +01:00
Candice Bentéjac
6d845376eb [qt6] Use JS functions format to declare explicit parameters in slots
This fixes all the "Injection of parameters into signal handlers
is deprecated. Use JavaScript functions with formal parameters instead."
warnings.
2024-11-07 18:08:59 +01:00
Aurore LAFAURIE
ccd88c4646 [ui] Replacement of Controls1 SplitView to Controls2 SplitView 2024-09-17 18:32:59 +02:00
Fabien Castan
29243765c8 [ui] Viewer3D: remove animations on cameras 2024-04-10 19:39:36 +02:00
Candice Bentéjac
9d2974d282 [Viewer3D] Clean-up: Harmonize syntax across all the files 2023-11-06 16:28:20 +01:00
Candice Bentéjac
091346cbb8 [qml] Optimize QML files and fix syntax warnings
This commit addresses warnings that were raised by QtCreator's linter:
- IDs declared more than once
- variables declared more than once in the same scope
- type coercions
- variables declared as "var" when their type is known
- unclosed "case" in switch-case
2023-07-04 12:04:14 +02:00
Candice Bentéjac
62ba08447d [qml] Qt5.15: Upgrade all remaining modules
The upgrade concerns the following modules:
- QtCharts
- QtPositioning
- QtLocation
- QtGraphicalEffects
- QtQml
2023-07-03 12:11:32 +02:00
Candice Bentéjac
423de8ccfe [qml] Qt5.15: Upgrade all Qt3D modules 2023-07-03 12:11:31 +02:00
Candice Bentéjac
9b5dd40b02 [qml] Qt5.15: Upgrade all QtQuick modules 2023-07-03 12:11:29 +02:00
mugulmd
aea6eb19ab [ui] 3D image overlay: use autoTransform to avoid shrinking when resizing viewer 2023-02-09 03:45:13 -08:00
mugulmd
a52aeabedb [ui] 3D viewer: correct field of view using orientation tag 2023-02-06 08:37:30 -08:00
mugulmd
7e4b1a77ac [ui] factorize exif orientation transform in utility functions 2023-02-06 08:16:42 -08:00
mugulmd
205ff22b74 [ui] apply orientation tag to 3d scene to match 2d viewer 2023-02-06 06:09:37 -08:00
Loïc Vital
935a8a2568 [ui] load 3D depth map: custom label in 3D inspector 2022-12-20 12:31:36 +01:00
Candice Bentéjac
02383c68b3 [ui] Check that objects accessed by QML properties are not null before accessing them
Some QML properties access exposed Python objects that may or may not
be null upon their access. When these objects are accessed while null,
QML issues "TypeError" warnings. These warnings have no functional
impact as QML correctly handles trying to access null objects, but can
spam the logs.

This commit aims at fixing all these warnings by checking that the
Python objects are not null before being accessed.
2022-12-06 11:04:50 +01:00
Fabien Castan
cb9841ddd0
Merge pull request #390 from alicevision/dev_lightingEstimation
[nodes] New node `LightingEstimation`
2020-12-15 16:36:52 +01:00
Julien-Haudegond
f2a75861c3 [ui] Viewer3D: better bounding box appearance
- Add edges to the bounding box. Appearance inspired by Blender.
- Better gizmo integration over the scene.
2020-08-13 14:24:44 +02:00
Julien-Haudegond
4ab412dd90 [ui] Viewer3D: move bounding box display to Inspector3D 2020-08-13 14:24:44 +02:00
Julien-Haudegond
208114653a [ui] Viewer3D: bounding box linked to meshing node 2020-08-13 14:24:44 +02:00
Julien-Haudegond
85ebbba14f [ui] Viewer3D: TransformGizmo - drawing gizmo on top of the object
- Special entity acting as an object container: we can add the entities we want to control with a gizmo inside it.
- Drawing the gizmo always on top of the object to make sure to see it every time.
2020-08-13 14:22:19 +02:00
Yann Lanthony
3ae95869bd [ui] Viewer3D: introduce SphericalHarmonics shader + display mode
Add experimental render mode to display model normals or shading based on spherical harmonics coefficients
2020-05-25 22:47:09 +02:00
Yann Lanthony
63ffb20819
[ui][3D] add EnvironmentMapEntity to display equirectangular images
Load EXR files in the 3D viewport as environment maps mapped on a sphere "attached"  to the camera.
* improve exr loading strategy by considering depthmaps and env maps
* update to DepthMapEntity 2.1 (required to get the loading status)
2019-12-13 17:17:03 +01:00
Yann Lanthony
312b9f5e0b
[ui] Inspector3D: provide camera from Viewer3D 2019-09-11 10:09:27 +02:00
Yann Lanthony
6e47235c9c
[ui] Viewer3D: don't display contextual menu on alt+right-click zoom
Only prompt right-click contextual menu when it was not used to zoom in the 3D view.
2019-09-10 19:37:54 +02:00
Yann Lanthony
8dce4fc72f
[ui] Viewer3D: add "Sync with Image Selection" camera mode
* Inspector
   * changed "SETTINGS" to "DISPLAY"
   * new "CAMERA" section: activate camera synchronization + control image overlay
* ImageOverlay: new component to display (undistorted) image on top of the 3D view
* ViewpointCamera: new component that sets up a Camera based on a Viewpoint internal parameter
* Viewer3D: additional ViewpointCamera to perform synchronization with image selection
* Viewer3DSettings: new properties related to camera synchronization mode
2019-09-10 19:33:55 +02:00
Yann Lanthony
774675bd65
[ui] Viewer3D: move Inspector3D outside Viewer3D
Inspector3D is not an overlay anymore to simplify 3D manipulations, by having view center at the center of the 3D view.
2019-09-10 19:28:14 +02:00
Yann Lanthony
aff5a98a4b
[ui] Viewer3D: use RenderSettings.Always renderPolicy
Since Qt-5.13, RenderSettings.OnDemand can lead to rendering issues due to non-triggered updates (e.g: when resizing the viewport or changing visibilities of objects displayed).
2019-07-24 18:04:39 +02:00
Yann Lanthony
2b07699f65
[ui] Viewer3D: improved trackball parameters
Make trackball larger and adjust rotation speed to make 3D navigation easier.
2019-06-26 12:57:30 +02:00
Yann Lanthony
829aa24a4a [ui] CameraController: avoid allocating new objects on bindings
Change existing objects values instead of re-creating point/size objects, on bindings that can be evaluated very often.
2019-02-07 18:14:16 +01:00
Yann Lanthony
b5c985b3fb [ui] GraphEditor: solo 3D media with Double Click + Control modifier
* allow to solo a 3D media from the GraphEditor by double clicking on a node or an attribute with the Control modifier pressed
* consistent with Viewer3D.MediaLibrary behavior (solo on Ctrl+Click on visibility button)
* handle supported file extensions in Viewer3DSettings
2019-01-07 16:19:42 +01:00
Yann Lanthony
0db42e5acc [ui] Viewer3D: rename "Locator" to "Origin" 2018-12-13 17:42:00 +01:00
Yann Lanthony
05f0ae50fc [ui] Viewer3D: remove scene orientation controls
new trackball manipulator offers more intuitive 3D navigation regardless of the camera orientation
2018-12-13 17:39:28 +01:00
Yann Lanthony
5814a39e3e [ui] Viewer3D: add loading overlay with BusyIndicator 2018-12-13 17:15:24 +01:00
Yann Lanthony
4d73013784 [ui] Add Colors singleton to start centralizing useful colors
+ use in 3D gizmos
2018-12-10 15:13:27 +01:00
Yann Lanthony
87d5a62846 [ui] Viewer3D: new Trackball camera manipulator 2018-12-10 15:13:27 +01:00
Yann Lanthony
b56cf9e7cf [ui] Viewer3D: tweak initial camera position and Grid3D material
* centralize initial camera parameters + move camera closer to the scene center
* add motion smoothing when camera position is set
* improve grid material aspect
2018-12-10 15:13:26 +01:00
Yann Lanthony
272cd24fb9 [ui] Viewer3D: Inspector3D cleanup
* Define 2 groups: "Settings" and "Scene"
* Settings
    * add camera scale slider control
    * move rendering modes back to an independent overlay outside the inspector
* Scene
    * add button to control visibility of media info
2018-12-10 15:13:25 +01:00
Yann Lanthony
2f307c16fb [ui] Viewer3D: synchronize media list and graph hover/selection
* ease bidirectional navigation between 3D media list and graph
* use same mechanism to indicate selected/hovered elements
* remove 'frame' button (space gain + action available on double click)
2018-12-07 16:07:42 +01:00
Yann Lanthony
97fcdf67bf [ui] Viewer3D: multi 3D media support
* use new media loading backend through MediaLibrary
* Inspector3D: new overlay UI that displays and allows to manipulate MediaLibrary content
2018-12-07 16:07:41 +01:00