MMDViewer 01-overview based on DirectX11, directx11mmdviewer
This project is mainly for DirectX11. We have previously made a project about OpenGL. This time we plan to use DirectX11 as a MMD Model Browser. In the past, I used DirectX11 to do some projects, but it was abandoned halfway. After Simple2D, we decided to use DirectX11 as a simple model browser-MMDViewer.
Of course, I am not clear about what this project will do. I have never learned much about it before. Like Simple2D, it was intended to take a week or two and later found that it was out of my knowledge. In the middle, it is done by constantly searching other people's articles or source code. It takes several months to complete Simple2D.
Project Introduction
This software is similar to Mikumikudance, but its functions and effects are not so good. The main purpose is to learn DirectX11. The implementation functions are as follows:
1. display of pmd and pmx 3D Models
2. Model Bone animation and camera animation
The following is a class diagram of the entire project:
Project outline:
1. Build a DirectX11 rendering framework
This part is just to build a simple framework and render a cube. Considering people who do not know much about DirectX11, I plan to provide a tutorial on DirectX11 in this section. In fact, this is not a tutorial. I just shared my DirectX11 experience. In the second part, I will improve this framework.
Ii. Analysis and rendering of MMD Models
On the Internet, it is difficult for you to find articles on Parsing files such as pmd, pmx, and vmd. Fortunately, you can find an mmd library to parse their source code: itsuhane. With 3D model data, use DirectX11 for rendering. To this end, we need to expand the first part of the framework, including texture reading, coloring tool encapsulation, and camera design. The third part of the content can be carried out only after the framework is set up.
3. Bone animation and deformation (emoticons) Animation
The animation consists of three parts: skeleton animation, deformation animation, and camera animation. The implementation of skeleton animation relies on reading vmd action data to drive the model. The design of the model skeleton includes FK and IK. IK is the most difficult part. Deformation animation is mainly used to manipulate vertices. Therefore, when designing a rendering framework, you must separate the vertex position data from other data (normal, texture coordinate, and bone data. Camera animation implementation is not difficult. It depends on how your camera is designed.
4. Create an interface using ImGui
The last part is to establish a simple interface to implement model selection, which is relatively simple. The ImGui library is used here for easy learning.
Directory (updated with the document)
01. DirectX11-Introduction to MMDViewer 01
02. Create a window based on DirectX11 MMDViewer 02
03,
Source code download (more updated with the article): https://github.com/forEmail/MMDViewer