-
Camera Processing Pipeline
-
3D Real-time Reconstruction
- Scene Representation, Registration and Object Detection in a Truncated Signed Distance Function Representation of 3D Space
- Real-time High Resolution Fusion of Depth Maps on GPU
- 3D Real-time Reconstruction
- CHISEL: Real Time Large Scale 3D Reconstruction Onboard a Mobile Device using Spatially-Hashed Signed Distance Fields
- Shading-based Refinement on Volumetric Signed Distance Functions
-
CV intro
-
Brief History of Computer Vision (and Convolutional Neural Networks)
-
An open source library for multiview geometry and structure from motion
-
Kinect Fusion
- KinectFusion - Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera
- Kintinuous : Real-time dense visual SLAM system
- some deprecated kinect fusion lib
- Kinfu - an open source implementation of Kinect Fusion + case study: implementing a 3D scanner with PCL
- Kinect Fusion
- An OpenCL implementation of the KinectFusion
- CSE 576 KinectFusion: Real-Time Dense Surface Mapping and Tracking
-
ICP stands for Iterative Closest Points
-
SGBM stands for Semi Global Block Matching
- A High Spatial Resolution Depth Sensing Method Based on Binocular Structured Light
-
-
3D Scene Reconstruction Using Omnidirectional Vision and LiDAR: A Hybrid Approach
-
-
OpenCV
-
NVIDIA Jetson OpenCV Tutorials
-
build with CUDA 9.1 and debug support on Arch Linux
download the latest released version, say 3.4.1, from opencv.org cd opencv-3.4.1 mkdir build cd build export CC=gcc-6 export CXX=g++-6 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$HOME/work/opencv3 -DCUDA_NVCC_FLAGS="--expt-relaxed-constexpr" make -j7 make install
- For CUDA 9.2 set
export CC=gcc-7 export CXX=g++-7
git clone [email protected]:opencv/opencv_extra.git export OPENCV_TEST_DATA_PATH=$HOME/work/github/opencv_extra/testdata export OPENCV_OPENCL_FORCE=1 ./bin/opencv_test_objdetect ... [----------] 4 tests from OCL_ObjDetect/HOG [ RUN ] OCL_ObjDetect/HOG.GetDescriptors/0, where GetParam() = (64x128, 8UC1) [ OK ] OCL_ObjDetect/HOG.GetDescriptors/0 (68 ms) [ RUN ] OCL_ObjDetect/HOG.GetDescriptors/1, where GetParam() = (48x96, 8UC1) [ OK ] OCL_ObjDetect/HOG.GetDescriptors/1 (68 ms) [ RUN ] OCL_ObjDetect/HOG.Detect/0, where GetParam() = (64x128, 8UC1) [ OK ] OCL_ObjDetect/HOG.Detect/0 (1005 ms) [ RUN ] OCL_ObjDetect/HOG.Detect/1, where GetParam() = (48x96, 8UC1) [ OK ] OCL_ObjDetect/HOG.Detect/1 (957 ms) [----------] 4 tests from OCL_ObjDetect/HOG (2098 ms total) [----------] Global test environment tear-down [==========] 9 tests from 5 test cases ran. (59254 ms total) [ PASSED ] 9 tests.
export OPENCV_OPENCL_RUNTIME=null or export OPENCV_OPENCL_DEVICE=disabled
- OpenCL setDevice tl;dr
export OPENCV_OPENCL_DEVICE=":GPU:1"
-
-
How to build and integrate OpenSSL into your Android NDK project
-
Latest Android NDK (r21c)'s libbinder_ndk is missing several exported APIs
-
OpenGL
-
Tiny renderer or how OpenGL works: software rendering in 500 lines of code
-
Lessons for OpenGL from site OGLDev
- OpenGL tutorials
- Android GLES NDK sample jni
gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3128
-
Framebuffer with two color textures attached only renders to second one
-
Playrix blog on render optimization for mobile
-
Experimental rewrite of OGLplus with the latest C++ features and a different design
-
Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
-
Graphics Debugger
-
Profiling
- Perfetto Profiler Now Supports Mali GPU Hardware Counters via Panfrost
- Research on advanced profiling of high-performance web applications (primarily WebGL applications).
- Performance of WebGL applications
- OpenGL: What else could be the bottleneck here?
- GPU Performance API for AMD GPUs
- TEAPOT: A Toolset for Evaluating Performance, Power andImage Quality on Mobile Graphics Systems
- Google GpuProfiler
- A GPU Profiler for OpenGL Applications
- ofxTimeMeasurements
- Render Subpasses
- Rockchip Mali
- Radeon™ GPU Profiler
- Radeon™ GPU Analyzer
- CodeXL Retirement
-
Vulkan
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json vulkaninfo VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json vulkaninfo VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json vkcube
- Vulkan Intro in Russian
- Vulkan Best Practice for Mobile Developers
- Vulkan Tutorial
- Vulkan books and resources to master the Vulkan API
- Vulkan C++ examples and demos
pushd android/examples/bloom gradle assembleDebug popd pushd android/examples/bin adb install bloom-debug.apk adb shell pm list packages | grep -i bloom adb uninstall de.saschawillems.vulkanBloom
- Vulkan C++ examples and demos
- Vulkan in 30 minutes
- android-vulkan
- Lesson 50 - Intro to Vulkan
- Sprite rendering with Vulkan
- Bringing Ray Tracing to Vulkan
- Render Passes in Vulkan
- Introduction to Vulkan | Algorithms for Real-Time Rendering Lecture, Summer Term 2020
- Vulkan Memory Management
- Awesome Vulkan ecosystem
- Acid: A high speed C++17 Vulkan game engine
- bfs: Modern C++14 library for the development of real-time graphical applications
- High level vulkan 2D vector-like graphics api (C++) tl;dr
meson build -Dexample-glfw=true cd build meson configure -Dwerror=false ninja
- Open-Source KhronosGroup Vulkan C++ API
- Turnip is an Open Source Vulkan Driver for Adreno GPU
- Khronos Group Vulkan samples
- SwiftShader is a high-performance CPU-based implementation of the Vulkan, OpenGL ES, and Direct3D 9 graphics APIs. Its goal is to provide hardware independence for advanced 3D graphics
- ANGLE - Almost Native Graphics Layer Engine
- GLOVE - GL Over Vulkan
- Zink: OpenGL on Vulkan
- Vulkan Ecosystem Tools
- GFXReconstruct project is to create an improved version of LunarG's vktrace software for capture and replay of Vulkan API calls
- vktrace capture/replay tool
-
Android Debug Bridge
- How can I connect to Android with ADB over TCP?
- Run/install/debug Android applications over Wi-Fi?
- How can I use adb over WiFi?
- Is it possible to access my Android device through WSL? Trying to debug and work with ADB.
- Android Studio : How to uninstall APK (or execute adb command) automatically before Run or Debug?
tl;dr
adb shell pm list packages | grep -i bloom adb uninstall de.saschawillems.vulkanBloom
yes | sdkmanager --licenses
-
3D scanners (with Jetson TX1 onboard)
-
Computational geometry
-
What does negative CGAL::Polygon_mesh_processing::volume mean?
-
CGAL 4.10 - 3D Fast Intersection and Distance Computation (AABB Tree)
-
Delaunay triangulation
-
How do I iterate through all the faces in a CGAL StraightSkeleton_2 / HalfedgeDS?
- tl;dr
for (const auto &face : faces(poly)) { auto begin = face->halfedge(); auto edge = begin; // Each vertex std::vector<Point_3> tri; do { Point_3 p = edge->vertex()->point(); tri.push_back(std::move(p)); edge = edge->next(); } while (edge != begin); ASSERT_TRUE(tri.size() == 3); } ```e7594e7b1651522bf7e2132eaab4a062f901db67
-
How to turn a Surface Mesh into a Polyhedron?
- tl;dr
using Kernel = CGAL::Exact_predicates_inexact_constructions_kernel Kernel; using Polyhedron = CGAL::Polyhedron_3<Kernel> Polyhedron; using Surface_mesh = OpenMesh::PolyMesh_ArrayKernelT</* MyTraits*/> Surface_mesh; Surface_mesh mesh_in, mesh_out; Polyhedron mesh; OpenMesh::IO::read_mesh( mesh_in, "data/elephant.off"); CGAL::copy_face_graph(mesh, mesh_out);
-
- 3D Mesh Generation: What happened to medit?
- Missing libGLU 32-bit library
- tl;dr
apt-get install libglu1-mesa:i386
- Missing libGLU 32-bit library
- 3D Mesh Generation: What happened to medit?
-
std::vector<Polyhedron::Facet_handle> new_facets; std::vector<Vertex_handle> new_vertices; CGAL::Polygon_mesh_processing::refine(poly, faces(poly), std::back_inserter(new_facets), std::back_inserter(new_vertices), CGAL::Polygon_mesh_processing::parameters::density_control_factor(2.));
-
Marching Cubes
-
UV parameterization
-
Parameterization Theory
-
What you seam is what you get: automatic and interactive UV unwrapping
-
Technical difficulties: linear interpolation with perspective deformations
-
How exactly does OpenGL do perspectively correct linear interpolation?
-
Approximation of Ridges and Umbilics on Triangulated Surface Meshes
-
Estimation of Local Differential Properties of Point-Sampled Surfaces
-
Subdivision
-
dD Spatial Searching
-
- tl;dr
wopt += IO::Options::Binary; // for binary STL OpenMesh::IO::write_mesh(surface_mesh_out, "mesh_file_name.stl", wopt);
-
Dynamic AABB trees in C++ with support for periodic systems
- tl;dr
make header-only
-
Simple C++ geometry processing library
-
libigl - A simple C++ geometry processing library
tl;dr troubleshooting
pushd libigl/external/nanogui git submodule update --init --recursive
-
QuadriFlow: A Scalable and Robust Method for Quadrangulation
-
QuadCover - Surface Parameterization using Branched Coverings
-
Blender
-
Install blender as a module with python 3.5 and pyenv
- BlenderAsPyModule
- pyenv tl;dr
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.4 curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash pyenv update which pyenv pyenv versions source ~/.bashrc eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" CXX=/usr/bin/g++-5 ./build_files/build_environment/install_deps.sh --threads=4 --with-all --skip-osd --skip-osl --skip-ffmpeg --force-oiio cmake -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_C_FLAGS="-fPIC" -DCMAKE_INSTALL_PREFIX=$HOME/.pyenv/versions/3.6.4/lib/python3.6/site-packages -DWITH_PLAYER=OFF -DWITH_PYTHON_INSTALL=OFF -DWITH_PYTHON_MODULE=ON -DPYTHON_VERSION=3.6.4 -DPYTHON_LIBRARY=$HOME/.pyenv/versions/3.6.4/lib -DPYTHON_INCLUDE_DIR=$HOME/.pyenv/versions/3.6.4/include/python3.6m -DPYTHON_ROOT_DIR=~/.pyenv/versions/3.6.4 .. make -j4 make install
- Linking problems with latest libboost
tl;dr compile with
CXX=/usr/bin/g++-5
- ImportError: No module named cycler
-
run blender as a module after install
eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" export PYENV_VERSION=3.6.4 export LD_LIBRARY_PATH="$HOME/.pyenv/versions/3.6.4/lib/":$LD_LIBRARY_PATH python3 Python 3.6.4 (default, Mar 22 2018, 13:21:15) [GCC 5.4.1 20160904] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import bpy Color management: using fallback mode for management
-
-
-
CAD
- the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler
- FreeCAD is a parametric 3D modeler made primarily to design real-life objects of any size
sudo apt install libmed-dev libmedc-dev libspnav-dev
sudo apt install libshiboken-dev
- FreeCAD Daily Builds: adding PPA
- Coin 3D Build Instructions for Linux
- FreeCAD is a parametric 3D modeler made primarily to design real-life objects of any size
- STEP Data Exchange with ISO 10303
- Open CASCADE Technology repository
-
Tutorials for OpenCASCADE, the open source CAD kernel
./convertStepToStl aa.step aa.stl
-
Ubuntu OpenCASCADE files tl;dr
sh sudo apt install liboce-foundation-dev liboce-foundation10 liboce-modeling-dev liboce-modeling10 \ liboce-ocaf-dev liboce-ocaf-lite-dev liboce-ocaf-lite10 liboce-ocaf10 \ liboce-visualization-dev liboce-visualization10
-
- the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler
-
Video processing
-
stream capture data from Android device
-
Halide language and compiler
-
misc
-
Qt / QML
- Install Qt on Ubuntu
- Оптимизация GUI на Qt
- How do I place dynamic content into a QML component
- Accessing Members of a QML Object Type from C++
- Qt with Cascades UI Examples Documentation
- How to convert QString to std::string?
- How to add include path in Qt Creator? tl;dr
qmake occQt.pro -r -spec linux-g++-64 CONFIG+=debug INCLUDEPATH+=/usr/local/include/opencascade
-
3D Graphics Architecture Tips
-
RenderDoc is a stand-alone graphics debugging tool
sudo apt install x11-dev libx11-dev sudo pip install PySide2
-
How RenderDoc works: Capturing Frames & Replaying & Analysing Captures
-
Renderdoc: Use JNA Library calling convention for Linux compatibility
-
Logo
rsvg-convert RenderDoc.svg -o RenderDoc.xml -f xml rsvg-convert RenderDoc.svg -o RenderDoc.pdf -f pdf
-
-
Wayland
-
Sway Window Manager for Wayland - Full Compiling Guide (oh, plus a gotcha) [Non-Monetised]
-
What are the best Wayland compositors? + an experimental Wayland Vulkan compositor
-
Geometric Algebra