Skip to content

Latest commit

 

History

History
134 lines (90 loc) · 4.1 KB

INDEX.md

File metadata and controls

134 lines (90 loc) · 4.1 KB

kui logo INDEX

Welcome on the KUI module's documentation.

root INDEX CONFIG_NODE CONFIG_MANUAL CULLING API DEVELOPER

Use

Kui is meant to be used with an OpScript node.

You will first need to register the lua module, then you will need to choose how you want to import the module in Katana:

It is recommended to read at leat CONFIG_MANUAL fully and then CONFIG_NODE to properly understand how KUI works.

Installation

Kui is shipped as a lua module.

Kui also require the lllogger module to work.

As module

To register the kui module, you need to put the kui directory in a location registered by the LUA_PATH environment variable.

For exemple we put the kui directory in :

Z:\config\katana
└── kui
    ├── array.lua
    ├── hierarchical.lua
    └── ...

then our variable will be

set "LUA_PATH=%LUA_PATH%;Z:\config\katana\?.lua"
export LUA_PATH=$LUA_PATH:'/z/config/katana/?.lua'

See Lua | 8.1 – The require Function for more details.


The same need to be done for the lllogger module that you can find here :

https://github.com/MrLixm/llloger

You need to place in the root of the registered folder like :

Z:\config\katana
├── llloger.lua
└── kui
    └── ...

So we can simply do local logging = require("lllogger") (this line is used in all the modules).


You can then have a look at the CONFIG pages for the next steps.

Utilisation

Once installed you can use the pre-made node for a fast and easy setup or configure manually the scene. See CONFIG_NODE.md and CONFIG_MANUAL.md.

Version support

KUI has been developed on Katana 4.5.1, tested on 4.0.2 and 3.6.5. Lower versions should be supported but with no guarantees.

Misc

The code use Lua tables that cannot store more than 2^27 (134 million) values. I hope you never reach this amount of values. (something like 44mi points with XYZ values and 8,3 mi points for a Matrix attribute). A fix would be to instead use Katana's Array attribute class internally. Which is already logged as issue #3

Performances

Performances were measured only for hierarchical for now, as it the most heavy method. I should also specify that this is not some highly accurate measurement. It was only to give me a rough idea or wether I needed to run some optimisation on the code or not.

time given is Geolib Pre-traversal Report total time for a preview render using Arnold.

For Hierarchical :

version time
3.6.5 ~10s
4.5.1 ~15s

Time to process for Array method is too short to be worth measured.

You can have a look at all the tests I runned, compared to my original "straight-forward" script, here :

https://liamcollod.notion.site/kui-tests-afa7d35c08eb4c36be68e96c98923b47


root INDEX CONFIG_NODE CONFIG_MANUAL CULLING API DEVELOPER