Giter Club home page Giter Club logo

lumo's Introduction

Win Lumo Linux Lumo

Lumo

Lumo is a realtime lab software arount 3D models

why this name ?

Lumo is "Light" in Esperanto, its a short and pretty word to me :)

Goals :

  • Implement all realtime rendering Algo used in Games / realtime Presentation softwares
  • Mastering all theses tech for learning purposes
  • Implement my own idea ( by ex related to SubSurface Scatering, or Shadows )
  • Implement a modern use of 3D vulkan Api, and Node Graph related stuff
  • Can Render mesh's or sdf's in the same way
  • And finally can export rendering to picture, video, and maybe a self little portable binary form to be used everywhere
  • Implement some specific VFX algo by plugigns like (compute based mesh sim, morphogenesis, sdf meshing)
  • all these algos at max as possible in GPU only (include mesh generation)

at least, support all rendering features and result of the SketchFab Renderer (yes im loving it haha)

Gettings Started

  • Create a new project (automatically saved when you quit the soft for the moment for easier dev)
  • Click right in the graph and add nodes.
  • Left mouse double click on a texture slot (Orange) of nodes for show the result in the 3d viewport
  • Middle mouse double click on a texture slot (Orange) of nodes for show the result in the 2d viewport
  • select a node and you can tune it in the tuning pane

thats all

How to build

Build dependencies

  • Vulkan SDK 1.2 at least : latest and a compatible GPU
  • Python 3.7 at least : latest

Succesfully Tested with Vulkan SDK 1.3.224.1

Cmake

You need to use cMake. You can use the gui (my prefered way). but, if you run cmake by command line, For the 3 Os (Win, Linux, MacOs), the cMake usage is exactly the same,

Choose a build directory. (called here my_build_directory for instance) and
Choose a Build Mode : "Release" / "MinSizeRel" / "RelWithDebInfo" / "Debug" (called here BuildMode for instance)
Run cMake in console : (the first for generate cmake build files, the second for build the binary)

cmake -B my_build_directory -DCMAKE_BUILD_TYPE=BuildMode cmake --build my_build_directory --config BuildMode

Some cMake version need Build mode define via the directive CMAKE_BUILD_TYPE or via --Config when we launch the build. This is why i put the boths possibilities

Platforms Support

all libs and code used here are cross platform, so compatible (win, linux).

The mac platform is not supported for the moment, due to the vulkan driver. Could be tested at some stage with the Molten-VK implementation..

Build Status Matrix

Target Win (x64) Linux (x64) MacOs (x64)
Lumo Build Status Build Status -
Plugin AudiArt Build Status Build Status -
Plugin CodeGenerator Build Status Build Status -
Plugin Landscape Build Status Build Status -
Plugin Lighting Build Status Build Status -
Plugin MeshGen Build Status Build Status -
Plugin Misc Build Status Build Status -
Plugin Particles Build Status Build Status -
Plugin Planet System Build Status Build Status -
Plugin Post Processing Build Status Build Status -
Plugin Screen Space Build Status Build Status -
Plugin Simulation Build Status Build Status -
Plugin Smoke Build Status Build Status -
Plugin RTX Build Status Build Status -

Lumo Native Nodes :

Category Name status Description
Assets/Loader Cube Map img load a cube amp texture
Assets/Loader Model img load a model
Assets/Loader Texture 2D img Load a texture
Assets/Saver Model Exporter img Export model to file. support sketchfab animations
Assets/Saver Texture Exporter img Export texture to file
Assets/Misc Grid img -
Assets/Misc Scene Merger img Meerge many node in the same FBO target
Assets/Renderer MatCap Renderer img Render a matcap on the model
Assets/Renderer Model Renderer img -
Assets/Utils Math img -
Assets/Utils Mesh Attribute img extract mesh attribute (pos, nor, tan, btan, col, depth)
Assets/Widgets Variable img -
Assets/Widgets Color img -

Lumo Plugins :

AudiArt Plugin :

Description :

Audio Manipulation for Art

Status :

Win Audiart Linux Audiart

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Effects / FFT Node img
✔️ Operations / Historize Node img
✔️ Sources / Speacker Node img
✔️ Viewers / Source Preview Node img
✔️ Viewers / Visu Hex Grid Node img
✔️ Windowing / Blackman FIlter Node img
BluePrints Plugin :

Description :

Blue Print node system like in Unreal Engine for shaders

Status :

Published Open Source Free status
img

Nodes:

Published Node status
Code Generator Plugin :

Description :

This plugin not expose nodes, but a pane for easy node generation ready to compile. you can set inputs and outputs of one or many nodes. then with one operation, generate base cades for :

  • node class
  • module class
  • pass class

Status :

Win Code Generator Linux Code Generator

Published Open Source Free status
✔️ ✔️ ✔️ img
Landscape Plugin :

Description :

Landscape generation

Status :

Win Landscape Linux Landscape

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
Lighting Plugin :

Description :

Status :

Win Lighting Linux Lighting

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Breaks / Break Texture 2D Group Node img
Exporters / Export Texture Group to file Node img
Joins / Join Texture 2D Group Node img
Lighting / Fog Node img
✔️ Lighting / Diffuse Node img
✔️ Lighting / Light Group Node img
✔️ Lighting / Refraction Node img
✔️ Lighting / Reflection Node img
✔️ Lighting / Model Shadow Node img
Lighting / RoughNess Node img
✔️ Lighting / Shadow Mappings Node img
✔️ Lighting / Specular Node img
✔️ Lighting / Cell Shading Node img
✔️ Preview / Cube Map Preview Node img
✔️ Preview / LongLat Preview Node img
✔️ Renderers / Deferred Renderer Node img
✔️ Renderers / PBR Renderer Node img
✔️ Renderers / Billboard Renderer Node img
✔️ Utils / Depth Converter Node img
✔️ Utils / Pos To Depth Node img
Utils / Cube Map to LongLat Node img
Utils / Cube Map To MatCap Node img
Utils / LongLat to Cube Map Node img
Utils / LongLat To MatCap Node img
✔️ Utils / Flat Gradient Node img
MeshGen Plugin :

Description :

Mesh generation

Status :

Win MeshGen Linux MeshGen

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Curve / Parametric Curve Node img
✔️ Curve / Parametric Curve Differential Node img
✔️ Mesh / Primitive Node img
Mesh Ops / Extrusion along path Node img
✔️ Surface / Parametric UV Surface Node img
MeshSim Plugin :

Description :

Simulation on mesh without texture or uv map

Status :

Published Open Source Free status
✔️ img

Nodes:

Published Node status
Lighting / Shadow Map Node img
Modifiers / Simulator Node img
Renderers / Renderer Node img
MeshSSS Plugin :

Description :

My Mesh Sub Surface Scattering (SSS) Idea

Status :

Published Open Source Free status
✔️ img

Nodes:

Published Node status
Misc Plugin :

Description :

Many misc nodes

Status :

Win Misc Linux Misc

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Misc / Layering Node img
✔️ Misc / Sdf Texture Node img
✔️ Modifiers / Smooth Normals Node img
✔️ Tesselation / Alien Rock Node img
MorphoGenesis Plugin :

Description :

Morphogenesis Nodes like on https://github.com/jasonwebb/morphogenesis-resources

Status :

Published Open Source Free status
img

Nodes:

Published Node status
Particles Plugin :

Description :

GPU particles nodes

Status :

Win Particles Linux Particles

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Emitters / Point Emitter Node img
Simulation / Simulation Node img
Constraints / Force Node img
Planet System Plugin :

Description :

A generation of planet system, like in Universe Sandbox

Status :

Win PlanetSystem Linux PlanetSystem

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Planet Node img
Post Processing Plugin :

Description :

Post Processing Effects

There is a summary nodes for all effects

Status :

Win Processing Linux Processing

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Postpro / Effects / Bloom Node img
✔️ Postpro / Effects / Blur Node img
✔️ Postpro / Effects / Chromatic Aberration Node img
Postpro / Effects / Color Corrector Node img
Postpro / Effects / Depth of Field Node img
✔️ Postpro / Effects / Dilation Node img
✔️ Postpro / Effects / Heat Map Node img
Postpro / Effects / Fog Node img
Postpro / Effects / Grain Node img
Postpro / Effects / LUT Node img
Postpro / Effects / Motion Blur Node img
Postpro / Effects / Outlining Node img
Postpro / Effects / Posteriztion Node img
Postpro / Effects / Pixelisation Node img
✔️ Postpro / Effects / Sharpness Node img
✔️ Postpro / Effects / Tone Mapping Node img
✔️ Postpro / Effects / Vignette Node img
✔️ Postpro / PostProcessing Node img
Screen Space Plugin :

Description :

Many nodes of Simulation

Status :

Win Simulation Linux Simulation

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Postpro / Effects / Screen Space Ambient Occlusion Node (SSAO) img
Postpro / Effects / Screen Space Interior Node (SSI) img
✔️ Postpro / Effects / Screen Space Reflection Node (SSRe) img
Postpro / Effects / Screen Space Refraction Node (SSRa) img
Simulation Plugin :

Description :

Many nodes of Simulation

Status :

Win Simulation Linux Simulation

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Differential Operators / Curl Node img
✔️ Differential Operators / Divergence Node img
✔️ Differential Operators / Gradient Node img
✔️ Differential Operators / Laplacian Node img
✔️ Simulation / GrayScott Node img
✔️ Simulation / Conway Node (Game of Life) img
Smoke Plugin :

Description :

GPU Smoke nodes

Status :

Win Smoke Linux Smoke

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
RTX Plugin :

Description :

Ray Tracing Integration (RTX)

Status :

Win RTX Linux RTX

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Builders / Model to Accel Structure Node img
✔️ Renderers / Model Shadow Node img
✔️ Renderers / PBR Node img
Renderers / SSS Node img
SdfEditor Plugin :

Description :

Sdf Editor like Magica CSG

Status :

Published Open Source Free status
img

Nodes:

Published Node status
SdfMesher Plugin :

Description :

Sdf to Mesh Generation

Status :

Published Open Source Free status
img

Nodes:

Published Node status
SoGLSL Plugin :

Description :

Scripting Over GLSL system for write shaders

Status :

Published Open Source Free status
img

Nodes:

Published Node status
UVDiffMap Plugin :

Description :

UV Mapper of high def Model based of Vertex Diffusion

Status :

Published Open Source Free status
img

Nodes:

Published Node status
VDBTools Plugin :

Description :

OpenVDB Nodes

Status :

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
Voxel Plugin :

Description :

Voxel Manipulation like Magicavoxel

Status :

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
VR Plugin :

Description :

Virtual Reality integration

Status :

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status

ScreenShots

v0.3.802 (Vulkan 1.2) :

A bloom effect implemented whith nodes v0_3_802

v0.2.798 (Vulkan 1.0) :

My Shadow mapping (max 8 lights), diffuse, specular and SSAO v0_2_794

v0.2.32 (Vulkan 1.0) :

My MeshSim plugin, with a basic deferred renderrer, one light shadow + ssao v0_2_32

Libraries used by Lumo :

And my libs :

lumo's People

Contributors

aiekick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lumo's Issues

The shadow module generate a validation layer issue, regarding layout of vkImage

[VULKAN][CommandBuffer] => Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x1e012e6f260, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x1e012e6f260[] expects VkImage 0x5b275900000000de[] (subresource: aspectMask 0x1 array layer 0, mip level 0) to be in layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL--instead, current layout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL.

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.