diff options
Diffstat (limited to 'python-panda3d-simplepbr.spec')
| -rw-r--r-- | python-panda3d-simplepbr.spec | 568 |
1 files changed, 568 insertions, 0 deletions
diff --git a/python-panda3d-simplepbr.spec b/python-panda3d-simplepbr.spec new file mode 100644 index 0000000..c5f296c --- /dev/null +++ b/python-panda3d-simplepbr.spec @@ -0,0 +1,568 @@ +%global _empty_manifest_terminate_build 0 +Name: python-panda3d-simplepbr +Version: 0.10 +Release: 1 +Summary: A simple, lightweight PBR render pipeline for Panda3D +License: BSD +URL: https://github.com/Moguri/panda3d-simplepbr +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/eb/f5/c56fc0777422f4192a714f84979067df2fbd12726345fc3960803d472571/panda3d-simplepbr-0.10.tar.gz +BuildArch: noarch + +Requires: python3-panda3d +Requires: python3-pytest +Requires: python3-pylint +Requires: python3-pytest-pylint + +%description + +[](https://pypi.org/project/panda3d_simplepbr/) +[](https://www.panda3d.org/) +[](https://choosealicense.com/licenses/bsd-3-clause/) + +# panda3d-simplepbr + +This is a simple, basic, lightweight, no-frills PBR render pipeline for [Panda3D](https://www.panda3d.org/). +It is currently intended to be used with [panda3d-gltf](https://github.com/Moguri/panda3d-gltf), which will output textures in the right order. +The PBR shader is heavily inspired by the [Khronos glTF Sample Viewer](https://github.com/KhronosGroup/glTF-Sample-Viewer). +*Note:* this project does not make an attempt to match a reference renderer. + +## Features +* Supports running on a wide range of hardware with an easy OpenGL 2.1+ requirement +* Forward rendered metal-rough PBR +* All Panda3D light types (point, directional, spot, and ambient) +* Filmic tonemapping +* Normal maps +* Emission maps +* Occlusion maps +* Basic shadow mapping for DirectionalLight and Spotlight + +## Notable Todos +There are a few big things still missing and are planned to be implemented: + +* Shadow mapping for PointLight +* IBL Diffuse +* IBL Specular + +## Other missing features +The goal is to keep this simple and lightweight. +As such, the following missing features are *not* currently on the roadmap: + +* Something to deal with many lights (e.g., deferred, forward+, tiling, clustering, etc.) +* Fancy post-process effects (temporal anti-aliasing, ambient occlusion, screen-space reflections) +* Environment probes + +## Installation + +Use pip to install the `panda3d-simplepbr` package: + +```bash +pip install panda3d-simplepbr +``` + +To grab the latest development build, use: + +```bash +pip install git+https://github.com/Moguri/panda3d-simplepbr.git + +``` + +## Usage + +Just add `simplepbr.init()` to your `ShowBase` instance: + +```python +from direct.showbase.ShowBase import ShowBase + +import simplepbr + +class App(ShowBase): + def __init__(self): + super().__init__() + + simplepbr.init() +``` + +The `init()` function will choose typical defaults, but the following can be modified via keyword arguments: + +`render_node` +: The node to attach the shader too, defaults to `base.render` if `None` + +`window` +: The window to attach the framebuffer too, defaults to `base.win` if `None` + +`camera_node` +: The NodePath of the camera to use when rendering the scene, defaults to `base.cam` if `None` + +`msaa_samples` +: The number of samples to use for multisample anti-aliasing, defaults to 4 + +`max_lights` +: The maximum number of lights to render, defaults to 8 + +`use_normal_maps` +: Use normal maps to modify fragment normals, defaults to `False` (NOTE: Requires models with appropriate tangents defined) + + `use_emission_maps` +: Use emission maps, defaults to `True` + +`use_occlusion_maps` +: Use occlusion maps, defaults to `False` (NOTE: Requires occlusion channel in metal-roughness map) + +`enable_shadows` +: Enable shadow map support (breaks with point lights), defaults to False + +`enable_fog` +: Enable exponential fog, defaults to False + +`exposure` +: a value used to multiply the screen-space color value prior to tonemapping, defaults to 1.0 + +`use_330` +: Force shaders to use GLSL version 330 (if `True`) or 120 (if `False`) or auto-detect if `None`, defaults to `None` + +`use_hardware_skinning` +: Force usage of hardware skinning for skeleton animations or auto-detect if `None`, defaults to `None` + +Those parameters can also be modified later on by setting the related attribute of the simplepbr pipeline returned by the init() function: + +```python + pipeline = simplepbr.init() + + ... + + pipeline.use_normals_map = True +``` + +### Textures + +simplepbr expects the following textures are assigned to the following texture stages: + +* BaseColor - Modulate +* MetalRoughness - Selector +* Normals - Normal +* Emission - Emission + +## Example + +For an example application using `panda3d-simplepbr` check out the [viewer](https://github.com/Moguri/panda3d-gltf/blob/master/gltf/viewer.py) in the [panda3d-gltf repo](https://github.com/Moguri/panda3d-gltf). + +## Running Tests + +First install `panda3d-simplepbr` in editable mode along with `test` extras: + +```bash +pip install -e .[test] +``` + +Then run the test suite with `pytest`: + +```bash +pytest +``` + +## Building Wheels + +Install `build`: + +```bash +pip install --upgrade build +``` + +and run: + +```bash +python -m build +``` + +## License +[B3D 3-Clause](https://choosealicense.com/licenses/bsd-3-clause/) + + + + +%package -n python3-panda3d-simplepbr +Summary: A simple, lightweight PBR render pipeline for Panda3D +Provides: python-panda3d-simplepbr +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-panda3d-simplepbr + +[](https://pypi.org/project/panda3d_simplepbr/) +[](https://www.panda3d.org/) +[](https://choosealicense.com/licenses/bsd-3-clause/) + +# panda3d-simplepbr + +This is a simple, basic, lightweight, no-frills PBR render pipeline for [Panda3D](https://www.panda3d.org/). +It is currently intended to be used with [panda3d-gltf](https://github.com/Moguri/panda3d-gltf), which will output textures in the right order. +The PBR shader is heavily inspired by the [Khronos glTF Sample Viewer](https://github.com/KhronosGroup/glTF-Sample-Viewer). +*Note:* this project does not make an attempt to match a reference renderer. + +## Features +* Supports running on a wide range of hardware with an easy OpenGL 2.1+ requirement +* Forward rendered metal-rough PBR +* All Panda3D light types (point, directional, spot, and ambient) +* Filmic tonemapping +* Normal maps +* Emission maps +* Occlusion maps +* Basic shadow mapping for DirectionalLight and Spotlight + +## Notable Todos +There are a few big things still missing and are planned to be implemented: + +* Shadow mapping for PointLight +* IBL Diffuse +* IBL Specular + +## Other missing features +The goal is to keep this simple and lightweight. +As such, the following missing features are *not* currently on the roadmap: + +* Something to deal with many lights (e.g., deferred, forward+, tiling, clustering, etc.) +* Fancy post-process effects (temporal anti-aliasing, ambient occlusion, screen-space reflections) +* Environment probes + +## Installation + +Use pip to install the `panda3d-simplepbr` package: + +```bash +pip install panda3d-simplepbr +``` + +To grab the latest development build, use: + +```bash +pip install git+https://github.com/Moguri/panda3d-simplepbr.git + +``` + +## Usage + +Just add `simplepbr.init()` to your `ShowBase` instance: + +```python +from direct.showbase.ShowBase import ShowBase + +import simplepbr + +class App(ShowBase): + def __init__(self): + super().__init__() + + simplepbr.init() +``` + +The `init()` function will choose typical defaults, but the following can be modified via keyword arguments: + +`render_node` +: The node to attach the shader too, defaults to `base.render` if `None` + +`window` +: The window to attach the framebuffer too, defaults to `base.win` if `None` + +`camera_node` +: The NodePath of the camera to use when rendering the scene, defaults to `base.cam` if `None` + +`msaa_samples` +: The number of samples to use for multisample anti-aliasing, defaults to 4 + +`max_lights` +: The maximum number of lights to render, defaults to 8 + +`use_normal_maps` +: Use normal maps to modify fragment normals, defaults to `False` (NOTE: Requires models with appropriate tangents defined) + + `use_emission_maps` +: Use emission maps, defaults to `True` + +`use_occlusion_maps` +: Use occlusion maps, defaults to `False` (NOTE: Requires occlusion channel in metal-roughness map) + +`enable_shadows` +: Enable shadow map support (breaks with point lights), defaults to False + +`enable_fog` +: Enable exponential fog, defaults to False + +`exposure` +: a value used to multiply the screen-space color value prior to tonemapping, defaults to 1.0 + +`use_330` +: Force shaders to use GLSL version 330 (if `True`) or 120 (if `False`) or auto-detect if `None`, defaults to `None` + +`use_hardware_skinning` +: Force usage of hardware skinning for skeleton animations or auto-detect if `None`, defaults to `None` + +Those parameters can also be modified later on by setting the related attribute of the simplepbr pipeline returned by the init() function: + +```python + pipeline = simplepbr.init() + + ... + + pipeline.use_normals_map = True +``` + +### Textures + +simplepbr expects the following textures are assigned to the following texture stages: + +* BaseColor - Modulate +* MetalRoughness - Selector +* Normals - Normal +* Emission - Emission + +## Example + +For an example application using `panda3d-simplepbr` check out the [viewer](https://github.com/Moguri/panda3d-gltf/blob/master/gltf/viewer.py) in the [panda3d-gltf repo](https://github.com/Moguri/panda3d-gltf). + +## Running Tests + +First install `panda3d-simplepbr` in editable mode along with `test` extras: + +```bash +pip install -e .[test] +``` + +Then run the test suite with `pytest`: + +```bash +pytest +``` + +## Building Wheels + +Install `build`: + +```bash +pip install --upgrade build +``` + +and run: + +```bash +python -m build +``` + +## License +[B3D 3-Clause](https://choosealicense.com/licenses/bsd-3-clause/) + + + + +%package help +Summary: Development documents and examples for panda3d-simplepbr +Provides: python3-panda3d-simplepbr-doc +%description help + +[](https://pypi.org/project/panda3d_simplepbr/) +[](https://www.panda3d.org/) +[](https://choosealicense.com/licenses/bsd-3-clause/) + +# panda3d-simplepbr + +This is a simple, basic, lightweight, no-frills PBR render pipeline for [Panda3D](https://www.panda3d.org/). +It is currently intended to be used with [panda3d-gltf](https://github.com/Moguri/panda3d-gltf), which will output textures in the right order. +The PBR shader is heavily inspired by the [Khronos glTF Sample Viewer](https://github.com/KhronosGroup/glTF-Sample-Viewer). +*Note:* this project does not make an attempt to match a reference renderer. + +## Features +* Supports running on a wide range of hardware with an easy OpenGL 2.1+ requirement +* Forward rendered metal-rough PBR +* All Panda3D light types (point, directional, spot, and ambient) +* Filmic tonemapping +* Normal maps +* Emission maps +* Occlusion maps +* Basic shadow mapping for DirectionalLight and Spotlight + +## Notable Todos +There are a few big things still missing and are planned to be implemented: + +* Shadow mapping for PointLight +* IBL Diffuse +* IBL Specular + +## Other missing features +The goal is to keep this simple and lightweight. +As such, the following missing features are *not* currently on the roadmap: + +* Something to deal with many lights (e.g., deferred, forward+, tiling, clustering, etc.) +* Fancy post-process effects (temporal anti-aliasing, ambient occlusion, screen-space reflections) +* Environment probes + +## Installation + +Use pip to install the `panda3d-simplepbr` package: + +```bash +pip install panda3d-simplepbr +``` + +To grab the latest development build, use: + +```bash +pip install git+https://github.com/Moguri/panda3d-simplepbr.git + +``` + +## Usage + +Just add `simplepbr.init()` to your `ShowBase` instance: + +```python +from direct.showbase.ShowBase import ShowBase + +import simplepbr + +class App(ShowBase): + def __init__(self): + super().__init__() + + simplepbr.init() +``` + +The `init()` function will choose typical defaults, but the following can be modified via keyword arguments: + +`render_node` +: The node to attach the shader too, defaults to `base.render` if `None` + +`window` +: The window to attach the framebuffer too, defaults to `base.win` if `None` + +`camera_node` +: The NodePath of the camera to use when rendering the scene, defaults to `base.cam` if `None` + +`msaa_samples` +: The number of samples to use for multisample anti-aliasing, defaults to 4 + +`max_lights` +: The maximum number of lights to render, defaults to 8 + +`use_normal_maps` +: Use normal maps to modify fragment normals, defaults to `False` (NOTE: Requires models with appropriate tangents defined) + + `use_emission_maps` +: Use emission maps, defaults to `True` + +`use_occlusion_maps` +: Use occlusion maps, defaults to `False` (NOTE: Requires occlusion channel in metal-roughness map) + +`enable_shadows` +: Enable shadow map support (breaks with point lights), defaults to False + +`enable_fog` +: Enable exponential fog, defaults to False + +`exposure` +: a value used to multiply the screen-space color value prior to tonemapping, defaults to 1.0 + +`use_330` +: Force shaders to use GLSL version 330 (if `True`) or 120 (if `False`) or auto-detect if `None`, defaults to `None` + +`use_hardware_skinning` +: Force usage of hardware skinning for skeleton animations or auto-detect if `None`, defaults to `None` + +Those parameters can also be modified later on by setting the related attribute of the simplepbr pipeline returned by the init() function: + +```python + pipeline = simplepbr.init() + + ... + + pipeline.use_normals_map = True +``` + +### Textures + +simplepbr expects the following textures are assigned to the following texture stages: + +* BaseColor - Modulate +* MetalRoughness - Selector +* Normals - Normal +* Emission - Emission + +## Example + +For an example application using `panda3d-simplepbr` check out the [viewer](https://github.com/Moguri/panda3d-gltf/blob/master/gltf/viewer.py) in the [panda3d-gltf repo](https://github.com/Moguri/panda3d-gltf). + +## Running Tests + +First install `panda3d-simplepbr` in editable mode along with `test` extras: + +```bash +pip install -e .[test] +``` + +Then run the test suite with `pytest`: + +```bash +pytest +``` + +## Building Wheels + +Install `build`: + +```bash +pip install --upgrade build +``` + +and run: + +```bash +python -m build +``` + +## License +[B3D 3-Clause](https://choosealicense.com/licenses/bsd-3-clause/) + + + + +%prep +%autosetup -n panda3d-simplepbr-0.10 + +%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-panda3d-simplepbr -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.10-1 +- Package Spec generated |
