diff --git a/port/PyAssimp/3d_viewer_screenshot.png b/port/PyAssimp/3d_viewer_screenshot.png new file mode 100644 index 000000000..2031faf5a Binary files /dev/null and b/port/PyAssimp/3d_viewer_screenshot.png differ diff --git a/port/PyAssimp/README.md b/port/PyAssimp/README.md index 201d3ed7d..0000f9386 100644 --- a/port/PyAssimp/README.md +++ b/port/PyAssimp/README.md @@ -11,14 +11,32 @@ Note that pyassimp is not complete. Many ASSIMP features are missing. USAGE ----- -To get started with pyAssimp, examine the `sample.py` script in `scripts/`, -which illustrates the basic usage. All Assimp data structures are wrapped using -ctypes. All the data+length fields in Assimp's data structures (such as -`aiMesh::mNumVertices`, `aiMesh::mVertices`) are replaced by simple python -lists, so you can call len() on them to get their respective size and access -members using []. +### Complete example: 3D viewer -For example, to load a file named 'hello.3ds' and print the first +`pyassimp` comes with a simple 3D viewer that shows how to load and display a 3D +model using a shader-based OpenGL pipeline. + +![Screenshot](3d_viewer_screenshot.png) + +To use it, from within `/port/PyAssimp`: + +``` +$ cd scripts +$ python ./3D-viewer +``` + +You can use this code as starting point in your applications. + +### Writing your own code + +To get started with `pyassimp`, examine the simpler `sample.py` script in `scripts/`, +which illustrates the basic usage. All Assimp data structures are wrapped using +`ctypes`. All the data+length fields in Assimp's data structures (such as +`aiMesh::mNumVertices`, `aiMesh::mVertices`) are replaced by simple python +lists, so you can call `len()` on them to get their respective size and access +members using `[]`. + +For example, to load a file named `hello.3ds` and print the first vertex of the first mesh, you would do (proper error handling substituted by assertions ...): @@ -58,16 +76,19 @@ INSTALL Install `pyassimp` by running: -> python setup.py install +``` +$ python setup.py install +``` PyAssimp requires a assimp dynamic library (`DLL` on windows, -`.so` on linux :-) in order to work. The default search directories +`.so` on linux, `.dynlib` on macOS) in order to work. The default search directories are: - the current directory -- on linux additionally: `/usr/lib` and `/usr/local/lib` +- on linux additionally: `/usr/lib`, `/usr/local/lib`, + `/usr/lib/x86_64-linux-gnu` -To build that library, refer to the Assimp master INSTALL +To build that library, refer to the Assimp master `INSTALL` instructions. To look in more places, edit `./pyassimp/helper.py`. There's an `additional_dirs` list waiting for your entries.