update python readme.

pull/1345/head
Kim Kulling 2017-07-12 20:35:50 +02:00
parent e66dc5c9ad
commit 8648fd223e
1 changed files with 94 additions and 94 deletions

View File

@ -1,94 +1,94 @@
PyAssimp Readme PyAssimp Readme
=============== ===============
A simple Python wrapper for Assimp using `ctypes` to access the library. A simple Python wrapper for Assimp using `ctypes` to access the library.
Requires Python >= 2.6. Requires Python >= 2.6.
Python 3 support is mostly here, but not well tested. Python 3 support is mostly here, but not well tested.
Note that pyassimp is not complete. Many ASSIMP features are missing. Note that pyassimp is not complete. Many ASSIMP features are missing.
USAGE USAGE
----- -----
### Complete example: 3D viewer ### Complete example: 3D viewer
`pyassimp` comes with a simple 3D viewer that shows how to load and display a 3D `pyassimp` comes with a simple 3D viewer that shows how to load and display a 3D
model using a shader-based OpenGL pipeline. model using a shader-based OpenGL pipeline.
![Screenshot](3d_viewer_screenshot.png) ![Screenshot](3d_viewer_screenshot.png)
To use it, from within `/port/PyAssimp`: To use it, from within `/port/PyAssimp`:
``` ```
$ cd scripts $ cd scripts
$ python ./3D-viewer <path to your model> $ python ./3D-viewer <path to your model>
``` ```
You can use this code as starting point in your applications. You can use this code as starting point in your applications.
### Writing your own code ### Writing your own code
To get started with `pyassimp`, examine the simpler `sample.py` script in `scripts/`, 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 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 `ctypes`. All the data+length fields in Assimp's data structures (such as
`aiMesh::mNumVertices`, `aiMesh::mVertices`) are replaced by simple python `aiMesh::mNumVertices`, `aiMesh::mVertices`) are replaced by simple python
lists, so you can call `len()` on them to get their respective size and access lists, so you can call `len()` on them to get their respective size and access
members using `[]`. members using `[]`.
For example, to load a file named `hello.3ds` and print the first For example, to load a file named `hello.3ds` and print the first
vertex of the first mesh, you would do (proper error handling vertex of the first mesh, you would do (proper error handling
substituted by assertions ...): substituted by assertions ...):
```python ```python
from pyassimp import * from pyassimp import *
scene = load('hello.3ds') scene = load('hello.3ds')
assert len(scene.meshes) assert len(scene.meshes)
mesh = scene.meshes[0] mesh = scene.meshes[0]
assert len(mesh.vertices) assert len(mesh.vertices)
print(mesh.vertices[0]) print(mesh.vertices[0])
# don't forget this one, or you will leak! # don't forget this one, or you will leak!
release(scene) release(scene)
``` ```
Another example to list the 'top nodes' in a Another example to list the 'top nodes' in a
scene: scene:
```python ```python
from pyassimp import * from pyassimp import *
scene = load('hello.3ds') scene = load('hello.3ds')
for c in scene.rootnode.children: for c in scene.rootnode.children:
print(str(c)) print(str(c))
release(scene) release(scene)
``` ```
INSTALL INSTALL
------- -------
Install `pyassimp` by running: Install `pyassimp` by running:
``` ```
$ python setup.py install $ python setup.py install
``` ```
PyAssimp requires a assimp dynamic library (`DLL` on windows, PyAssimp requires a assimp dynamic library (`DLL` on windows,
`.so` on linux, `.dynlib` on macOS) in order to work. The default search directories `.so` on linux, `.dynlib` on macOS) in order to work. The default search directories
are: are:
- the current directory - the current directory
- on linux additionally: `/usr/lib`, `/usr/local/lib`, - on linux additionally: `/usr/lib`, `/usr/local/lib`,
`/usr/lib/x86_64-linux-gnu` `/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`. instructions. To look in more places, edit `./pyassimp/helper.py`.
There's an `additional_dirs` list waiting for your entries. There's an `additional_dirs` list waiting for your entries.