Coder Social home page Coder Social logo

pyengine3d's Introduction

PyEngine3D

Welcome to PyEngine3D

Requirements

  • OpenGL 4.3 ( Shading language 430 )
  • numpy
  • pillow
  • pyglet or pygame
  • PyOpenGL
  • PyOpenGL-accelerate ( optional )
  • Windows, Linux, Mac(not tested)

How to install PyEngine3D

  git clone https://github.com/ubuntunux/PyEngine3D
  cd PyEngine3D
  pip install -r requirements.txt
  python main.py

Trouble Shooting

Crash issue using anaconda

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

  • 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)
  • Light

    • Directional light & Shadow mapping
    • Spot light
    • Area light
    • Point light
      • shadow map using dual paraboloid mapping
  • Particle System

    • CPU Based Particle
    • GPU Based Particle GPU Based Particle
    • Vector Field
    • Particle spawn on polygon surface
    • Bitonic Sorting
    • Memory Pool
    • Attractor
    • Noise
    • Curl Noise
  • Object

    • Select, Move, Modify
    • Gizmo
    • Skeleton Mesh
    • Static Mesh
    • Tree, Foliage, Grass
    • Terrain Terrain
    • Atmoshpere & Sky Atmoshpere0 Atmoshpere1 Atmoshpere2 Atmoshpere3 Atmoshpere4
    • Road
    • Wind
    • FFT Ocean FFT Ocean0 FFT Ocean1
    • River
  • Rendering

    • Culling
      • occlusion culling
      • distance culling
      • view frustum culling
    • VTF Skinning
    • Calculate the animation in gpu
    • Distance Field Font
    • Real time light probe
    • PBR PBR
    • Temporal AA
    • SSAA
    • MSAA
    • Temporal Upsacle
    • Screen Space Relfection Screen Space Relfection
    • Screen Space Ambient Occlusion
    • Screen Space Bevel
    • Screen Space SSS
    • Depth Of Field
      • Bokeh
    • Bloom Bloom
    • Tone mapping
    • Glare
    • Film Grain
    • Color Correction
    • Color Grading
    • Light Shaft Light Shaft
    • Motion Blur
      • Recursive Velocity
    • Parallax Occlusion Rendering
    • Paraboloid environment map
    • Voxel Based GI
    • Volumtric Scattering
    • Fur Rendering
  • 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

References

pyengine3d's People

Contributors

ubuntunux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyengine3d's Issues

requirements errors

Using versions in the requirements file gives alot of errors. Not using versions gave me no errors and worked

numpy
Pillow
pygame
pyglet
PyOpenAL
PyOpenGL
PyOpenGL-accelerate

View Mode

wire, solid, unlit, shading, texture

Materials can't compile on Windows

Hello!

I'm new to this project and just trying to get it to build for the first time on Windows 10. I'm using a clean Anaconda environment with all dependencies shown as listed in requirements.txt. I haven't encountered the DLL load issue that is mentioned in the README for Anaconda.

Instead, when I run main.py, I find that every material is failing to compile. Each one provides this error:

 (Material.py:200)
[WARNING |2021-04-06 22:51:19.165] Validation failure (0):  (Material.py:216)
[ERROR   |2021-04-06 22:51:19.165] Link failure (0):  (Material.py:228)
[ERROR   |2021-04-06 22:51:19.165] default_aec1d398_da1e_308c_9d63_56e9056db8f9 material has been failed to compile from source (Material.py:60)
[ERROR   |2021-04-06 22:51:19.165] Failed to generate_new_material default_aec1d398_da1e_308c_9d63_56e9056db8f9. (ResourceManager.py:809)
[ERROR   |2021-04-06 22:51:19.165] Failed to generate_new_material default_aec1d398_da1e_308c_9d63_56e9056db8f9. (ResourceManager.py:809)
[INFO    |2021-04-06 22:51:19.165] Load Material Instance : default (MaterialInstance.py:22)
[ERROR   |2021-04-06 22:51:19.165] default material instance has no material. (MaterialInstance.py:44)
[ERROR   |2021-04-06 22:51:19.165] MaterialLoader cannot found default resource. (ResourceManager.py:394)
[INFO    |2021-04-06 22:51:19.165] Generate new material : default (ResourceManager.py:729)
[ERROR   |2021-04-06 22:51:19.345] MaterialLoader cannot found default resource. (ResourceManager.py:394)
[INFO    |2021-04-06 22:51:19.345] Load default material. (Material.py:23)
[ERROR   |2021-04-06 22:51:19.365] default GL_VERTEX_SHADER shader compile error.
GL_COMPILE_STATUS : 0
ERROR: 0:1598: 'texture' : no matching overloaded function found (using implicit conversion)
ERROR: 0:1598: 'texture' : function is not known
ERROR: 0:1759: '=' : syntax error syntax error

This error happens over and over again until all materials are done loading. Then, presumably because none of these materials load, there is this traceback (some lines cut for brevity):

Traceback (most recent call last):
  File "main.py", line 104, in <module>
    next_open_project_filename = run(editor, project_filename)
...
  File "C:\...\PyEngine3D\PyEngine3D\Render\Terrain.py", line 112, in render_terrain
    material_instance.use_program()
AttributeError: 'NoneType' object has no attribute 'use_program'

I'll dig in further to see if I may be able to find something more, but I'm very new to 3D rendering and so my ability to help may be limited.

setup opengl context fails

NFO    |2024-06-17 08:57:37.345] initialize MeshLoader (ResourceManager.py:309)
[INFO    |2024-06-17 08:57:37.345] Regist Mesh : suzan (ResourceManager.py:457)
[INFO    |2024-06-17 08:57:37.346] Regist Mesh : skeletal (ResourceManager.py:457)
[INFO    |2024-06-17 08:57:37.346] Regist Mesh : axis_gizmo (ResourceManager.py:457)
[INFO    |2024-06-17 08:57:37.346] Regist Mesh : sphere (ResourceManager.py:457)
[INFO    |2024-06-17 08:57:37.347] Regist Mesh : sponza.sponza (ResourceManager.py:457)
[INFO    |2024-06-17 08:57:37.347] Load Triangle : Triangle (Mesh.py:85)
Traceback (most recent call last):
  File "/home/rap/neuropasta/PyEngine3D/main.py", line 104, in <module>
    next_open_project_filename = run(editor, project_filename)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rap/neuropasta/PyEngine3D/main.py", line 85, in run
    result = coreManager.initialize(appCmdQueue, uiCmdQueue, pipe1, project_filename)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rap/neuropasta/PyEngine3D/PyEngine3D/App/CoreManager.py", line 198, in initialize
    self.resource_manager.initialize(self, self.project_manager.project_dir)
  File "/home/rap/neuropasta/PyEngine3D/PyEngine3D/ResourceManager/ResourceManager.py", line 1626, in initialize
    resource_loader.initialize()
  File "/home/rap/neuropasta/PyEngine3D/PyEngine3D/ResourceManager/ResourceManager.py", line 1127, in initialize
    self.create_resource("Triangle", Triangle("Triangle"))
                                     ^^^^^^^^^^^^^^^^^^^^
  File "/home/rap/neuropasta/PyEngine3D/PyEngine3D/Render/Mesh.py", line 224, in __init__
    Mesh.__init__(self, mesh_name, geometry_datas=geometry_datas)
  File "/home/rap/neuropasta/PyEngine3D/PyEngine3D/Render/Mesh.py", line 139, in __init__
    vertex_buffer = CreateVertexArrayBuffer(geometry_data)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rap/neuropasta/PyEngine3D/PyEngine3D/OpenGLContext/VertexArrayBuffer.py", line 72, in CreateVertexArrayBuffer
    vertex_array_buffer = VertexArrayBuffer(geometry_name,
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rap/neuropasta/PyEngine3D/PyEngine3D/OpenGLContext/VertexArrayBuffer.py", line 173, in __init__
    glVertexAttribPointer(location, data_element_count, data_type, GL_FALSE, data_element_size, c_void_p(offset))
  File "/usr/lib/python3/dist-packages/OpenGL/latebind.py", line 63, in __call__
    return self.wrapperFunction( self.baseFunction, *args, **named )
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer
    contextdata.setValue( key, array )
  File "/usr/lib/python3/dist-packages/OpenGL/contextdata.py", line 58, in setValue
    context = getContext( context )
              ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/OpenGL/contextdata.py", line 40, in getContext
    raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context

OpenGL Library ?

why did you add two separate OpenGL Libraries, wouldn't you have added one?

UI

  • object list
  • add primitive button
  • delete primitive button
  • transform gizmo
  • load obj file
  • draw mode change
  • object info window
    • translate, rotation, scale
    • matrix
    • quaternion

Pyopengltk

There's this widget which allows opengl to be in a frame inside of tkinter. This frame is just like a glfw window. I've been using this for the past weeks. It will allow the window to be inside of the tkinter.

https://github.com/jonwright/pyopengltk

Crash on installing, using anaconda (python 3.7.4)

Log:

$ 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: Kan opgegeven module niet vinden.

Actor Struct

skeletal mesh
static mesh
landscape
intanced object
tree
foliage
point, directional, spot, area light
cube map

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.