summaryrefslogtreecommitdiff
path: root/python-panda3d-simplepbr.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-panda3d-simplepbr.spec')
-rw-r--r--python-panda3d-simplepbr.spec568
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
+![Build Status](https://github.com/Moguri/panda3d-simplepbr/workflows/Pipeline/badge.svg)
+[![](https://img.shields.io/pypi/pyversions/panda3d_simplepbr.svg)](https://pypi.org/project/panda3d_simplepbr/)
+[![Panda3D Versions](https://img.shields.io/badge/panda3d-1.10%20%7C%201.11-blue.svg)](https://www.panda3d.org/)
+[![](https://img.shields.io/github/license/Moguri/panda3d-simplepbr.svg)](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
+![Build Status](https://github.com/Moguri/panda3d-simplepbr/workflows/Pipeline/badge.svg)
+[![](https://img.shields.io/pypi/pyversions/panda3d_simplepbr.svg)](https://pypi.org/project/panda3d_simplepbr/)
+[![Panda3D Versions](https://img.shields.io/badge/panda3d-1.10%20%7C%201.11-blue.svg)](https://www.panda3d.org/)
+[![](https://img.shields.io/github/license/Moguri/panda3d-simplepbr.svg)](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
+![Build Status](https://github.com/Moguri/panda3d-simplepbr/workflows/Pipeline/badge.svg)
+[![](https://img.shields.io/pypi/pyversions/panda3d_simplepbr.svg)](https://pypi.org/project/panda3d_simplepbr/)
+[![Panda3D Versions](https://img.shields.io/badge/panda3d-1.10%20%7C%201.11-blue.svg)](https://www.panda3d.org/)
+[![](https://img.shields.io/github/license/Moguri/panda3d-simplepbr.svg)](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