Skip to content

Commit

Permalink
Merge pull request #5 from alicevision/develop
Browse files Browse the repository at this point in the history
Latest changes
  • Loading branch information
ChemicalXandco committed Sep 19, 2019
2 parents 3b656d9 + 37a8d20 commit 378b142
Show file tree
Hide file tree
Showing 135 changed files with 6,696 additions and 2,115 deletions.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: Create a report to help us improve
title: "[bug]"
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Log**
If applicable, copy paste the relevant log output (please embed the text in a markdown code tag "\`\`\`" )

**Desktop (please complete the following and other pertinent information):**
- OS: [e.g. win 10, osx, ]
- Python version [e.g. 2.6]
- Qt/PySide version [e.g. 5.12.4]
- Meshroom version: please specify if you are using a release version or your own build
- Binary version (if applicable) [e.g. 2019.1]
- Commit reference (if applicable) [e.g. 08ddbe2]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[request]"
labels: feature request
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/question_help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: Question or help needed
about: Ask question or for help for issues not related to program failures (e.g. "where I can find this feature", "my dataset is not reconstructed properly", "which parameter setting shall I use" etc...)
title: "[question]"
labels: type:question
assignees: ''

---

**Describe the problem**
A clear and concise description of what the problem is.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Dataset**
If applicable, add a link or *few* images to help better understand where the problem may come from.

**Log**
If applicable, copy paste the relevant log output (please embed the text in a markdown code tag "\`\`\`" )

**Desktop (please complete the following and other pertinent information):**
- OS: [e.g. win 10, osx, ]
- Python version [e.g. 2.6]
- Qt/PySide version [e.g. 5.12.4]
- Meshroom version: please specify if you are using a release version or your own build
- Binary version (if applicable) [e.g. 2019.1]
- Commit reference (if applicable) [e.g. 08ddbe2]

**Additional context**
Add any other context about the problem here.
29 changes: 29 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<!-- Checklist before submission:
- I have read the [contribution guidelines](../CONTRIBUTING.md).
- I have updated the documentation, if applicable.
- I have ensured that the change is tested somewhere.
- I have followed the prevailing code style (for history readability and limit conflicts for maintainance).
-->
## Description



## Features list

<!--
- [ ] Feature one. Fix #XXX
- [ ] Improve something else
- [ ] Connect to #3 (to declare link to issues without closing it when the PR is merged).
- [X] Add "X" when it is done.
-->


## Implementation remarks


<!--
Explain main implementation choices.
It is also the right place to ask for feedback and help when you hesitate on the implementation.
-->
17 changes: 17 additions & 0 deletions .github/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 120
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels: false
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue is closed due to inactivity. Feel free to re-open if new information
is available.
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
language: python

dist: xenial # required for Python >= 3.7

python:
- "2.7"
- "3.6"
- "3.7"

install:
- "pip install -r requirements.txt -r dev_requirements.txt --timeout 45"
Expand Down
92 changes: 89 additions & 3 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,93 @@
For algorithmic changes related to the photogrammetric pipeline,
please refer to [AliceVision changelog](https://github.com/alicevision/AliceVision/blob/develop/CHANGES.md).

## Release 2018.1.0


## Release 2019.2.0 (2019.08.08)

Based on [AliceVision 2.2.0](https://github.com/alicevision/AliceVision/tree/v2.2.0).

Release Notes Summary:

- Visualisation: New visualization module of the features extraction. [PR](https://github.com/alicevision/meshroom/pull/539), [New QtAliceVision](https://github.com/alicevision/QtAliceVision)
- Support for RAW image files.
- Texturing: Largely improve the Texturing quality.
- Texturing: Speed improvements.
- Texturing: Add support for UDIM.
- Meshing: Export the dense point cloud in Alembic.
- Meshing: New option to export the full raw dense point cloud (with all 3D points candidates before cut and filtering).
- Meshing: Adds an option to export color data per vertex and MeshFiltering correctly preserves colors.

Full Release Notes:

- Move to PySide2 / Qt 5.13
- SfMDataIO: Change root nodes (XForms instead of untyped objects) of Alembic SfMData for better interoperability with other 3D graphics applications (in particular Blender and Houdini).
- Improve performance of log display and node status update. [PR](https://github.com/alicevision/meshroom/pull/466) [PR](https://github.com/alicevision/meshroom/pull/548)
- Viewer3D: Add support for vertex-colored meshes. [PR](https://github.com/alicevision/meshroom/pull/550)
- New pipeline input for meshroom_photogrammetry command line and minor fixes to the input arguments. [PR](https://github.com/alicevision/meshroom/pull/567) [PR](https://github.com/alicevision/meshroom/pull/577)
- New arguments to meshroom. [PR](https://github.com/alicevision/meshroom/pull/413)
- HDR: New HDR module for the fusion of multiple LDR images.
- PrepareDenseScene: Add experimental option to correct Exposure Values (EV) of input images to uniformize dataset exposures.
- FeatureExtraction: Include CCTag in the release binaries both on Linux and Windows.
- ConvertSfMFormat: Enable to use simple regular expressions in the image white list of the ConvertSfMFormat. This enables to filter out cameras based on their filename.

For more details see all PR merged: https://github.com/alicevision/meshroom/milestone/9
See [AliceVision 2.2.0 Release Notes](https://github.com/alicevision/AliceVision/blob/v2.2.0/CHANGES.md)
for more details about algorithmic changes.


## Release 2019.1.0 (2019.02.27)

Based on [AliceVision 2.1.0](https://github.com/alicevision/AliceVision/tree/v2.1.0).

Release Notes Summary:
- 3D Viewer: Load and compare multiple assets with cache mechanism and improved navigation
- Display camera intrinsic information extracted from metadata analysis
- Easier access to a more complete sensor database with a more reliable camera model matching algorithm.
- Attribute Editor: Hide advanced/experimental parameters by default to improve readability and simplify access to the most useful, high-level settings. Advanced users can still enable them to have full access to internal thresholds.
- Graph Editor: Improved set of contextual tools with `duplicate`/`remove`/`delete data` actions with `From Here` option.
- Nodes: Homogenization of inputs / outputs parameters
- Meshing: Better, faster and configurable estimation of the space to reconstruct based on the sparse point cloud (new option `estimateSpaceFromSfM`). Favors high-density areas and helps removing badly defined ones.
- Draft Meshing (no CUDA required): the result of the sparse reconstruction can now be directly meshed to get a 3D model preview without computing the depth maps.
- MeshFiltering: Now keeps all reconstructed parts by default.
- StructureFromMotion: Add support for rig of cameras
- Support for reconstruction with projected light patterns and texturing with another set of images

Full Release Notes:
- Viewer3D: New Trackball camera manipulator for improved navigation in the scene
- Viewer3D: New library system to load multiple 3D objects of the same type simultaneously, simplifying results comparisons
- Viewer3D: Add media loading overlay with BusyIndicator
- Viewer3D: Points and cameras size are now configurable via dedicated sliders.
- CameraInit: Add option to lock specific cameras intrinsics (if you have high-quality internal calibration information)
- StructureFromMotion: Triangulate points if the input scene contains valid camera poses and intrinsics without landmarks
- PrepareDenseScene: New `imagesFolders` option to override input images. This enables to use images with light patterns projected for SfM and MVS parts and do the Texturing with another set of images.
- NodeLog: Cross-platform monospace display
- Remove `CameraConnection` and `ExportUndistortedImages` nodes
- Multi-machine parallelization of `PrepareDenseScene`
- Meshing: Add option `estimateSpaceFromSfM` and observation angles check to better estimate the bounding box of the reconstruction and avoid useless reconstruction of the environment
- Console: Filter non silenced, inoffensive warnings from QML + log Qt messages via Python logging
- Command line (meshroom_photogrammetry): Add --pipeline parameter to use a pre-configured pipeline graph
- Command line (meshroom_photogrammetry): Add possibility to provide pre-calibrated intrinsics.
- Command line (meshroom_compute): Provide `meshroom_compute` executable in packaged release.
- Image Gallery: Display Camera Intrinsics initialization status with detailed explanation, edit Sensor Database dialog, advanced menu to display view UIDs
- StructureFromMotion: Expose advanced estimator parameters
- FeatureMatching: Expose advanced estimator parameters
- DepthMap: New option `exportIntermediateResults` disabled by default, so less data storage by default than before.
- DepthMap: Use multiple GPUs by default if available and add `nbGPUs` param to limit it
- Meshing: Add option `addLandmarksToTheDensePointCloud`
- SfMTransform: New option to align on one specific camera
- Graph Editor: Consistent read-only mode when computing, that can be unlocked in advanced settings
- Graph Editor: Improved Node Menu: "duplicate"/"remove"/"delete data" with "From Here" accessible on the same entry via an additional button
- Graph Editor: Confirmation popup before deleting node data
- Graph Editor: Add "Clear Pending Status" action at Graph level
- Graph Editor: Solo media in 3D viewer with Ctrl + double click on node/attribute
- Param Editor: Fix several bugs related to attributes edition
- Scene Compatibility: Improves detection of deeper compatibility issues, by adding an additional recursive (taking List/GroupAttributes children into account) exact description matching test when de-serializing a Node.

See [AliceVision 2.1.0 Release Notes](https://github.com/alicevision/AliceVision/blob/v2.1.0/CHANGES.md)
for more details about algorithmic changes.


## Release 2018.1.0 (2018.08.09)

First release of Meshroom.
Based on [AliceVision 2.0.0](https://github.com/alicevision/AliceVision/tree/v2.0.0).
Based on [AliceVision 2.0.0](https://github.com/alicevision/AliceVision/tree/v2.0.0).
25 changes: 20 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ set(QT_DIR "$ENV{QT_DIR}" CACHE STRING "Qt root directory")

option(MR_BUILD_QTOIIO "Enable building of QtOIIO plugin" ON)
option(MR_BUILD_QMLALEMBIC "Enable building of qmlAlembic plugin" ON)
option(MR_BUILD_QTALICEVISION "Enable building of qtAliceVision plugin" ON)

if(CMAKE_BUILD_TYPE MATCHES Release)
message(STATUS "Force CMAKE_INSTALL_DO_STRIP in Release")
Expand All @@ -30,7 +31,6 @@ set(ALEMBIC_CMAKE_FLAGS
-DAlembic_DIR:PATH=${ALICEVISION_ROOT}/lib64/cmake/Alembic
-DILMBASE_ROOT=${ALICEVISION_ROOT}
)
set(QT_CMAKE_FLAGS -DCMAKE_PREFIX_PATH=${QT_DIR})


include(ExternalProject)
Expand All @@ -44,7 +44,7 @@ include(GNUInstallDirs)
# message(STATUS "QT_CMAKE_FLAGS: ${QT_CMAKE_FLAGS}")

if(MR_BUILD_QTOIIO)
set(QTOIIO_TARGET qtoiio)
set(QTOIIO_TARGET qtOIIO)
ExternalProject_Add(${QTOIIO_TARGET}
GIT_REPOSITORY https://github.com/alicevision/QtOIIO
GIT_TAG develop
Expand All @@ -54,13 +54,13 @@ ExternalProject_Add(${QTOIIO_TARGET}
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/qtoiio
BINARY_DIR ${BUILD_DIR}/qtoiio_build
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${OIIO_CMAKE_FLAGS} ${QT_CMAKE_FLAGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${OIIO_CMAKE_FLAGS} -DCMAKE_PREFIX_PATH:PATH=${QT_DIR} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
)
endif()


if(MR_BUILD_QMLALEMBIC)
set(QMLALEMBIC_TARGET qmlalembic)
set(QMLALEMBIC_TARGET qmlAlembic)
ExternalProject_Add(${QMLALEMBIC_TARGET}
GIT_REPOSITORY https://github.com/alicevision/qmlAlembic
GIT_TAG develop
Expand All @@ -70,7 +70,22 @@ ExternalProject_Add(${QMLALEMBIC_TARGET}
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/qmlalembic
BINARY_DIR ${BUILD_DIR}/qmlalembic_build
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${ALEMBIC_CMAKE_FLAGS} ${QT_CMAKE_FLAGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${ALEMBIC_CMAKE_FLAGS} -DCMAKE_PREFIX_PATH:PATH=${QT_DIR} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
)
endif()

if(MR_BUILD_QTALICEVISION)
set(QTALICEVISION_TARGET qtAliceVision)
ExternalProject_Add(${QTALICEVISION_TARGET}
GIT_REPOSITORY https://github.com/alicevision/qtAliceVision
GIT_TAG develop
PREFIX ${BUILD_DIR}
BUILD_IN_SOURCE 0
BUILD_ALWAYS 0
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/qtAliceVision
BINARY_DIR ${BUILD_DIR}/qtAliceVision_build
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CONFIGURE_COMMAND ${CMAKE_COMMAND} ${CMAKE_CORE_BUILD_FLAGS} ${ALEMBIC_CMAKE_FLAGS} -DCMAKE_PREFIX_PATH:PATH=${QT_DIR}$<SEMICOLON>${ALICEVISION_ROOT} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> <SOURCE_DIR>
)
endif()

73 changes: 73 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team privately at [email protected]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct/

[homepage]: https://www.contributor-covenant.org
Loading

0 comments on commit 378b142

Please sign in to comment.