Coming Soon: Creating a GPU-Driven Wrap Deformer in Maya 2016

My next video series is in progress. You can check out the introduction video here and download the open source code on my GitHub.

14 thoughts on “Coming Soon: Creating a GPU-Driven Wrap Deformer in Maya 2016”

swapnil revankar July 3, 2015 at 3:11 am

Great ..will be waiting for it 🙂

chris July 4, 2015 at 5:44 am

Awesome and thanks Chad !

rishis3D July 13, 2015 at 7:52 am

Awesome Chad.. Waiting……………

cloudnix July 19, 2015 at 2:43 am

Amazing, will waiting it

Guy July 31, 2015 at 12:32 am

Great…!! Can’t wait 🙂
Thanks chad…

Janos August 12, 2015 at 1:41 pm

Hey Chad! Eagerly waiting for your tutorials, a true insipration!

Btw. I tried compiling it for winx64 – Maya 2016, but I allways get linker error. (For Maya 2015 it builds fine). Do you think that’s something on my side?

Greets, Janos

Chad August 12, 2015 at 10:39 pm

Could be something on your side. What are the errors?

I’m still cranking away on making the videos. Over 7 hours of content so far. Probably another 2-3 by the time it is all done.

Also, I think starting in Maya 2016, the devkit and header files are a separate install so make sure you have it installed to be able to compile.

Janos August 13, 2015 at 12:10 am

Thanks Chad, I figured it out it, it was something with the cmake files set to 2015 by default. Now it works flawlessly. Brilliant piece of code, this is like a godsend anyone using Maya on a production level. I’ll be first in the line, once your tutorial comes out. I watched your past tutorials like a billion times already 😀

Alex Hrazhdan September 7, 2015 at 8:05 am

Awesome Chad!!!

klaudius September 24, 2015 at 9:08 am

Hi chad. Very good piece of code indeed. very helpfull. Thx a lot.

I’m curious to know you opinion about this :
Just noticed that binding could be a little ‘data’ optimized. here are the sampleids and weight found for a wrapped vertex in a wrap between a sphere and a plane. there are some zero weighted vertex, and there are a lot of with 1/1000. (Sure it’s because my radius is too large)
it could be interesting to give a parameter with maximum ‘M’ count of samples per vertex, then get the ‘M’ greatest ones before normalization. tested it and got nearly same wrap results. It’s more convenient to limit computing time.
Noticed that last sample stored in maya attributes for a vertex is always ‘-1′ and could be removed in function calculateBinding (i know the last sample is not used in evaluatewrap).

[ 0] 0 0.00000000
[ 1] 0 0.00000000
[ 2] 0 0.00000000
[ 3] 7 0.000137172
[ 4] 66 0.000433220
[ 5] 4 0.000433221
[ 6] 44 0.000433221
[ 7] 117 0.000663139
[ 8] 114 0.000821553
[ 9] 20 0.001018187
[10] 98 0.001018188
[11] 32 0.001018188
[12] 89 0.001314237
[13] 13 0.001314237
[14] 23 0.001314237
[15] 108 0.001544152
[16] 101 0.001702567
[17] 6 0.002264134
[18] 5 0.002560185
[19] 55 0.002560185
[20] 116 0.002790101
[21] 115 0.002948516
[22] 19 0.003145152
[23] 87 0.003145154
[24] 43 0.003145154
[25] 34 0.003441202
[26] 78 0.003441202
[27] 14 0.003441202
[28] 107 0.003671118
[29] 102 0.003829533
[30] 76 0.005272117
[31] 18 0.005272117
[32] 54 0.005272118
[33] 67 0.005568165
[34] 15 0.005568167
[35] 45 0.005568167
[36] 106 0.005798083
[37] 103 0.005956497
[38] 97 0.006153133
[39] 31 0.006153133
[40] 90 0.006449183
[41] 24 0.006449183
[42] 17 0.007399080
[43] 65 0.007399082
[44] 16 0.007695131
[45] 56 0.007695131
[46] 105 0.007925045
[47] 104 0.008083460
[48] 30 0.008280098
[49] 86 0.008280098
[50] 42 0.008280098
[51] 79 0.008576148
[52] 35 0.008576148
[53] 25 0.008576148
[54] 96 0.008806064
[55] 91 0.008964479
[56] 75 0.010407061
[57] 53 0.010407062
[58] 29 0.010407063
[59] 68 0.010703112
[60] 46 0.010703113
[61] 26 0.010703113
[62] 95 0.010933030
[63] 92 0.011091445
[64] 64 0.012534026
[65] 28 0.012534026
[66] 57 0.012830077
[67] 27 0.012830077
[68] 94 0.013059993
[69] 93 0.013218408
[70] 85 0.013415045
[71] 41 0.013415045
[72] 80 0.013711096
[73] 36 0.013711096
[74] 74 0.015542009
[75] 52 0.015542010
[76] 40 0.015542011
[77] 69 0.015838059
[78] 37 0.015838061
[79] 47 0.015838061
[80] 84 0.016067976
[81] 81 0.016226390
[82] 39 0.017668974
[83] 63 0.017668974
[84] 58 0.017965024
[85] 38 0.017965024
[86] 83 0.018194940
[87] 82 0.018353356
[88] 73 0.020676956
[89] 51 0.020676956
[90] 70 0.020973004
[91] 48 0.020973006
[92] 50 0.022803919
[93] 62 0.022803921
[94] 49 0.023099970
[95] 59 0.023099970
[96] 72 0.023329884
[97] 71 0.023488300
[98] 61 0.027938865
[99] 60 0.028234916
[100] -1 0.033470925

Chad September 25, 2015 at 9:29 am

@klaudius Yes you could run some pruning functions on the weights if you wanted to. The last -1 index however is used to denote the closest point in the binding. Since it doesn’t reflect an actual vertex id, -1 is used to mark it.

mmikemott January 18, 2016 at 12:13 pm

Hi Chad,
thanks for sharing this plug-in, I’m trying to use it in Maya 2016 and I noticed a problem. I applied cvWrap deformer and grouped objects and moved, then the driven object moved twice. I think the base object doesn’t work properly… or is it still my mistake? I’m not confident… Would you let me know what your thoughts are on this matter.

Chad January 18, 2016 at 12:20 pm

If you group the objects, you will get a double transformation. The deformed mesh is moving from the wrap deformation and then it is moving again from the group transform transformation. You can either move the deformed mesh to a different group or in the attribute editor of the deformed mesh transform, uncheck Inherit’s Transform.

mmikemott January 18, 2016 at 1:09 pm

Thank you for your reply. For sure, it’s just like you were saying, it’s a double transformation from the group transform transformation and the wrap deformation, but I thought in this case the wrap deformer makes no deformation because the driver and the base is moved together in same group. I misunderstood…..
Unchecking Inherit’s Transform is a certain solution. I sincerely thank you for your polite and thorough response.

Leave A Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

<code> For inline code.
[sourcecode] For multiline code.