Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 2461

General discussion • Compiling & Optimizing Blender on Raspberry Pi for Quantum Game Development & Modeling Integration

$
0
0
THIS IS A PROJECT I HAVE BEEN WORKING ON FOR A WHILE NOW.
ORIGINALLY I HAD INTEREST IN IT AND THE DEVELOPERS SAID ITS NOW A ABANDONED PROJECT
REQUIRES BLENDER >2.93

heres the overview of the breakdown of what i had to do to get it compiling..
so currently at..

Code:

-- =========================================================================-- = Dependency report                                                     =-- =========================================================================-- -- The following dependencies found externally:--     expat 2.5.0--     Freetype 2.12.1--     Imath 3.1.6--     JPEG 62--     OpenEXR 3.1.5--     OpenVDB 10.0.1--     PNG 1.6.39--     pybind11 2.10.3--     Python3 3.11.2--     TBB 2021.8.0--     TIFF 4.5.0--     ZLIB 1.2.13-- The following dependencies were not found:--     BZip2  --     DCMTK  --     FFmpeg  --     fmt 7.0  (10.2.1 BUILT LOCALLY)--     GIF  --     JXL  --     Libheif  --     libjpeg-turbo 2.1  (3.0.4 BUILT LOCALLY)--     LibRaw  --     libuhdr   (1.2.0 BUILT LOCALLY)--     minizip-ng 3.0.0  (4.0.7 BUILT LOCALLY)--     Nuke  --     OpenColorIO 2.2...<2.9  (2.4.1 BUILT LOCALLY)--     OpenCV  --     OpenJPEG  --     Ptex  --     pystring 1.1.3  (1.1.4 BUILT LOCALLY)--     Qt5  --     Qt6  --     Robinmap 1.2.0  (1.3.0 BUILT LOCALLY)--     WebP 1.1  (1.4.0 BUILT LOCALLY)--     yaml-cpp 0.6.0  (0.8.0 BUILT LOCALLY)-- -- =========================================================================-- -- Configuring done-- Generating done-- Build files have been written to: /home/chast/blender/oiio/build[  0%] Generating testsuite/runtest.py[  0%] Built target CopyFiles[  1%] Generating ../../include/OpenImageIO/detail/fmt[  1%] Generating ../../include/OpenImageIO/detail/fmt/core.h, ../../include/OpenImageIO/detail/fmt/format-inl.h, ../../include/OpenImageIO/detail/fmt/format.h, ../../include/OpenImageIO/detail/fmt/ostream.h, ../../include/OpenImageIO/detail/fmt/printf.h, ../../include/OpenImageIO/detail/fmt/std.h, ../../include/OpenImageIO/detail/fmt/chrono.h[  1%] Built target fmt_internal_target[  2%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/argparse.cpp.o[  2%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/benchmark.cpp.o[  3%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/errorhandler.cpp.o[  3%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/farmhash.cpp.o[  4%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/filesystem.cpp.o[  4%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/fmath.cpp.o[  4%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/filter.cpp.o[  5%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/hashes.cpp.o[  5%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/paramlist.cpp.o[  6%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/plugin.cpp.o[  6%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/SHA1.cpp.o[  7%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/strutil.cpp.o[  7%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/sysutil.cpp.o

First I RAN

Code:

df
output

Code:

~/blender $ dfFilesystem     1K-blocks     Used Available Use% Mounted onudev             1668208        0   1668208   0% /devtmpfs             388300     1372    386928   1% /run/dev/mmcblk0p2  29217448 12345952  15367056  45% /tmpfs            1941496   100204   1841292   6% /dev/shmtmpfs               5120       16      5104   1% /run/lock/dev/mmcblk0p1    522230    68514    453716  14% /boot/firmwaretmpfs             388296       64    388232   1% /run/user/1000
https://quantum-creative-group.github.i ... index.html
https://github.com/Quantum-Creative-Group/quantum_nodes
REQUIRES Animation Nodes
https://docs.animation-nodes.com/
https://github.com/JacquesLucke/animati ... s/releases


Update Your System & Install Dependencies
Before compiling Blender, ensure your system is up to date and all necessary libraries are installed.

bash

Code:

sudo apt update && sudo apt upgrade -ysudo apt install -y git cmake g++ libx11-dev libxi-dev libxrandr-dev libxcursor-dev \libxinerama-dev libglu1-mesa-dev libglew-dev libpng-dev libjpeg-dev \libopenal-dev libogg-dev libvorbis-dev libsqlite3-dev libbz2-dev \libfftw3-dev libboost-all-dev libtbb-dev libyaml-cpp-dev \libopencolorio-dev libopenimageio-dev libopenvdb-dev \libopensubdiv-dev libopenexr-dev libopenmp-dev \libpython3-dev python3-dev python3-numpy
2. Clone Blender Source Code
Navigate to a directory where you want to store Blender and clone the source code:

bash

Code:

cd ~git clone https://git.blender.org/blender.gitcd blendergit submodule update --init --recursive
3. Configure the Build Directory
Create and move into the build directory:

bash

Code:

mkdir -p build_linuxcd build_linux
If you encountered missing OpenEXR in previous attempts, set its path explicitly:

bash

Code:

export OPENEXR_INCLUDE_DIR=/usr/include/OpenEXRexport CMAKE_PREFIX_PATH=/usr
4. Run CMake to Configure the Build
Run the following command to set up the build:

bash

Code:

cmake .. -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.11.so
If CMake runs successfully, proceed to the next step.

5. Compile Blender
Now, compile Blender using all available CPU cores:

bash

Code:

make -j$(nproc)
Note: This process might take several hours depending on your Raspberry Pi model.

6. Run Blender
Once the compilation is done, you can run Blender with:

bash

Code:

./bin/blender
Troubleshooting
CMake Errors (e.g., OPENEXR_INCLUDE_DIR-NOTFOUND)
Run:

bash

Code:

sudo apt install libopenexr-devexport OPENEXR_INCLUDE_DIR=/usr/include/OpenEXR
Then, re-run CMake.

Python Issues
If Blender fails to find Python, explicitly set the path:

bash

Code:

cmake .. -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.11.so
Final Notes
If power issues cause performance drops, use a cooling fan or reduce build threads:
bash

Code:

make -j2  # Instead of using all CPU cores
If compilation fails at any step, post the error message so we can debug it together!

..
failed compile ....

1. Check OpenImageIO Version
Ensure that you're using a compatible version of OpenImageIO. Run:

bash

Code:

oiio --version
or check the installed package:

bash

Code:

dpkg -l | grep openimageio  # Debian/Ubuntu
rpm -qa | grep openimageio # Fedora/CentOS
brew list openimageio # macOS
If needed, update to the latest version:

bash

Code:

sudo apt update && sudo apt upgrade openimageio-dev  # Debian/Ubuntu 
sudo dnf upgrade openimageio-devel # Fedora
brew upgrade openimageio # macOS
2. Check Compiler Compatibility
Make sure you're using a modern compiler that supports C++17 or later. Run:

bash

Code:

g++ --versionclang++ --version
If it's outdated, upgrade:

bash

Code:

sudo apt install g++-12  # Replace with latest available version
3. Fix span<T> Template Issues
The errors around span<int> and span<float> suggest that either:

Your compiler doesn't support std::span (C++20 feature).
span from OpenImageIO is not properly included.
Try explicitly including <span> at the top of your source file:

cpp

Code:

#include <span>
If the issue persists, try replacing span<T> with std::vector<T> as a temporary fix.

4. Fix OIIO_INLINE_CONSTEXPR Errors
The errors indicate that OIIO_INLINE_CONSTEXPR is undefined. This macro should be defined in OpenImageIO headers. Try explicitly defining it before including typedesc.h:

cpp

Code:

#ifndef OIIO_INLINE_CONSTEXPR#define OIIO_INLINE_CONSTEXPR constexpr#endif
Alternatively, check if a newer OpenImageIO version fixes this.

5. Rebuild OpenImageIO
If you're using a custom build, try rebuilding OpenImageIO:

bash

Code:

git clone https://github.com/OpenImageIO/oiio.gitcd oiiomkdir build && cd buildcmake ..make -j$(nproc)sudo make install
6. Use -fpermissive (Temporary Workaround)
You can attempt to bypass some errors by adding -fpermissive to your compilation flags:

bash

Code:

g++ -fpermissive your_file.cpp -o your_program
However, this is just a workaround and may not fix all issues.

Code:

@inproceedings{10.1145/3450618.3469155,author = {Olart, F\'{e}lix and Tassin, Elo\"{\i}se and Capdeville, Laurine and Pinguet, Luc and Gautier, Th\'{e}o and Lioret, Alain},title = {Quantum Nodes: Quantum Computing Applied to 3D Modeling},year = {2021},isbn = {9781450383714},publisher = {Association for Computing Machinery},address = {New York, NY, USA},url = {https://doi.org/10.1145/3450618.3469155},doi = {10.1145/3450618.3469155},abstract = {Quantum Nodes is a Blender add-on that introduces the integration of quantum algorithms into the 3D creation process. Our work focuses on allowing users to experiment both new forms of creation and approaching the concepts of quantum computing through 3D creation.},booktitle = {ACM SIGGRAPH 2021 Posters},articleno = {32},numpages = {2},location = {Virtual Event, USA},series = {SIGGRAPH '21}}

Statistics: Posted by SirFlickka — Sat Feb 15, 2025 4:51 pm



Viewing all articles
Browse latest Browse all 2461

Trending Articles