Skip to main content

For parsing obj files to be suitable to feed to a vertex buffer.

Project description

.obj to vertex data

pypi version python versions python package passing

A spinning blahaj
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, you can triangulate when exporting from blender or 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

You can also 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} -n -t

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, read_file
    )
    vertex_parser.parse()
    your_vertices_data = vertexparser.output()

source can either be a file or a string that youve already read, which then, you would specify read_file as false.
There's also flags to not handle certain data

from vertexdata import VertexParser, NONORMALDATA, NOTEXTUREDATA

vertexparser = VertexParser(
    source, target_file, False, NONORMALDATA, NOTEXTUREDATA
)

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

vertexdata-1.0.4.tar.gz (310.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vertexdata-1.0.4-py3-none-any.whl (399.7 kB view details)

Uploaded Python 3

File details

Details for the file vertexdata-1.0.4.tar.gz.

File metadata

  • Download URL: vertexdata-1.0.4.tar.gz
  • Upload date:
  • Size: 310.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.0 Windows/11

File hashes

Hashes for vertexdata-1.0.4.tar.gz
Algorithm Hash digest
SHA256 a2d1fde9a552c360ae77e42238c49a15cfdb7d69af81ea25b984d1fb44a17b7c
MD5 c91df8d51d4d7615ce6908eb88d3a0de
BLAKE2b-256 d79b4567ab8acc536719d30856f9bbacc4ceb88c6f609f2b9aa7a71dc61a0d59

See more details on using hashes here.

File details

Details for the file vertexdata-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: vertexdata-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 399.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.13.0 Windows/11

File hashes

Hashes for vertexdata-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e329928224c34a6d08c3d36db121e0f837d67c6f3ed29fd770ec545ebf25bd1a
MD5 94c0d93885e3b706b3211a4584483a8d
BLAKE2b-256 e6a38f839ec746fa62561d1b5845b8258625c187d85f14b6535a55cb54354694

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page