I watched 7 hours of Digital Tutors tutorials about Maya Muscle to ramp up. I modeled all of my arms, made a basic IK - FK switching rig and painted skin weights on that. The muscle work is just getting started, I am still missing a couple more muscles in the forearm, the deltoids and at least the pectoralis.
One big change in my plan after a couple of hours of tests is that I am not going to implement the dynamic tessellation system in Maya. The DirectX 11 Ubershader that ships with Maya does not allow me to connect any kind of a node network to the tessellation map, meaning that I cannot overlay textures dynamically inside of Maya. In order for me to work around this inconvenience, I would need to hack the Ubershader to change the number of inputs and set the overlaying network from the shader itself instead of through Maya nodes. For the purpose of this research, implementing the system in Maya is not as important as putting it in the engine, so I opted to not even put in the time to try and tackle the CGFX shader.
July 15 to July 21:
July 22 to July 28:
Considering the restrictive time frame to develop this portfolio piece, I have decided to turn it into a research to determine the viability of a more involved piece I would work on in the future.
My goal is to determine if using dynamic tessellation through a DX11 shader to simulate muscles bulging in a character skeletal mesh would represent an improvement over baking Maya muscle simulation to joints or straightforward morph targets.
For this purpose I am going to model a human arm at three different resolutions and create the three rig variations on each of them. I am then going to implement all nine of them in engine and benchmark their performance in Unreal Engine 4.
I believe that using dynamic tessellation could potentially be a more viable method than at least blend shapes (specially for higher resolution meshes) because the necessary calculations are done in the GPU and it gives you easy LODs (no need to create extra meshes). However, I am not sure if the cost associated with storing an atlas texture with every potential deformation and the corresponding overlays and look ups as deformations trigger will result in slower performance than the baking of data to multiple joints.