You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For Halcyon I did a number of things that aren't currently in the OpenSim codebase. I'd class them in 2 areas. The first being Cost calculations that were designed to accurately reflect the complexity of the mesh so feedback was provided to a creator/user. The second is an optimal way to store and access materials. OpenSim currently stores material data as an asset.
I view the cost calculations as desirable if only because it provides an indication of the complexity of the mesh, Currently it's not uncommon for people to upload "hi-poly" mesh models without a thought to optimization and these models get a land impact of 1 (per SOP). There is code I can reuse for this in the Halcyon implementation although I'd revisit and update the actual calculations used.
The second area is optimization. Again in Halcyon when I implemented materials I did not use the then being developed OpenSim approach of storing the metadata for each part of a material (specular, normal, diffuse) in an asset. Assets are immutable and never go away and there are also lsl calls to modify the values. it's not that far fetched to imagine a scripted object spamming the asset server with updates. Texture of course are already stored as separate assets and i particular the diffuse texture settings and texture are stored in the PrimShape. In my implementation I extended the PrimShape to include the extra data for the Normal and Specular maps. This needs to be per-face but there is already a mechanism to manage that in PrimShape. An object rezzed on a region can get regular updates to this information via the caps and assets are not written until the object is taken back into inventory. The active data comes from the primtables in the database.
I'm going to start up the project section of the repo and add 2 projects for these activities. I'll keep them in a backlog until they are better defined. So feedback here is welcome.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
For Halcyon I did a number of things that aren't currently in the OpenSim codebase. I'd class them in 2 areas. The first being Cost calculations that were designed to accurately reflect the complexity of the mesh so feedback was provided to a creator/user. The second is an optimal way to store and access materials. OpenSim currently stores material data as an asset.
I view the cost calculations as desirable if only because it provides an indication of the complexity of the mesh, Currently it's not uncommon for people to upload "hi-poly" mesh models without a thought to optimization and these models get a land impact of 1 (per SOP). There is code I can reuse for this in the Halcyon implementation although I'd revisit and update the actual calculations used.
The second area is optimization. Again in Halcyon when I implemented materials I did not use the then being developed OpenSim approach of storing the metadata for each part of a material (specular, normal, diffuse) in an asset. Assets are immutable and never go away and there are also lsl calls to modify the values. it's not that far fetched to imagine a scripted object spamming the asset server with updates. Texture of course are already stored as separate assets and i particular the diffuse texture settings and texture are stored in the PrimShape. In my implementation I extended the PrimShape to include the extra data for the Normal and Specular maps. This needs to be per-face but there is already a mechanism to manage that in PrimShape. An object rezzed on a region can get regular updates to this information via the caps and assets are not written until the object is taken back into inventory. The active data comes from the primtables in the database.
I'm going to start up the project section of the repo and add 2 projects for these activities. I'll keep them in a backlog until they are better defined. So feedback here is welcome.
Beta Was this translation helpful? Give feedback.
All reactions