rgl2gltf: Read and
write .gltf and .glb files (original) (raw)
This R package contains functions to read, write and display.gltf and .glb files containing 3D models, following the official spec at khronos.org . It also contains functions to convertrgl scenes and mesh3d objects to and from glTF objects.
It is still in active development. Please add issues or pull requests if something important to you is missing.
A pkgdown website is here: https://dmurdoch.github.io/rgl2gltf/dev/
To install from CRAN, run
install.packages("rgl2gltf")To install the development version, run
remotes::install_github("dmurdoch/rgl2gltf")Sample code:
library(rgl)
library(rgl2gltf)
gltf <- readGLB("https://github.com/KhronosGroup/glTF-Sample-Models/blob/master/2.0/2CylinderEngine/glTF-Binary/2CylinderEngine.glb?raw=true")
mesh <- as.mesh3d(gltf)
plot3d(gltf)
snapshot3d(webshot = FALSE, filename = "man/figures/engine.png")
Copyright
Most of this package is written by Duncan Murdoch and licensed under GPL 2.0.
Sample files in inst/glb andinst/localtests are unmodified copies of files from https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0, and have details of copyright and licenses listed there. All have permissive licenses, some requiring acknowledgment.
Files in inst/localtests are in the Github repository, but are not included in the package tarball.
Briefly,
2CylinderEngine.glbwas produced by Okino Computer Graphics.AlphaBlendModeTest.glb,NormalTangentTest.glbandNormalTangentMirrorTest.glbwere created by Ed Mackey and are owned by Analytical Graphics, Inc., licensed under CC-BY 4.0 https://creativecommons.org/licenses/by/4.0/.AntiqueCamera.glbwas produced by Maximilian Kamps and UX3D.Avocado.glbwas produced by Microsoft.BarramundiFish.glbwas produced by Microsoft.BoxAnimated.glbandRiggedSimple.glbwere produced by Cesium.BrainStem.glbwas created by Keith Hunter and is owned by Smith Micro Software, Inc.DamagedHelmet.glbwas created by theblueturtle_.
Files src/mikktspace.c and src/mikktspace.hare written by Morten S. Mikkelsen and used under the permissive license included within them, with slight modifications for C99 compatibility.