Giter Site home page Giter Site logo

mainframenzo / forkof.threejs-nodejs-exporters Goto Github PK

View Code? Open in Web Editor NEW

This project forked from letzcodeluxembourg/threejs-nodejs-exporters

0.0 0.0 0.0 97 KB

https://github.com/LetzCodeLuxembourg/threejs-nodejs-exporters

License: MIT License

JavaScript 100.00%

forkof.threejs-nodejs-exporters's Introduction

threejs-node-exporters

threejs-nodejs-exporters allow you load models and parse ThreeJs data structure and export them to native 3d formats based on NodeJS technology. We removed native browser dependencies and replaced them by substitutes used by NodeJS.

Usage

Basic usage

const THREE = require('three')
const NodeThreeExporter = require('@injectit/threejs-nodejs-exporters')
const fs = require('fs')

//generate cube
const geometry = new THREE.BoxGeometry( 1, 1, 1 )
const material = new THREE.MeshBasicMaterial( {color: 0x00ff00} )
const cube = new THREE.Mesh( geometry, material )

const exporter = new NodeThreeExporter()

const onComplete = buffer => {
  // do what you want with your model ex. save
  fs.writeFileSync('./model.gltf', buffer)
}

// generate buffer
exporter.generate('gltf', cube, onComplete)

Load model from url

const THREE = require('three')
const NodeThreeExporter = require('@injectit/threejs-nodejs-exporters')

const exporter = new NodeThreeExporter()

const onLoad = model => {
  // you can do anything with model ex. change material and add to scene
  const scene = new THREE.Scene()
  model.material = new THREE.MeshBasicMaterial( {color: 0x00ff00} )
  scene.add(model)

  exporter.generate('usdz', scene, buffer=>{...})
}

exporter.load('URL', onLoad)

Load model from file

const THREE = require('three')
const NodeThreeExporter = require('@injectit/threejs-nodejs-exporters')
const fs = require('fs')

const file = fs.readFileSync('./model.obj')

const onParse = model => {
  ...
}

const exporter = new NodeThreeExporter()

exporter.parse('obj', file, onParse)

API

.generate(format, object, onComplete, onError)

  • format(string) - format of generating file, available: usdz, gltf
  • object - Threejs Object3D
  • onComplete(func): callback that will be execute after buffer generate, providing buffer
  • onError(func): callback, execute when generating fails

.load(url, onComplete, onError)

  • url - url to model, available files format: gltf, glb, obj, fbx, stl
  • onComplete(func): callback that will be execute after file load, providing loaded 3D object
  • onError(func): callback, execute when loading fails

.load(format, buffer, onComplete, onError)

  • format(string) - format of parsing buffer, available: gltf, glb, obj, fbx, stl
  • buffer - model file buffer,
  • onComplete(func): callback that will be execute after file parse, providing parsed 3D object
  • onError(func): callback, execute when parse fails

Important! STLLoader generate and returns BufferGeometry, without materials

forkof.threejs-nodejs-exporters's People

Contributors

lukaszozimek avatar piotrosoba avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.