- Added
doubleSidedMaterial
option to force materials to be rendered double sided. #294 - Strip file paths of any enclosing double-quotes to allow the mtl/texture files to be properly parsed #297
- Update npm module dependencies.
- Fixed crash when writing GLB files above 2GB. #280
- Unlocked CesiumJS package now that CesiumJS 1.86.1 is released with a fix for Node 16. #270
- Fixed bug where missing .mtl files were no longer being handled gracefully in Node 16. #268
- Fixed parsing models with tab separated elements like those exported from Tinkercad. #259
- Locked CesiumJS to 1.84.0 to prevent "ReferenceError: Blob is not defined" error when running obj2gltf.
- Removed
minFilter
andmagFilter
from generated samplers so that runtime engines can use their preferred texture filtering. #240 - Triangle winding order sanitization is longer done by default. Use the
--triangle-winding-order-sanitization
option. #236
- Fixed security warnings by updating outdated npm dependencies. #254
- Added back
inputUpAxis
andoutputUpAxis
. #211 - Fixed handling of mtl and texture absolute paths. #219
- Fixed specular image not being decoded when referenced by other textures. #217
- Fixed parsing faces that reference non-existing attributes. #218
- No longer printing texture decode warning if the diffuse and alpha textures are the same. #205
- Fixed parsing of negative face indices. #191
- Fixed a crash when saving separate resources that would exceed the Node buffer size limit. #173
- Fixed handling of materials that don't have names. #173
- Breaking changes
- The
--materialsCommon
flag has been removed. Use--unlit
instead which uses theKHR_materials_unlit
extension. #152
- The
- Improved handling of primitives with different attributes using the same material. Materials are now duplicated. #162
- Fixed a bug where primitives without texture coordinates could use materials containing textures. Those textures are now removed. #162
- Improved parsing of faces with mismatching attributes. #161
- Improved parsing models with concave or n-sided faces. #157
- Fixed handling of objs with interleaved materials. #155
- Fixed handling of objs with mismatching attribute layouts. #153
- Fixed normalization of Windows paths when running the converter on Linux. #150
- Added ability to use the first material in the mtl file when the obj is missing
usemtl
. #133 - Fixed handling of unnormalized input normals. #136
- Fixed handling of materials where the diffuse and ambient texture are the same. #127
- Added ability to load alpha textures. #124
- Fixed handling of
usemtl
when appearing before ano
org
token. #123 - Fixed output name when running from the command line. #126
- Fixed loading faces that contain less than 3 vertices. #120
- Attempt to load missing materials and textures from within the same directory as the obj. #117
- Fixed loading mtllib paths that contain spaces. #116
- Fixed checking for transparency when the diffuse texture is used in another texture slot. #115
- Fixed parsing mtl textures that contain texture map options. #109
- Added back support for the
CONSTANT
technique when a model uses theKHR_materials_common
extension and has no normals. #108 - Improved handling of materials with alpha. If the alpha value is 0.0 it is now treated as 1.0. #107
- Breaking changes
- Obj models now convert to glTF 2.0. Possible material profiles are
metallicRoughness
,specGlossiness
(using theKHR_materials_pbrSpecularGlossiness
extension), andmaterialsCommon
(using theKHR_materials_common
extension). - Removed
gltf-pipeline
dependency. The following options have been removed:compress
,optimize
,generateNormals
,optimizeForCesium
,ao
, andbypassPipeline
. - Removed
inputUpAxis
andoutputUpAxis
. This stage will be incorporated intogltf-pipeline
instead. obj2gltf
no longer takes agltfPath
argument and saves a glTF file. Instead it returns a promise that resolves to the glTF JSON or glb buffer.
- Obj models now convert to glTF 2.0. Possible material profiles are
- Change texture sampling to use
NEAREST_MIPMAP_LINEAR
by default. #83. - Fixed lighting when generating normals. #89
- Fixed
CHANGES.md
formatting.
- Added ability to convert the up-axis of the obj model. #68
- Fixed issues with an extra .bin file being saved when using
--separate
. #62 - Fixed issue where an ambient color of
[1, 1, 1]
overly brightens the converted model. #70
- Breaking changes
- To use
obj2gltf
as a library, callrequire('obj2gltf')(input, output, options)
. The previous calling code wasrequire('obj2gltf').convert(input, output, options)
. - Many library options and command-line parameters have been renamed.
- To use
- Project cleanup. #49
- Speed improvements, especially for larger models.
- Preserves the objects and groups in the obj.
- Added documentation and tests.
- Material fixes.
- Update gltf-pipeline to 0.1.0-alpha9
- Added command to generate documentation (npm run jsdoc)
- Changed obj2gltf.js line endings from CRLF to LF in npm package.
- Fixed incorrect parameter to the gltf-pipeline.
- Added compression flag for quantizing positions, compressing texture coordinates, and oct-encoding normals.
- Fixed a bug causing models with no mtl file to not convert.
- Converted the API to now use promises instead of callbacks. #21
- Added the ability to optimize the converted glTF for CesiumJS by using the sun as a default light source.
- Updated to use gltf-pipeline 0.1.0-alpha2.
- Initial release.