diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 04:28:46 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 04:28:46 +0000 |
commit | 7d08020502ef9188713b8e9682fc631c79e62976 (patch) | |
tree | 458c63f9ff1e58ac9a1fedff6a92d65dc80d1b97 | |
parent | 6d0d38182ad0b6bb25af875e4491bee5fa825f7c (diff) |
automatic import of python-blenderlessopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-blenderless.spec | 419 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 421 insertions, 0 deletions
@@ -0,0 +1 @@ +/blenderless-0.1.8.tar.gz diff --git a/python-blenderless.spec b/python-blenderless.spec new file mode 100644 index 0000000..c0fe75b --- /dev/null +++ b/python-blenderless.spec @@ -0,0 +1,419 @@ +%global _empty_manifest_terminate_build 0 +Name: python-blenderless +Version: 0.1.8 +Release: 1 +Summary: Blenderless is the python package for easy headless rendering using blender. +License: GPL-3.0-or-later +URL: https://github.com/oqton/blenderless +Source0: https://mirrors.aliyun.com/pypi/web/packages/d9/40/729273452d330999ca35e5a4a4c2998b4a0b285fdef61b320c953eec60e9/blenderless-0.1.8.tar.gz +BuildArch: noarch + +Requires: python3-pillow +Requires: python3-bpy +Requires: python3-trimesh +Requires: python3-hydra-core +Requires: python3-imageio +Requires: python3-xvfbwrapper +Requires: python3-click +Requires: python3-tqdm + +%description +# Blenderless + +Blenderless is the Python package for easy headless rendering using Blender. + +While Blender is a fantastic open-source 3D modeling software which can be run from the command line, there are still some inconveniences when rendering from a headless server: + + - the blender python interface `bpy` can only be imported a single time, + - and, there is no framebuffer for blender to write to. + +Furthermore, the `bpy` interface has a steep learning curve. + + This package is meant to overcome these issues in a easy-to-use manner. It does so by first defining the entire scene and only interacting with the `bpy` at render time in a separate thread using a virtual framebuffer. + + Example use cases: + - Generating thumbnails or previews from 3D files. + - Batch generation of views from 3D files. + - Automatic generation of compositions of a set of meshes into a single scene + - Converting meshes and labels into .blend files + - Export GIF animations of a camera looping around an object. + + +## How to use this + +### Resources: + - You can find basic examples in the [unit tests](https://github.com/oqton/blenderless/tree/master/tests/test_data). + - [Notebook examples](https://github.com/oqton/blenderless/tree/master/notebooks) (point clouds, mesh face colors, ...) + + +### Python module + +The blenderless package can be loaded as a module. The main functionality is exposed using the Blenderless class. There is support for Jupyter Notebooks as the images/gifs will be shown as IPython Image objects automatically. + + +```python +from blenderless import Blenderless + +# Set the following property if you want to export the generated blender workspace. +Blenderless.export_blend_path = 'export.blend' + +# Render single STL file +path_to_foo_png = Blenderless.render('meshpath.stl', dest_path=None, azimuth=45, elevation=30, theta=0) + +# Render from config, note that objects and cameras are defined within the YAML config. +path_to_foo_png = Blenderless.render_from_config('config.yml', dest_path=None) + +# Render GIF animation, note that azimuth is defined by number of frames. +path_to_foo_gif = Blenderless.gif(cls, mesh_path, dest_path=None, elevation=30, theta=0, frames=60, duration=2) +``` + +### Command-line interface + +Render geometry file to image + +```sh +$ blenderless image foo.stl output.png +$ blenderless --export-blend-path export.blend image foo.stl output.png # If .blend needs to be exported +``` + +Render geometry to gif with a camera looping around an object. + +```sh +$ blenderless gif foo.stl output.gif +``` + +The following command rendera a YAML config to an image + +```sh +$ blenderless config scene.yml output.png +``` + +### YAML configuration files + +More advanced scenes can be defined using a YAML configuration file. In this file objects, cameras, labels, materials and presets can be defined. + +Example: +```yaml +scene: # See options in blenderless.scene.Scene + preset_path: ../../preset.blend + +cameras: # See options in blenderless.camera + - _target_: blenderless.camera.SphericalCoordinateCamera # Instantiate one camera with following arguments + azimuth: 45 + elevation: 30 + theta: 0 + distance: 1 + +objects: # See blenderless.geometry and blenderless.material + - _target_: blenderless.geometry.Mesh # Refers to classes within the blenderless package + mesh_path: ../../mesh/3DBenchy.stl # Constructor argument + material: # Constructor argument pointing towards another class within the blenderless package + _target_: blenderless.material.MaterialFromName + material_name: test_material # Link to material name known in present.blend + + - _target_: blenderless.geometry.BlenderLabel + label_value: '42' +``` + + +### Export blender file + +## Install + +```buildoutcfg +sudo apt-get install xvfb +pipx install poetry==1.1.5 +make .venv +``` + +### Testing + +```sh +make test +``` + + +%package -n python3-blenderless +Summary: Blenderless is the python package for easy headless rendering using blender. +Provides: python-blenderless +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-blenderless +# Blenderless + +Blenderless is the Python package for easy headless rendering using Blender. + +While Blender is a fantastic open-source 3D modeling software which can be run from the command line, there are still some inconveniences when rendering from a headless server: + + - the blender python interface `bpy` can only be imported a single time, + - and, there is no framebuffer for blender to write to. + +Furthermore, the `bpy` interface has a steep learning curve. + + This package is meant to overcome these issues in a easy-to-use manner. It does so by first defining the entire scene and only interacting with the `bpy` at render time in a separate thread using a virtual framebuffer. + + Example use cases: + - Generating thumbnails or previews from 3D files. + - Batch generation of views from 3D files. + - Automatic generation of compositions of a set of meshes into a single scene + - Converting meshes and labels into .blend files + - Export GIF animations of a camera looping around an object. + + +## How to use this + +### Resources: + - You can find basic examples in the [unit tests](https://github.com/oqton/blenderless/tree/master/tests/test_data). + - [Notebook examples](https://github.com/oqton/blenderless/tree/master/notebooks) (point clouds, mesh face colors, ...) + + +### Python module + +The blenderless package can be loaded as a module. The main functionality is exposed using the Blenderless class. There is support for Jupyter Notebooks as the images/gifs will be shown as IPython Image objects automatically. + + +```python +from blenderless import Blenderless + +# Set the following property if you want to export the generated blender workspace. +Blenderless.export_blend_path = 'export.blend' + +# Render single STL file +path_to_foo_png = Blenderless.render('meshpath.stl', dest_path=None, azimuth=45, elevation=30, theta=0) + +# Render from config, note that objects and cameras are defined within the YAML config. +path_to_foo_png = Blenderless.render_from_config('config.yml', dest_path=None) + +# Render GIF animation, note that azimuth is defined by number of frames. +path_to_foo_gif = Blenderless.gif(cls, mesh_path, dest_path=None, elevation=30, theta=0, frames=60, duration=2) +``` + +### Command-line interface + +Render geometry file to image + +```sh +$ blenderless image foo.stl output.png +$ blenderless --export-blend-path export.blend image foo.stl output.png # If .blend needs to be exported +``` + +Render geometry to gif with a camera looping around an object. + +```sh +$ blenderless gif foo.stl output.gif +``` + +The following command rendera a YAML config to an image + +```sh +$ blenderless config scene.yml output.png +``` + +### YAML configuration files + +More advanced scenes can be defined using a YAML configuration file. In this file objects, cameras, labels, materials and presets can be defined. + +Example: +```yaml +scene: # See options in blenderless.scene.Scene + preset_path: ../../preset.blend + +cameras: # See options in blenderless.camera + - _target_: blenderless.camera.SphericalCoordinateCamera # Instantiate one camera with following arguments + azimuth: 45 + elevation: 30 + theta: 0 + distance: 1 + +objects: # See blenderless.geometry and blenderless.material + - _target_: blenderless.geometry.Mesh # Refers to classes within the blenderless package + mesh_path: ../../mesh/3DBenchy.stl # Constructor argument + material: # Constructor argument pointing towards another class within the blenderless package + _target_: blenderless.material.MaterialFromName + material_name: test_material # Link to material name known in present.blend + + - _target_: blenderless.geometry.BlenderLabel + label_value: '42' +``` + + +### Export blender file + +## Install + +```buildoutcfg +sudo apt-get install xvfb +pipx install poetry==1.1.5 +make .venv +``` + +### Testing + +```sh +make test +``` + + +%package help +Summary: Development documents and examples for blenderless +Provides: python3-blenderless-doc +%description help +# Blenderless + +Blenderless is the Python package for easy headless rendering using Blender. + +While Blender is a fantastic open-source 3D modeling software which can be run from the command line, there are still some inconveniences when rendering from a headless server: + + - the blender python interface `bpy` can only be imported a single time, + - and, there is no framebuffer for blender to write to. + +Furthermore, the `bpy` interface has a steep learning curve. + + This package is meant to overcome these issues in a easy-to-use manner. It does so by first defining the entire scene and only interacting with the `bpy` at render time in a separate thread using a virtual framebuffer. + + Example use cases: + - Generating thumbnails or previews from 3D files. + - Batch generation of views from 3D files. + - Automatic generation of compositions of a set of meshes into a single scene + - Converting meshes and labels into .blend files + - Export GIF animations of a camera looping around an object. + + +## How to use this + +### Resources: + - You can find basic examples in the [unit tests](https://github.com/oqton/blenderless/tree/master/tests/test_data). + - [Notebook examples](https://github.com/oqton/blenderless/tree/master/notebooks) (point clouds, mesh face colors, ...) + + +### Python module + +The blenderless package can be loaded as a module. The main functionality is exposed using the Blenderless class. There is support for Jupyter Notebooks as the images/gifs will be shown as IPython Image objects automatically. + + +```python +from blenderless import Blenderless + +# Set the following property if you want to export the generated blender workspace. +Blenderless.export_blend_path = 'export.blend' + +# Render single STL file +path_to_foo_png = Blenderless.render('meshpath.stl', dest_path=None, azimuth=45, elevation=30, theta=0) + +# Render from config, note that objects and cameras are defined within the YAML config. +path_to_foo_png = Blenderless.render_from_config('config.yml', dest_path=None) + +# Render GIF animation, note that azimuth is defined by number of frames. +path_to_foo_gif = Blenderless.gif(cls, mesh_path, dest_path=None, elevation=30, theta=0, frames=60, duration=2) +``` + +### Command-line interface + +Render geometry file to image + +```sh +$ blenderless image foo.stl output.png +$ blenderless --export-blend-path export.blend image foo.stl output.png # If .blend needs to be exported +``` + +Render geometry to gif with a camera looping around an object. + +```sh +$ blenderless gif foo.stl output.gif +``` + +The following command rendera a YAML config to an image + +```sh +$ blenderless config scene.yml output.png +``` + +### YAML configuration files + +More advanced scenes can be defined using a YAML configuration file. In this file objects, cameras, labels, materials and presets can be defined. + +Example: +```yaml +scene: # See options in blenderless.scene.Scene + preset_path: ../../preset.blend + +cameras: # See options in blenderless.camera + - _target_: blenderless.camera.SphericalCoordinateCamera # Instantiate one camera with following arguments + azimuth: 45 + elevation: 30 + theta: 0 + distance: 1 + +objects: # See blenderless.geometry and blenderless.material + - _target_: blenderless.geometry.Mesh # Refers to classes within the blenderless package + mesh_path: ../../mesh/3DBenchy.stl # Constructor argument + material: # Constructor argument pointing towards another class within the blenderless package + _target_: blenderless.material.MaterialFromName + material_name: test_material # Link to material name known in present.blend + + - _target_: blenderless.geometry.BlenderLabel + label_value: '42' +``` + + +### Export blender file + +## Install + +```buildoutcfg +sudo apt-get install xvfb +pipx install poetry==1.1.5 +make .venv +``` + +### Testing + +```sh +make test +``` + + +%prep +%autosetup -n blenderless-0.1.8 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-blenderless -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.8-1 +- Package Spec generated @@ -0,0 +1 @@ +ca9969d2be50f51504c23f739b8676ef blenderless-0.1.8.tar.gz |