It has been a long time since our last update. For this, we apologize. We will try very hard to work on better communication of progress going forward. Thank you for your patience! We have been very busy and we wanted to wait until we were at the point where user-facing progress could be effectively shown in screenshots, video clips, and gifs. We have been working on several of the most challenging aspects of VaM2 since the last update, and we have completed tasks that will set new standards in how well VaM2 looks and performs compared to both VaM and competing projects out there.
What is VaM2?
For those who haven't followed our previous updates, VaM2 is the next-generation of VaM featuring an all new engine, next-gen rendering technology, and improved 3d models.
VaM2 Main Goals (unchanged since last update):
VaM2 is a huge undertaking. It will take a considerable amount of time before VaM2 will have a full feature set comparable to today's VaM release. After these last few months of work, it has become more clear what the first VaM2 playable alpha will look like and we are now planning on how to get that to all Patreon backers in the near future. More info on this towards the bottom of this post.
Summary of some of the work since the last update:
Dual Quaternion Skinning (DQS) engine
This type of skinning is not natively supported in game engines like Unity and Unreal. VaM used a custom built reproduction of the DAZ Studio Triax skinning system which was necessary for Genesis 2 models, but is no longer used for Genesis 3 and 8 models. Game engines come with Linear Blend Skinning (LBS) engines by default. The newer DAZ models really require a Dual Quaternion Skinning (DQS) engine to look good and reproduce exactly what is seen in DAZ Studio when posing the models. DQS also makes models beyond just DAZ Studio models look better, so this is a key feature for VaM2. We investigated some 3rd party tools for Unity to add on DQS, but found them all lacking in functionality, performance, or both. So we had to create our own DQS engine. We dove into the new Unity C# jobs system and burst compiler which delivers amazing performance without requiring the use of the GPU. This type of skinning is computationally complex and would not have been possible without this. This work is also forward looking to what VaM2 will need in the near future. The skinning engine in VaM2 needs to be capable of driving the next generation skin physics system on the CPU, which aims to vastly improve skin collision accuracy and allow soft body physics on nearly the entire skin. So the base resolution skinning engine also needed to run on the CPU to be able to properly feed the physics system the data. This is complete and ready to go.
Joint Controlled Morph (JCM) support
DQS is not enough to deliver natural looking joint bends. Joint Controlled Morphs (JCMs) are morphs that are set based on joint angles allowing joints to look correct when bent at more extreme angles. JCMs can also be used for muscle flexions, wrinkles, and many other possibilities.
The video and images below demonstrate the combination of DQS and JCMs in comparison to the base skinning engine.
High Definition (HD) mesh, morph, and skin engine
VaM used a mesh that was roughly 20000 vertices, and used GPU tessellation in select areas of the models to increase the resolution and avoid a blocky look. VaM2 is going well beyond this. To start, we are supporting a 4X resolution mesh and morphs, but we have also experimented with 16X resolution mesh and morphs and have that working on the CPU. The 16X mesh will be possible if performance of this engine is suffcieint once we have completed the GPU version of the DQS engine. While already functional on the CPU, the 16X resolution mesh morphing and skinning engine consumes too much CPU resource to be viable. It does, however, look amazing and allows even finer HD morph details and smoother curves. The current plan is to run the base resolution 1X mesh on the CPU to drive the skin physics engine, and run the 4X or 16X mesh on the GPU for final detailed rendering.
Images below show of what the HD mesh and morphs are capable of in VaM2!
4X meshes with HD morphs:
16X mesh and HD morphs:
1X to 4X to 16X comparison:
HDRP experiments:
All of the screenshots in this post are from Unity's High Definition Render Pipeline (HDRP), but should still be considered experimental and not final results. There are lots of parameters that can be tuned in both the shader materials and the HDRP system itself to change the overall appearance. VaM2 will expose all of these parameters to users to allow tweaking the look in game. We also plan to develop custom shaders to improve upon what is seen here even further. The default skin shader is pretty good, but we already see areas that can be improved. In addition to all of this, VaM2 will support custom user HDRP shaders so that creators can have nearly infinite possibilities in how things look inside VaM. Some sample screenshots from our experiments:
VaM2 Alpha
Goals for the first playable alpha:
It is too difficult to guess the estimated time required for the above tasks and any others that come up in getting the first alpha release completed. Therefore we are not making an estimate on release date at this time.
Performance:
Performance improvements is one of the key goals for VaM2. As such we spent a lot of time optimizing the work that has been done so far to make sure it won't produce a bottleneck. Results so far:
Example 1: With 2 characters at 4X mesh resolution running on the CPU skinning engine and 10 high-quality lights with full shadows, VaM2 runs at roughly 250FPS on our high-end test system. For comparison on this same system, VaM with physics turned off and with 2 characters at 1X mesh resolution and 8 forced pixel lights gets roughly 230FPS. In addition, this VaM2 test was running post processing effects like exposure control, color correction, and tone mapping while VaM was not as this was only possible using the popular PostMagic plugin from @MacGruber. VaM2 will essentially have PostMagic with a lot more post processing effects built in. While the baseline cost of HDRP is higher than the old rendering system used in VaM, HDRP is more efficient at running more lights so can result in higher performance on scenes with higher quality lighting.
Example 2: With 1 character and 3 lights, VaM2 runs at roughly 360FPS and VaM runs at roughly 380FPS. Same notes as above where VaM2 is running 4X resolution mesh and post process effects on top while VaM is not.
These VaM2 performance numbers are early. HDRP is still being developed and optimized. We still have a lot more to add to VaM2 which will slow things down. Physics was not considered here which is the primary bottleneck in VaM and will definitely be a large performance factor in VaM2 as well as we are aiming to make skin physics more accurate and enable full body soft physics. So please don't put much stock in these early numbers. The point of this section is to show that we are optimizing for performance from the start and will ensure VaM2 can run on a wide range of systems with a wide range of performance oriented user preferences.
Final Thoughts:
While there is still a ton of work ahead, we are more excited than ever for VaM2 and we have great forward momentum with a clear idea of what needs to be done. Thank you again for all of your amazing support on this project to date, and with your continued help and support we will make VaM2 the best adult sandbox application in existence!
What is VaM2?
For those who haven't followed our previous updates, VaM2 is the next-generation of VaM featuring an all new engine, next-gen rendering technology, and improved 3d models.
VaM2 Main Goals (unchanged since last update):
- Improve visual rendering to next-gen AAA quality.
- Improve physics. Improve collision accuracy. Improve realism of skin, body, clothing, and hair physics.
- Improve performance. Scale better with high-core-count CPUs. Offer more performance options that allow VaM to run on lower-end hardware and still be enjoyable.
- Improve usability.
VaM2 is a huge undertaking. It will take a considerable amount of time before VaM2 will have a full feature set comparable to today's VaM release. After these last few months of work, it has become more clear what the first VaM2 playable alpha will look like and we are now planning on how to get that to all Patreon backers in the near future. More info on this towards the bottom of this post.
Summary of some of the work since the last update:
- Completed highly optimized Dual Quaternion Skinning (DQS) engine. Necessary to make DAZ Studio Genesis 8 models look their best. It also makes other models beyond DAZ Studio models look better.
- Joint controlled morph (JCM) support. Necessary to make DAZ Studio Genesis 8 models look their best.
- Work on High Definition (HD) mesh, morph, and skin engine. Resolution on VaM2 models will be at least 4X higher than VaM models, allowing amazing details and smooth edges! We weren't sure this would even be possible, but we found a way and it looks and performs amazingly well!
- Experimented with a large range of varying models, materials, and textures in the asset import pipeline and Unity's High Definition Render Pipeline (HDRP) to begin streamlining the process of model creation for VaM2. We plan to offer users the same import and model creation capabilities that we use internally, paving the way for a lot more variation and capabilities for users making custom content.
Dual Quaternion Skinning (DQS) engine
This type of skinning is not natively supported in game engines like Unity and Unreal. VaM used a custom built reproduction of the DAZ Studio Triax skinning system which was necessary for Genesis 2 models, but is no longer used for Genesis 3 and 8 models. Game engines come with Linear Blend Skinning (LBS) engines by default. The newer DAZ models really require a Dual Quaternion Skinning (DQS) engine to look good and reproduce exactly what is seen in DAZ Studio when posing the models. DQS also makes models beyond just DAZ Studio models look better, so this is a key feature for VaM2. We investigated some 3rd party tools for Unity to add on DQS, but found them all lacking in functionality, performance, or both. So we had to create our own DQS engine. We dove into the new Unity C# jobs system and burst compiler which delivers amazing performance without requiring the use of the GPU. This type of skinning is computationally complex and would not have been possible without this. This work is also forward looking to what VaM2 will need in the near future. The skinning engine in VaM2 needs to be capable of driving the next generation skin physics system on the CPU, which aims to vastly improve skin collision accuracy and allow soft body physics on nearly the entire skin. So the base resolution skinning engine also needed to run on the CPU to be able to properly feed the physics system the data. This is complete and ready to go.
Joint Controlled Morph (JCM) support
DQS is not enough to deliver natural looking joint bends. Joint Controlled Morphs (JCMs) are morphs that are set based on joint angles allowing joints to look correct when bent at more extreme angles. JCMs can also be used for muscle flexions, wrinkles, and many other possibilities.
The video and images below demonstrate the combination of DQS and JCMs in comparison to the base skinning engine.
High Definition (HD) mesh, morph, and skin engine
VaM used a mesh that was roughly 20000 vertices, and used GPU tessellation in select areas of the models to increase the resolution and avoid a blocky look. VaM2 is going well beyond this. To start, we are supporting a 4X resolution mesh and morphs, but we have also experimented with 16X resolution mesh and morphs and have that working on the CPU. The 16X mesh will be possible if performance of this engine is suffcieint once we have completed the GPU version of the DQS engine. While already functional on the CPU, the 16X resolution mesh morphing and skinning engine consumes too much CPU resource to be viable. It does, however, look amazing and allows even finer HD morph details and smoother curves. The current plan is to run the base resolution 1X mesh on the CPU to drive the skin physics engine, and run the 4X or 16X mesh on the GPU for final detailed rendering.
Images below show of what the HD mesh and morphs are capable of in VaM2!
4X meshes with HD morphs:
16X mesh and HD morphs:
1X to 4X to 16X comparison:
HDRP experiments:
All of the screenshots in this post are from Unity's High Definition Render Pipeline (HDRP), but should still be considered experimental and not final results. There are lots of parameters that can be tuned in both the shader materials and the HDRP system itself to change the overall appearance. VaM2 will expose all of these parameters to users to allow tweaking the look in game. We also plan to develop custom shaders to improve upon what is seen here even further. The default skin shader is pretty good, but we already see areas that can be improved. In addition to all of this, VaM2 will support custom user HDRP shaders so that creators can have nearly infinite possibilities in how things look inside VaM. Some sample screenshots from our experiments:
VaM2 Alpha
Goals for the first playable alpha:
- Pose-able characters
- Morph-able characters
- Light movement and parameter control
- Limited material parameter control
- Post process and image effects (exposure, tone mapping, depth-of-field, etc.) control
- Save and load of scene
- Bone import system. The current JCM system is a bit hacked in as the bones imported from DAZ through FBX don't come aligned the same as they are in DAZ Studio. Correct alignment is necessary for JCMs to work correctly. We can port some of the bone import system from VaM to VaM2. In addition to JCMs, this also allows bone movement morphs to work.
- Complete morph import system and add support for bone movement morphs. Some of this work can be ported from VaM.
- Create basic physics/IK skeleton for figures to allow for posing with natural movements. Note this will not include collision.
- Node interaction system. This will allow controlling and moving objects and joints in the scene.
- Parameter and scene save system. Some of the parameter and scene save system can be ported from VaM, but we have improvements in mind for the parameter system to allow easy tie in to the animation system so this work will be done during porting. We are also adding an undo system to all parameters, including control node movements.
- Parameter (morphs, lights, materials, etc.) modification user interface
It is too difficult to guess the estimated time required for the above tasks and any others that come up in getting the first alpha release completed. Therefore we are not making an estimate on release date at this time.
Performance:
Performance improvements is one of the key goals for VaM2. As such we spent a lot of time optimizing the work that has been done so far to make sure it won't produce a bottleneck. Results so far:
Example 1: With 2 characters at 4X mesh resolution running on the CPU skinning engine and 10 high-quality lights with full shadows, VaM2 runs at roughly 250FPS on our high-end test system. For comparison on this same system, VaM with physics turned off and with 2 characters at 1X mesh resolution and 8 forced pixel lights gets roughly 230FPS. In addition, this VaM2 test was running post processing effects like exposure control, color correction, and tone mapping while VaM was not as this was only possible using the popular PostMagic plugin from @MacGruber. VaM2 will essentially have PostMagic with a lot more post processing effects built in. While the baseline cost of HDRP is higher than the old rendering system used in VaM, HDRP is more efficient at running more lights so can result in higher performance on scenes with higher quality lighting.
Example 2: With 1 character and 3 lights, VaM2 runs at roughly 360FPS and VaM runs at roughly 380FPS. Same notes as above where VaM2 is running 4X resolution mesh and post process effects on top while VaM is not.
These VaM2 performance numbers are early. HDRP is still being developed and optimized. We still have a lot more to add to VaM2 which will slow things down. Physics was not considered here which is the primary bottleneck in VaM and will definitely be a large performance factor in VaM2 as well as we are aiming to make skin physics more accurate and enable full body soft physics. So please don't put much stock in these early numbers. The point of this section is to show that we are optimizing for performance from the start and will ensure VaM2 can run on a wide range of systems with a wide range of performance oriented user preferences.
Final Thoughts:
While there is still a ton of work ahead, we are more excited than ever for VaM2 and we have great forward momentum with a clear idea of what needs to be done. Thank you again for all of your amazing support on this project to date, and with your continued help and support we will make VaM2 the best adult sandbox application in existence!