|
1 | | -# SkinPlusPlus |
| 1 | +<h1 align="center"> |
| 2 | +<!-- <br> |
| 3 | + <a href="http://www.amitmerchant.com/electron-markdownify"><img src="https://raw.githubusercontent.com/amitmerchant1990/electron-markdownify/master/app/img/markdownify.png" alt="SkinPlusPlus" width="200"></a> |
| 4 | + <br> --> |
| 5 | + SkinPlusPlus |
| 6 | + <br> |
| 7 | +</h1> |
| 8 | + |
| 9 | +<h4 align="center">Agnostic python bindings written in c++, for working with skin data in DCC's</a>.</h4> |
| 10 | + |
| 11 | +<p align="center"> |
| 12 | + <a href="https://github.com/munkybutt/SkinPlusPlus/blob/main/LICENSE"> |
| 13 | + <img src="https://img.shields.io/github/license/munkybutt/SkinPlusPlus?style=for-the-badge" |
| 14 | + </a> |
| 15 | + <a href="https://badge.fury.io/gh/munkybutt%2FSkinPlusPlus"> |
| 16 | + <!-- <img src="https://badge.fury.io/gh/munkybutt%2FSkinPlusPlus.svg?style=for-the-badge"> --> |
| 17 | + <img src="https://img.shields.io/github/release/munkybutt/SkinPlusPlus?style=for-the-badge"> |
| 18 | + </a> |
| 19 | + <a href="https://saythanks.io/to/munkybutt"> |
| 20 | + <img src="https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg?style=for-the-badge"> |
| 21 | + </a> |
| 22 | + <a href="https://www.paypal.me/munkybuttballs"> |
| 23 | + <img src="https://img.shields.io/badge/$-donate-ff69b4.svg?maxAge=2592000&style=for-the-badge"> |
| 24 | + </a> |
| 25 | +</p> |
| 26 | + |
| 27 | +<p align="center"> |
| 28 | + <a href="#key-features">Key Features</a> • |
| 29 | + <a href="#performance">Performance</a> |
| 30 | +</p> |
| 31 | + |
| 32 | + |
| 33 | +## Key Features |
| 34 | +* Save and load skin data with speed |
| 35 | + - Logic is written in c++ but exposed with python bindings |
| 36 | + |
| 37 | +* Work directly with numpy ndarrays |
| 38 | + - The python bindings accept and return numpy ndarrays for optimal performance |
| 39 | + |
| 40 | +* Currently supported DCCs: |
| 41 | + - 3DsMax: |
| 42 | + - Provided bindings are for 2022, but the backend should be compatible with any version of 3DsMax that has python |
| 43 | + |
| 44 | +## Performance |
| 45 | +3DsMax 2022 |
| 46 | +| Method | Time in seconds | x Faster | % Faster | |
| 47 | +|---------------------------------------------|---------------------|----------------------|----------------------| |
| 48 | +| pymxs -> list | 20.34769090000009 | base line | base line | |
| 49 | +| maxscript -> numpy array | 15.51825759999997 | 1.3112097649416599 x | 131.12097649416597 % | |
| 50 | +| maxscript -> list | 14.42323169999986 | 1.4107580966060669 x | 141.0758096606067 % | |
| 51 | +| SDK primative -> list | 7.435437399999955 | 2.7365829076847867 x | 273.65829076847865 % | |
| 52 | +| SDK function publish -> list | 6.338866400000143 | 3.2099889185232917 x | 320.99889185232917 % | |
| 53 | +| SDK struct primative -> list | 5.98266609999996 | 3.4011075597216136 x | 340.11075597216137 % | |
| 54 | +| pybind11 automatic -> numpy array | 1.2681291999999758 | 16.045439928360988 x | 1604.5439928360988 % | |
| 55 | +| pybind11 move -> numpy array | 1.09791139999993 | 18.533090101807293 x | 1853.3090101807293 % | |
| 56 | +| pybind11 copy -> numpy array | 0.9864563000000999 | 20.627057579740764 x | 2062.7057579740763 % | |
| 57 | +| pybind11 -> list | 0.9028401000000486 | 22.537424844110262 x | 2253.7424844110265 % | |
| 58 | +| pybind11 reference_internal -> numpy array | 0.4243109000001368 | 47.954674037347445 x | 4795.467403734745 % | |
| 59 | +| pybind11 automatic_reference -> numpy array | 0.4236172999999326 | 48.03319151508526 x | 4803.3191515085255 % | |
| 60 | +| pybind11 take_ownership -> numpy array | 0.41753419999986363 | 48.73299217167536 x | 4873.299217167536 % | |
| 61 | +| pybind11 reference -> numpy array | 0.41740709999999126 | 48.747831313843285 x | 4874.783131384329 % | |
| 62 | +<!--## |
| 63 | +## How To Use |
| 64 | +
|
| 65 | +Support |
| 66 | +<a href="https://www.buymeacoffee.com/5Zn8Xh3l9" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/purple_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a> |
| 67 | +
|
| 68 | +<p>Or</p> |
| 69 | +
|
| 70 | +<a href="https://www.patreon.com/amitmerchant"> |
| 71 | + <img src="https://c5.patreon.com/external/logo/[email protected]" width="160"> |
| 72 | +</a> |
| 73 | +
|
| 74 | +--> |
| 75 | + |
| 76 | +## Personal Info |
| 77 | +> Webbie [techanimdad.com](https://techanimdad.com) · |
| 78 | +> GitHub [@munkybutt](https://github.com/munkybutt) |
0 commit comments