Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ui] Add and improve multiple UI tools for Photometric stereo #2444

Open
wants to merge 49 commits into
base: dev/qt6.6
Choose a base branch
from

Conversation

gregoire-dl
Copy link
Member

Description

Add the new QtAliceVision 2D viewer with toolbar and a new light direction controller.

A normal map with two light directions.

Add the ability to change the camera-relative light direction in the 3D viewer

Same object with two different light directions using the new light direction controller.

Improve SphereDetection widget in order to handle automatic detection of calibration spheres.

Automatically detected calibration sphere shown with the green circle.

Features list

  • Improve SphereDetection widget in order to handle automatic detection of calibration spheres.
  • Add the new QtAliceVision 2D viewer with Blinn-Phong model with shader control toolbar and light direction toolbar.
  • Add the ability to change the camera-relative light direction in the 3D viewer.

Implementation remarks

This PR is based on the Qt6 migration branch: https://github.com/alicevision/Meshroom/tree/dev/qt6.6
Linked to QtAliceVision PR: alicevision/QtAliceVision#72

In Python3, "exec" is not a reserved keyword anymore, and there is thus
no need to distinguish the "exec" keyword from the PySide's function.
This fixes all the "Injection of parameters into signal handlers
is deprecated. Use JavaScript functions with formal parameters instead."
warnings.
With Qt6, OpenGL is not used directly anymore, and we thus must use
the RHI backend, set to version 1.0.

The SphericalHarmonics shaders, which were previously written in OpenGL,
need to be updated accordingly.
Call the `QGeometry` objects from the correct module, and initialize
correctly the Camera object upon the construction of the
TrackballController object.
Additionally harmonize comments and explicitly declare parameters
for slots that need them.
`PointSize` is not supported by RHI.
The fit must be automatically triggered when the size of the image
changes. In case the image size remains the same but the orientation tag
is updated, this means that the displayed size of the image has changed
(with the orientation taken into account, the width and height might end
up being inverted), so the fit should also be triggered.
Disable and hide the wireframe mode as the shaders need to be updated
for RHI.
@gregoire-dl gregoire-dl added feature new feature (proposed as PR or issue planned by dev) review labels Jun 19, 2024
@gregoire-dl gregoire-dl self-assigned this Jun 19, 2024
Use a single light entity instead of one per camera.
Use directional light instead of point light.
Add camera relative directional light controller.
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature new feature (proposed as PR or issue planned by dev) review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants