There's a level of detail implementation, that implies no interpolation, but that could be useful to assign on rendertime, different cdl files for agents depending on their distance to camera.
procedural
{
name arnoldMassive
dso "libarnoldMassiveRibReader.so"
load_at_init on
...
...
declare arnoldMassive_LOD_1_TYPE_1_OUT constant STRING
arnoldMassive_LOD_1_TYPE_1 "/absolute/path/to/your/first_LOD_agent_A.cdl"
declare arnoldMassive_LOD_1_TYPE_1_IN constant STRING
arnoldMassive_LOD_1_TYPE_1_OUT "/absolute/path/to/your/original_agent_A.cdl"
declare arnoldMassive_LOD_1_TYPE_1_limit constant FLOAT
declare arnoldMassive_LOD_1_TYPE_1_IN constant STRING
arnoldMassive_LOD_1_TYPE_1_OUT "/absolute/path/to/your/original_agent_A.cdl"
declare arnoldMassive_LOD_1_TYPE_1_limit constant FLOAT
arnoldMassive_LOD_1_TYPE_1_limit 1350
declare arnoldMassive_LOD_1_TYPE_2_OUT constant STRING
arnoldMassive_LOD_1_TYPE_2 "/absolute/path/to/your/first_LOD_agent_B.cdl"
declare arnoldMassive_LOD_1_TYPE_2_IN constant STRING
arnoldMassive_LOD_1_TYPE_2_OUT "/absolute/path/to/your/original_agent_B.cdl"
declare arnoldMassive_LOD_1_TYPE_2_limit constant FLOAT
declare arnoldMassive_LOD_1_TYPE_2_IN constant STRING
arnoldMassive_LOD_1_TYPE_2_OUT "/absolute/path/to/your/original_agent_B.cdl"
declare arnoldMassive_LOD_1_TYPE_2_limit constant FLOAT
arnoldMassive_LOD_1_TYPE_2_limit 1350
declare arnoldMassive_LOD_2_TYPE_1_OUT constant STRING
arnoldMassive_LOD_2_TYPE_1 "/absolute/path/to/your/second_LOD_agent_A.cdl"
declare arnoldMassive_LOD_2_TYPE_1_IN constant STRING
arnoldMassive_LOD_2_TYPE_1_OUT "/absolute/path/to/your/original_agent_A.cdl"
declare arnoldMassive_LOD_2_TYPE_1_limit constant FLOAT
declare arnoldMassive_LOD_2_TYPE_1_IN constant STRING
arnoldMassive_LOD_2_TYPE_1_OUT "/absolute/path/to/your/original_agent_A.cdl"
declare arnoldMassive_LOD_2_TYPE_1_limit constant FLOAT
arnoldMassive_LOD_2_TYPE_1_limit 1500
declare arnoldMassive_LOD_2_TYPE_2_OUT constant STRING
arnoldMassive_LOD_2_TYPE_2 "/absolute/path/to/your/second_LOD_agent_B.cdl"
declare arnoldMassive_LOD_2_TYPE_2_IN constant STRING
arnoldMassive_LOD_2_TYPE_2_OUT "/absolute/path/to/your/original_agent_B.cdl"
declare arnoldMassive_LOD_2_TYPE_2_limit constant FLOAT
declare arnoldMassive_LOD_2_TYPE_2_IN constant STRING
arnoldMassive_LOD_2_TYPE_2_OUT "/absolute/path/to/your/original_agent_B.cdl"
declare arnoldMassive_LOD_2_TYPE_2_limit constant FLOAT
arnoldMassive_LOD_2_TYPE_2_limit 1500
...
...
}
In this specific example, agents of type A closer than 1350 will stay with the original cdl file, agents farther than
1350 but closer than 1500 will go with the LOD_1_TYPE_1 specified cdl, and so on.
Detail levels must start at 1, can go as high as you want, and must be paired with a distance limit and an OUT for pairing on multiple agent scenarios.
There's an auto limit planned, but still under developement.