GithubHelp home page GithubHelp logo

edisonlee0212 / rhizomorph Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 2.0 169.65 MB

Offical implementation of the paper "Rhizomorph: The Coordinated Function of Shoots and Roots"

License: BSD 3-Clause "New" or "Revised" License

CMake 0.88% C++ 94.43% GLSL 4.33% Batchfile 0.09% Shell 0.06% Python 0.21%

rhizomorph's Introduction

Rhizomorph: The Coordinated Function of Shoots and Roots

This repository is an offical implementation of the paper Rhizomorph: The Coordinated Function of Shoots and Roots.

Build instructions:

[! ! !]Prior to building process, please unzip the /Source Code/UniEngine/3rdParty/physx/physx.zip*. The project is tested under Windows 10 pro (version 22H2)

Step 1: Visual Studio:

Please make sure you installed Visual Studio 2022 with “Desktop development with C++” selected:

Pic1

Step 2: Open as CMake project:

Open the EcoSysLab folder as a project in Visual Studio 2022. The Visual Studio will automatically recognize it as a CMake project.

Pic2

Step 3: Setup building configurations:

Wait for a little while until Visual Studio loaded the CMake project, and you should see building configurations are set:

Pic3

Step 4: Build:

Open the drop-down menu for building target by clicking the button highlighted with blue box, and select EcoSysLab.exe and click start button marked with red box to start building

Pic4 Pic5

Application instructions:

Step 1: Welcome menu:

Once you have the framework opened, click the “Create or load New Project” button:

Pic6

Step 2: Open sample project:

In the file dialog, select the “Project.ueproj” provided in the /SourceCode/Project folder

Pic7

Step 3: Tree growth, camera movements:

You should be able to see the project is loaded and the framework’s running. The project folder comes with a sample scene. Select EcoSysLab Layer panel and check “Auto grow” box to see the tree start growing. To move the camera in space, press and hold mouse right button and move with "W, A, S, D, Shift, Ctrl". To rotate camera, press and hold mouse right button and move the mouse.

Pic8

You should be able to see the tree with its root system:

Pic9

Step 4: Generate meshes:

Click "Generate Meshes" button in EcoSysLab Layer panel and navigate to scene panel you will see the mesh for tree is generated.

Pic10

Step 5: OBJ export:

To export mesh as OBJ, select (either from Entity Explorer panel or directly click the object in scene panel) the target entity named "Branch Mesh" as one of the children of "Butter" entity which contains the MeshRenderer that provides the rendering for branches. Find the Temporary Mesh button which links to the branch mesh asset, double click it and it will show up in the Asset Inspector panel. You can then click Export as OBJ button to save branch mesh as OBJ on your disk.

Pic11

Step 6: OBJ export (Continued):

You can export branch mesh, root mesh, and foliage mesh, but not fine root mesh. The fine root mesh is not stored as triangular mesh, but curves that is expand to mesh with geometry shader within the framework on GPU. Here's a screenshot of what does exported meshes look like in MeshLab:

Pic12

rhizomorph's People

Contributors

edisonlee0212 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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.