GithubHelp home page GithubHelp logo

weifuwei163 / f4dconverter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gaia3d/f4dconverter

0.0 2.0 0.0 366 KB

Converter which converts various 3D format to F4D used in Mago3D

Home Page: http://www.mago3d.com

License: Other

C++ 59.99% C 40.01%

f4dconverter's Introduction

F4DConverter

This application, F4DConverter, is for converting popular 3D model formats into F4D format which is devised for Mago3D - 3D web geo-platform. (www.mago3d.com). This project is of Microsoft Visual Studio 2015 C++ project.

developer's comments before reading more

  • F4DConverter runs only in Windows 7 or later version of 64-bit OS.
  • Recently we changed this converter very much and opened this Github repository with the repository of previous version deprecated. This converter runs in pure console mode and makes newer version of F4D.
  • We discarded Lego structure and introduced NSM(Net Surface Mesh) for rougher LOD data structure. Detailed information about NSM will be released in www.mago3d.com
  • Full information and Window installer will be released SOON in www.mago3d.com (Newer specification of F4D and newer version of window installer)

supported input formats

  • .ifc
  • .3ds
  • .obj
  • .dae

Beside above formats, other formats which are supported by Assimp may be supported.(NOT TESTED!!)

In this version, .JT(Jupiter Tessellation, a kind of cad design format) is not included.

necessary libraries for F4DConverter

ifcplusplus, Assimp, and glew are for F4DConverter directly.

Carve, boost, and OpenSceneGraph are for ifcplusplus.

how to use

sample arguments

  • #inputFolder D:/data/data_3ds/DC_library_del_3DS #outputFolder D:/data/conversionResult #log D:/data/conversionResult/logTest.txt #idPrefix design_ #idSuffix _2017 #meshType 0 #oc y #usf 0.01
  • #outputFolder D:/dataConverted #indexing y

detailed information

  • #inputFolder [rawDataFolder] : an absolute path of the folder where raw data files to be converted are.
  • #outputFolder [F4DFolder] : an absolute path of the folder where conversion results(F4D datasets) are created.
  • #log [logFileFullPath] : an absolute path of a log file which is created after finishing conversion processes.
  • #idPrefix [prefix] : a prefix used in name of an F4D folder.
  • #idSuffix [suffix] : a suffix used in name of an F4D folder.
  • #oc [one of Y, y, N, n] : whether visibility indices for occlusion culling should be created or not. "NOT created" is default.
  • #usf [numericValue] : unit scale factor. Geometries in F4D are described in meter. That is, the unit scale factor of raw data described in centimeter is 0.01 for example.
  • #indexing [one of Y, y, N, n] : wheter objectIndexFile.ihe should be created or not. "NOT created" is default.
  • #meshType [one of 0, 1, 2] : type of 3D mesh in raw data. 0 is for semantic data, 1 is for large-sized single realistic mesh, 2 is for large-sized splitted realistic meshes. Realistic mesh means irregularily networked triangles such like point cloud
  • #isYAxisUp [one of Y, y, N, n] : Some 3D models support left-handed coordinate system so that y-axis is toward ceil of a building. this arguments describes wheter y-axis of raw data is toward ceil or not. "No" is default.

precautions for contraints

  • At least one of "#inputFolder" and "#indexing" is mandatory. Both arguments can be used together.
  • "#outputFolder", "#log", and "#meshType" are mandatory when "#inputFolder" is used.
  • "#outputFolder" is mandatory when "#indexing" is used. (So "#outputFolder" is mandatory in any case.)
  • It takes very looooooong time to create visibility indices. If "#oc y" is used, 99% of total conversion time is used in creaing visibility indices.
  • When "#idPrefix" and/or "#idSuffix" are used, the name of created F4D folder is F4D_|prefix|originalDataFileName|suffix|.
  • In this version, only "#meshType 0" is available. You can use other values with 1 line source code modification.
  • "#meshType 1" is for raw data of a single mesh of irregular triangle network in wide area(about (250-350)m x (250-300)m) with SINGLE texture file such like .obj files based on LIDAR data on city block.
  • "#meshType 2" is for raw data of splitted meshes of irregular triangle network in wide area(about (250-350)m x (250-300)m) with texture files of each meshes such like .obj files based on LIDAR data on city block.
  • All folder paths injected MUST exist before running the converter. F4DConverter doesn't create folders automatically.

stuffs under development or to be developed

Priority is not considered.

  • A version for Linux family will be released. A prototype is already made and we are trimming it.
  • We are considering changing the way of start this converter from passing arguments into this converter to loading a configuration file. As number of parameters used in controlling conversion processes increases, we see the necessity to introduce a configuration file like .ini file to offer much control point for end users.
  • We have plans to extend formats of input data supported by our converter for point cloud and .rvt
  • Data packing including tiling will be supported by F4D spec and request/response protocol of mago3d to reduce network traffic.
  • When converts multiple raw data with same coordinate system, to support matching local coordinates to GIS environment, coordinates on GIS environment will be exported.
  • Flexible LOD will be supported to handle 3D models of various geometric sizes.
  • As F4DConverter is developed for pure CLI mode, more screen logs will be supported.

f4dconverter's People

Contributors

shire75 avatar

Watchers

James Cloos avatar  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.