For parsing obj files to be suitable to feed to a vertex buffer.
Project description
.obj to vertex data
The above spinning blahaj was rendered in a browser with typescript, see at
alternyxx.com/blahaj! The model can be found
here.
Intended Usage
The program aims to make .obj files with triangle data, for example,
v 1 0 0
v 0 1 0
v 0 0 1
vn 0.577 0.577 0.577
f 1//1 2//2 3//3
to
1, 0, 0, 0.5777, 0.5777, 0.5777,
0, 1, 0, 0.5777, 0.5777, 0.5777,
0, 0, 1, 0.5777, 0.5777, 0.5777,
This is for parsing obj files to be suitable to feed to a vertex buffer. For most cases, it'd be better to just use an index buffer though. If your .obj file has faces with quads, which is usually the case, eg.
f 1/1/1 2/1/1 3/1/1 4/1/1
Then, you could change your vertex buffer accordingly to have 4 vertex coordinates in the case the graphics api you're using supports quads. Else, there is github.com/StefanJohnsen/TriangulateOBJ-App to triangulate quads in a .obj file which is what I did for the blahaj!
Installation
pip
Make sure Python and pip is installed. Python version needs to be >= 3.10. Then run
pip install vertexdata
Build
In case pip is blocked (happens to me), you can simply clone the repository and build from scratch. This should be especially trivial as the project has 0 dependancies.
git clone https://github.com/alternyxx/vertexdata
cd vertexdata
pip install .
Command Line Usage
Once installed, you can run
vertexdata obj_file {target_file}
to get vertex data in the target_file. By default, the program will generate all given vertex data, positions, textures and normals if given. To override this, you can pass in
vertexdata obj_file {target_file} -nvn -nvt
to only generate the positions of the vertices. For more information, run
vertexdata --help
Library
If you want to parse the vertices in this way in a python project, you can
import vertexdata as vtd
def main():
vertex_parser = vtd.VertexParser(
source, target_file, no_normal_data=true, no_texture_data=true
)
vertex_parser.parse()
your_vertices_data = vertexparser.output()
source can be a file which then you can do
vertexparser = vtd.VertexParser(
source, target_file, read_file=true
)
If you don't need to output target as a file then you can pass an empty string. And, finally, there's the flags, no_normal_data and no_texture_data.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vertexdata-1.0.1.tar.gz.
File metadata
- Download URL: vertexdata-1.0.1.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.0 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d3d98b8c0889e1acd835819dc548b5bb800b4ad1b3cbbd4baf9749ff63590bc
|
|
| MD5 |
cfa17f4e41e7c6c53466ebcc916db1f4
|
|
| BLAKE2b-256 |
ff27eb00d014454312ebe10ce23699ddf9a62a18287fa2eafe954056485c106b
|
File details
Details for the file vertexdata-1.0.1-py3-none-any.whl.
File metadata
- Download URL: vertexdata-1.0.1-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.0 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ce7ea5638bebeaa13ff69185303e2851ad99de8910b18f7b052dcf1fe035361
|
|
| MD5 |
2d9f8ce37b310cfc8da3fdfacd0ef3f9
|
|
| BLAKE2b-256 |
821f8ef5c6d3ac22aaa0c72657d48c0f8cc90df925a84075ee00f672e1c2cfae
|