- An open source Python 3D engine using the pyopengl API that uses pygame and pyglet as the game backend.
- Homepage : https://pyengine3d.blogspot.com
- Documents : https://pyengine3d.readthedocs.io
- OpenGL 4.3 ( Shading language 430 )
- python 3.6 ( python 3.7 has a pyopengl bug )
- numpy
- pillow
- pyglet or pygame
- PyOpenGL
- PyOpenGL-accelerate ( optional )
- Windows, Linux, Mac(not tested)
git clone https://github.com/ubuntunux/PyEngine3D
cd PyEngine3D
pip install -r requirements.txt
python main.py
Traceback (most recent call last):
File "main.py", line 44, in <module>
from PyEngine3D.Common import CustomQueue, CustomPipe
File "C:\Users\quint\OneDrive\Documents\Git BASH FOLDER\PyEngine3D\PyEngine3D\Common\__init__.py", line 3, in <module>
from PyEngine3D.Utilities import Logger
File "C:\Users\quint\OneDrive\Documents\Git BASH FOLDER\PyEngine3D\PyEngine3D\Utilities\__init__.py", line 4, in <module>
from .ImageProcessing import *
File "C:\Users\quint\OneDrive\Documents\Git BASH FOLDER\PyEngine3D\PyEngine3D\Utilities\ImageProcessing.py", line 6, in <module>
from PIL import Image
File "C:\Users\quint\Anaconda3\lib\site-packages\PIL\Image.py", line 90, in <module>
from . import _imaging as core
ImportError: DLL load failed
Solution1)
conda install -c anaconda pillow
Solution2)
conda install --channel conda-forge pillow=5
Solution3)
conda remove pillow
pip install pillow
-
Features : https://www.youtube.com/watch?v=Lpuxi2O5fiA
-
pybullet example : https://github.com/ubuntunux/PyBullet3D
-
Import
- Mesh
- .obj, .dae ( colada )
- .fbx
- gltf, blender
- Texture
- .png, .tga, .bmp etc
- Compressed Texture (ETC, DDS)
- Mesh
-
Light
- Directional light & Shadow mapping
- Spot light
- Area light
- Point light
- shadow map using dual paraboloid mapping
-
Particle System
-
Object
-
Rendering
- Culling
- occlusion culling
- distance culling
- view frustum culling
- VTF Skinning
- Calculate the animation in gpu
- Distance Field Font
- Real time light probe
- PBR
- Temporal AA
- SSAA
- MSAA
- Temporal Upsacle
- Screen Space Relfection
- Screen Space Ambient Occlusion
- Screen Space Bevel
- Screen Space SSS
- Depth Of Field
- Bokeh
- Bloom
- Tone mapping
- Glare
- Film Grain
- Color Correction
- Color Grading
- Light Shaft
- Motion Blur
- Recursive Velocity
- Parallax Occlusion Rendering
- Paraboloid environment map
- Voxel Based GI
- Volumtric Scattering
- Fur Rendering
- Culling
-
Resource Manager
- Load / Save / Import / Export
- Unload / Reload system
- Duplicate resource
- Sound Manager
- Script Manager
-
Blender3D plugin
- transfer geometry, animation, scene datas
- edit animation, scene, sequence, particles in blender
-
InGame GUI
- input / output
- progress bar
- button
-
Optimize
- Only dynamic shadows are updated on every frame, and static shadows are not updated every time.
- SSR ray reuse in compute shader
- Postprocessing in compute shader
- FFT in compute shader
- Precomputed atmosphere in compute shader
- https://wickedengine.net/2017/11/07/gpu-based-particle-simulation
- http://kode80.com/blog/2015/03/11/screen-space-reflections-in-unity-5/index.html
- http://proland.inrialpes.fr/publications.html
- http://casual-effects.com/data/index.html
- https://github.com/TheRealMJP/MSAAFilter
- http://pyopengl.sourceforge.net/
- https://learnopengl.com/
- http://www.songho.ca/index.html