gpt4 book ai didi

【NET7.0、OpenGLES】使用Silk.NET渲染MMD,并实时进行物理模拟。

转载 作者:我是一只小鸟 更新时间:2023-09-18 23:02:46 31 4
gpt4 key购买 nike

有关mmd播放器,网上也有许多非常漂亮的实现,如 pmxeditor、saba、blender_mmd_tools等等。.

首先我想先介绍下我参考实现的仓库:

sselecirPyM/Coocoo3D: Experimental MMD renderer using DX12 and DXR. (github.com) ,这是sselecirPyM大神使用NET 6.0和DX12实现的mmd渲染器,支持自定义渲染管线、光照等,感兴趣的小伙伴可以在b站找他的视频,搜名字就好.

benikabocha/saba: OpenGL Viewer (OBJ PMD PMX) (github.com) ,这是国外一名大神使用c++做的mmd渲染器,支持卡通光照,我的代码基本上参考该仓库.

接下来我介绍下渲染的实现流程,方便大家熟悉代码.

mmd模型存在多种文件格式:

pmx、pmd属于模型文件,里面包含模型的最基本信息,顶点、Mesh、骨骼、材质等等。.

vmd属于动画文件,包含每一帧动画要做的处理,但vmd不能单独使用,他必须有一个模型作为载体.

代码流程:

1. 解析模型、动画文件。(PmxParsing、VmdParsing).cs 。

2. 管理该模型数据。(MMDModel、PmxModel).cs 。

3. 管理动画数据。(VmdAnimation、VmdAnimationController).cs 。

4. 管理模型的物理信息。(MMDRigidBody、MMDJoint、MMDPhysics、MMDPhysicsManager).cs 。

5. 使用动画类对模型进行控制 VmdAnimation->MMDModel.

6. 进行物理模拟 MMDPhysicsManager->MMDModel.

7. 更新顶点数据并渲染 MMDModel->Update->Draw.

具体有关gles的渲染流程就不介绍了,非常简单.

1. 遍历所有的meshes进行模型绘制,绑定纹理、shader参数等等。.

2. mmd模型存在描边,所以接下来我们再根据meshes绘制一遍(注意切换shader) 。

3. 根据光照方向创建阴影矩阵,并在meshes里与模型矩阵相乘并进行绘制.

效果图:

  。

 仓库地址: qian-o/SabaSharp (github.com) 。

最后此篇关于【NET7.0、OpenGLES】使用Silk.NET渲染MMD,并实时进行物理模拟。的文章就讲到这里了,如果你想了解更多关于【NET7.0、OpenGLES】使用Silk.NET渲染MMD,并实时进行物理模拟。的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com