Giter Site home page Giter Site logo

andrewhazelden / cloudcompare4d Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cloudcompare/cloudcompare

10.0 10.0 0.0 69.71 MB

CloudCompare4D is a fork of CloudCompare that will unlock new volumetric video tools in the GUI and CLI interfaces, a sequence playback timeline and play controls, along with a batch processing queue, and Lua/Python scripting.

License: Other

CMake 1.10% C++ 85.59% Batchfile 0.01% QMake 0.07% C 12.86% GLSL 0.10% HTML 0.11% Makefile 0.02% Shell 0.03% Inno Setup 0.11%
alembic gltf hologram lidar lightfield luajit photogrammetry pipeline python rib usda usdz videogrammetry volumetric vrscene

cloudcompare4d's People

Contributors

alexmyczko avatar andersgb avatar andrewhazelden avatar ao2 avatar asmaloney avatar davidcaron avatar dgirardeau avatar eric-haines avatar erwi avatar harrysummer avatar hroncok avatar jarett-lee avatar jianboqi avatar jsmorard avatar luca-penasa avatar mankoff avatar nine7nine avatar norbertwenzel avatar paulmatlashewski avatar peterjcc avatar pierstitus avatar renatogarcia avatar rjanvier avatar saldiangelus avatar samthiele avatar tmontaigu avatar tomcrowder avatar tones29 avatar whatnick avatar wpqjbzwm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cloudcompare4d's Issues

[Feature Request] Point Sampling on Mesh - From UV Coords

CloudCompare has a Points Sampling on mesh feature that allows a polygon model to be converted into a point cloud. You can access this feature from the Edit > Mesh > Sample Points menu.

2019-01-10 standard obj mesh with cloudcompare sample points menu

The Points Sampling on mesh tool supports the conversion of RGB texture maps assigned to the polygon model into RGB color values stored on each of the point samples in the point cloud output.

2019-01-10 cloudcompare points sampling on mesh dialogue

An interesting new feature to have in the Points Sampling on mesh dialog would be the addition of a [x] From UV Coords checkbox.

The idea behind a From UV Coords option would be that the polygon model's UV Layout coordinates could be baked into a "UV Pass" gradient map that would be assigned to the point cloud RGB colors instead of using the [x] or from material/texture if available option in the dialog.

A UV Pass gradient map is an red/green colored image that corresponds to a polygon model' UV Layout 0-1 texture coordinates. A UV pass map is often used to re-texture an object in the visual efffects industry as part of 2D image based compositing stage done with EXR based multi-channel imagery.

uv coordindates as a uv pass gradient

Inside of an entertainment industry focused volumetric point cloud workflow, there are useful applications for this same idea of storing the models' original UV coordinates on each point sample.

I think it would be handy if the Points Sampling on mesh tool could snapshot a polygon model's underlying UV layout coordinates and then push those values as 0-1 range floating point RGB versions of the UV coordinates that would be stored on each point sample in the final point cloud.

This data would make it possible to do point cloud RGB color re-texturing effects, VJ (video jockey) like video projection mapping approaches, and simulated environment mapping on a point cloud sequence/static point cloud model when it is played back later in a game engine, or when the point cloud is loaded in tools like Houdini, TouchDesigner, Notch, Nuke, or Fusion.

Right now the rough workaround for doing this UV coordinate to point cloud RGB conversion concept is to manually edit the polygon OBJ .mtl texture by hand to replace the standard file based texture map on the polygon model with an externally created UV pass map image.

newmtl uvmapSG
Ka 1 1 1
Kd 1 1 1
d 1
Ns 0
illum 1
map_Kd uv_pass.1.png

This newly updated OBJ model with an assigned UV pass texture map can then be run through the existing Points Sampling on mesh tool using the [x] or from material/texture if available option in the dialog.

uv coordinates baked onto a polygon model s uv layout

The final result in CloudCompare would be an .e57 point cloud file that looks visually like the following image:

2019-01-10 uv pass retexturing on point clouds 1
2019-01-10 uv pass retexturing on point clouds 2
2019-01-10 uv pass retexturing on point clouds 3
2019-01-10 uv pass retexturing on point clouds 4

2019-01-10 [Feature Request] Lua and Python Support

The CloudCompare software currently has a visual GUI and a command line interface for editing mesh and point cloud data. The CloudCompare CLI is very powerful at allowing users to batch process models and supports complex editing operations.

If CloudCompare added LuaJIT and Python scripting support to the CloudCompare GUI and CLI tools it would be possible to take mesh processing workflows further and fully pipeline automate complex multi-step tasks.

A scripting system would dramatically boost the tool's capabilities. A script could probe the current scene graph's state to determine the correct setting to use when performing computationally intense operations. A script that was running inside of CloudCompare would be able to edit the DB Tree, the model properties, do automated tasks like model opening, run "Edit" and "Tool" menu item features, perform file saving and closing operations, and support advanced workflow automation with branching and flow control logic.

CloudCompare currently has a Console tab in the GUI session. With the addition of a Script Editor window batch workflows would be supported and the results could be echoed to the Console view.

cloudcompare console

If there was a scripting layer in CloudCompare, the existing Toolbar system could be expanded to allow for user-created Toolbars that would let the user create their own custom tool buttons. Each custom Tool button would run user defined scripts/code chunks, support the entry of a tooltip caption, and the linking of an icon image for each button. This would be identical to Houdini Toolbars and Maya's Shelf system.

cloudcompare toolbar menu

Additionally, inter-application communication would be possible in CloudCompare via the scripting layer if an RPC protocol was enabled in the integrated scripting system. Having an RPC capability would enable multiple systems running CloudCompare to work collaboratively on batch processing media in a queue and make it possible to have a CloudCompare "cluster" of batch render nodes all work together in an automated fashion to each grab a model and batch process it locally.

Also, when the CloudCompare CLI is started from a terminal session, you could define a remote system and that CLI task could be passed automatically to another node to compute the result.

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.