基于 DirectX11 的 MMDViewer 01-简介
2018-06-17 21:14:55来源:未知 阅读 ()
这个项目主要是为了 DirectX11 而来,前面做了一个关于 OpenGL 的项目,这次打算使用 DirectX11 来做一个 MMD 的模型浏览器。以前,我使用过 DirectX11 来做过一些项目,但都半途而废了。在做完 Simple2D 后,现在决定使用 DirectX11 来做一个简单的模型浏览器——MMDViewer。
当然,这个项目究竟会怎么样我也不清楚,里面涉及到的很多知识我以前也没有学习过。就像 Simple2D 那样,本来打算花一两周完成的,后来发现它超出了我的知识范围。中间都是不断搜索其他人的文章或源码来完成的,结果完成 Simple2D 时花费了几个月。
项目介绍
类似 Mikumikudance 这个软件,不过功能和效果没有这么好。主要的目的是 DirectX11 的学习,实现功能如下:
1、pmd、pmx 3D模型的显示
2、模型的骨骼动画和摄像机动画
下面是整个项目的类图:
项目大纲:
一、搭建 DirectX11 渲染框架
这部分只是搭建一个简易的框架,渲染出一个立方体即可。考虑到有不太了解 DirectX11 的人,打算在这部分做一个 DirectX11 的教程。其实也不算教程,只是将我学习 DirectX11 的经验分享出来。在第二部分,我会完善这个框架。
二、MMD 模型的解析和渲染
在网络上你很难找到有关 pmd、pmx、vmd 等文件解析的文章,不过幸运的是,你能找到一份解析它们的源码:itsuhane 的 mmd 库。有了3D模型的数据,接下来就使用 DirectX11 进行渲染。为此需要对第一部分的框架进行扩展,包括:纹理的读取、着色器的封装、摄像机的设计。只有将框架搭建好了,才能进行第三部分的内容。
三、骨骼动画和变形(表情)动画
这里包括三个部分的动画:骨骼动画、变形动画和摄像机动画。骨骼动画的实现,依靠读取 vmd 动作数据驱动模型,设计模型骨骼时包括 FK 和 IK,其中 IK 是最难的一部分。变形动画主要是对顶点的操纵,所以设计渲染框架时要将顶点的位置数据和其他数据(法线、纹理坐标、骨骼数据)分开。摄像机动画实现不难,就看你的摄像机怎样设计了。
四、使用 ImGui 制作界面
最后一部分就是建立简单的界面,实现模型的选择等,比较简单。这里选用了 ImGui 库,学习简单。
软件展示
目录(更随文章的更新)
01、基于 DirectX11 的 MMDViewer 01-简介
02、基于 DirectX11 的 MMDViewer 02-创建一个窗口
03、基于 DirectX11 的 MMDViewer 03-渲染管线
04、基于 DirectX11 的 MMDViewer 04-渲染目标视口和多视口
源码下载(更随文章更新):https://github.com/forEmail/MMDViewer
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++冒泡排序 (基于函数模板实现) 2020-05-31
- C++抓图服务 2020-03-31
- #《Essential C++》读书笔记# 第四章 基于对象的编程风格 2020-02-08
- 开源项目SMSS开发指南(二)——基于libevent的线程池 2020-01-11
- 第四章 复合类型 2019-12-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash