processing / p5.js

p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. http://twitter.com/p5xjs —
http://p5js.org/
GNU Lesser General Public License v2.1
21.11k stars 3.22k forks source link

Support for `.mtl` Files with Textures #6924

Open SableRaf opened 3 months ago

SableRaf commented 3 months ago

Increasing access

This enhancement would make it easier for people to use pre-made 3D models within their p5.js projects. It would broaden the creative possibilities for artists and designers by enabling more detailed and textured 3D models within p5.js projects.

Most appropriate sub-area of p5.js?

Feature enhancement details

Since version 1.9.2, p5.js supports .mtl files, but only for vertex colors (see processing/p5.js#6710).

This request aims to extend that support to include textures loaded by an .mtl file. Implementing this feature would involve creating a new data structure capable of handling both 3D models and their associated textures, potentially multiple per model.

Example sketch with a single texture: https://aijs.io/editor?user=sableraph&project=multiTextureMaterial_test

SableRaf commented 3 months ago

For reference, here's how Processing parses .mtl files: processing/core/PShapeOBJ.java#L320