forked from assimp/assimp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e66dc5c
commit 8648fd2
Showing
1 changed file
with
94 additions
and
94 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,94 +1,94 @@ | ||
PyAssimp Readme | ||
=============== | ||
|
||
A simple Python wrapper for Assimp using `ctypes` to access the library. | ||
Requires Python >= 2.6. | ||
|
||
Python 3 support is mostly here, but not well tested. | ||
|
||
Note that pyassimp is not complete. Many ASSIMP features are missing. | ||
|
||
USAGE | ||
----- | ||
|
||
### Complete example: 3D viewer | ||
|
||
`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 <path to your model> | ||
``` | ||
|
||
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 ...): | ||
|
||
```python | ||
|
||
from pyassimp import * | ||
scene = load('hello.3ds') | ||
|
||
assert len(scene.meshes) | ||
mesh = scene.meshes[0] | ||
|
||
assert len(mesh.vertices) | ||
print(mesh.vertices[0]) | ||
|
||
# don't forget this one, or you will leak! | ||
release(scene) | ||
|
||
``` | ||
|
||
Another example to list the 'top nodes' in a | ||
scene: | ||
|
||
```python | ||
|
||
from pyassimp import * | ||
scene = load('hello.3ds') | ||
|
||
for c in scene.rootnode.children: | ||
print(str(c)) | ||
|
||
release(scene) | ||
|
||
``` | ||
|
||
INSTALL | ||
------- | ||
|
||
Install `pyassimp` by running: | ||
|
||
``` | ||
$ python setup.py install | ||
``` | ||
|
||
PyAssimp requires a assimp dynamic library (`DLL` on windows, | ||
`.so` on linux, `.dynlib` on macOS) in order to work. The default search directories | ||
are: | ||
|
||
- the current directory | ||
- on linux additionally: `/usr/lib`, `/usr/local/lib`, | ||
`/usr/lib/x86_64-linux-gnu` | ||
|
||
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. | ||
|
||
PyAssimp Readme | ||
=============== | ||
|
||
A simple Python wrapper for Assimp using `ctypes` to access the library. | ||
Requires Python >= 2.6. | ||
|
||
Python 3 support is mostly here, but not well tested. | ||
|
||
Note that pyassimp is not complete. Many ASSIMP features are missing. | ||
|
||
USAGE | ||
----- | ||
|
||
### Complete example: 3D viewer | ||
|
||
`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 <path to your model> | ||
``` | ||
|
||
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 ...): | ||
|
||
```python | ||
|
||
from pyassimp import * | ||
scene = load('hello.3ds') | ||
|
||
assert len(scene.meshes) | ||
mesh = scene.meshes[0] | ||
|
||
assert len(mesh.vertices) | ||
print(mesh.vertices[0]) | ||
|
||
# don't forget this one, or you will leak! | ||
release(scene) | ||
|
||
``` | ||
|
||
Another example to list the 'top nodes' in a | ||
scene: | ||
|
||
```python | ||
|
||
from pyassimp import * | ||
scene = load('hello.3ds') | ||
|
||
for c in scene.rootnode.children: | ||
print(str(c)) | ||
|
||
release(scene) | ||
|
||
``` | ||
|
||
INSTALL | ||
------- | ||
|
||
Install `pyassimp` by running: | ||
|
||
``` | ||
$ python setup.py install | ||
``` | ||
|
||
PyAssimp requires a assimp dynamic library (`DLL` on windows, | ||
`.so` on linux, `.dynlib` on macOS) in order to work. The default search directories | ||
are: | ||
|
||
- the current directory | ||
- on linux additionally: `/usr/lib`, `/usr/local/lib`, | ||
`/usr/lib/x86_64-linux-gnu` | ||
|
||
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. | ||
|