【NET 7.0、OpenGL ES】使用Silk.NET渲染MMD,并实时进行物理模拟。

这篇具有很好参考价值的文章主要介绍了【NET 7.0、OpenGL ES】使用Silk.NET渲染MMD,并实时进行物理模拟。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有关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参数等等。。

【NET 7.0、OpenGL ES】使用Silk.NET渲染MMD,并实时进行物理模拟。

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

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

效果图:

【NET 7.0、OpenGL ES】使用Silk.NET渲染MMD,并实时进行物理模拟。

 

【NET 7.0、OpenGL ES】使用Silk.NET渲染MMD,并实时进行物理模拟。

 仓库地址:qian-o/SabaSharp (github.com)文章来源地址https://www.toymoban.com/news/detail-712210.html

到了这里,关于【NET 7.0、OpenGL ES】使用Silk.NET渲染MMD,并实时进行物理模拟。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第三章 OpenGL ES 基础-基础-GLSL渲染纹理

    第一章 OpenGL ES 基础-屏幕、纹理、顶点坐标 第二章 OpenGL ES 基础-GLSL语法简单总结 第三章 OpenGL ES 基础-GLSL渲染纹理 第四章 OpenGL ES 基础-位移、缩放、旋转原理 第五章 OpenGL ES 基础-透视投影矩阵与正交投影矩阵 第六章 OpenGL ES 基础-FBO、VBO理解与运用 第七章 OpenGL ES 基础-输入

    2024年03月18日
    浏览(49)
  • OpenGL ES FBO 离屏渲染详解(附项目源码)

    该原创文章首发于微信公众号:字节流动 FBO(Frame Buffer Object)即帧缓冲区对象,实际上是一个可添加缓冲区的容器,可以为其添加纹理或渲染缓冲区对象(RBO)。 FBO 本身不能用于渲染,只有添加了纹理或者渲染缓冲区之后才能作为渲染目标,它仅且提供了 3 种附着(Attac

    2024年02月12日
    浏览(47)
  • Android OpenGL ES 学习(十三) -离屏渲染FBO(截图)RBO, OES转 FBO

    Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投屏 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序 Android OpenGL ES 学习(七) –

    2024年02月12日
    浏览(42)
  • ASP.NET Core 中使用 WebSocket 协议进行实时通信

    介绍 在 ASP.NET Core 中使用 WebSocket 协议创建实时通信的完整示例涉及几个步骤。在此示例中,我们将创建一个简单的聊天应用程序,用户可以在其中实时发送和接收消息。此示例假设您对 ASP.NET Core 和 C# 有基本了解。 步骤1.创建一个新的ASP.NET Core项目 首先,使用 Visual Studio 或

    2024年01月25日
    浏览(51)
  • OpenGL ES 渲染 NV21、NV12、I420、YV12、YUYV、UYVY、I444(建议收藏)

    本文主要讲解常见的 YUV 格式图像渲染方式,如果对 YUV 格式不是很熟悉的同学可以翻看旧文一文掌握 YUV 图像的基本处理,YUV 格式的介绍这里不再展开。 NV21、NV12 可以看成同一种结构,区别只是 uv 的交错排列顺序不同。 渲染 NV21/NV12 格式图像需要使用 2 个纹理,分别用于保

    2024年02月22日
    浏览(42)
  • libVLC 提取视频帧使用OpenGL渲染

    在上一节中,我们讲解了如何使用QWidget渲染每一帧视频数据。 由于我们不停的生成的是QImage对象,因此对 CPU 负荷较高。其实在绘制这块我们可以使用 OpenGL去绘制,利用 GPU 减轻 CPU 计算负荷,本节讲解使用OpenGL来绘制每一帧视频数据。 libVLC 提取视频帧使用QWidget渲染-CSDN博

    2024年04月10日
    浏览(49)
  • macOS下使用OpenGL做离屏渲染

    有时,我们想通过GPU做一些视频、图像处理,而处理的结果不需要显示在显示器上,而是直接交给主存,这时候我们可以通过OpenGL的 离屏渲染 ( Offscreen Rendering )来实现。 由于我们不需要将渲染好的像素显示到屏幕上,因此我们可以使用framebuffer object,将像素放到 fbo 上,

    2024年02月03日
    浏览(36)
  • 使用Python和OpenGL渲染PS2存档3D图标

    经过前面一系列文章的铺垫,PS2存档3D图标的文件已经全部解析完毕。本篇开始将介绍使用如下工具将3D图标渲染出来,并尽可能接近PS2主机原生的效果。 Python3 PyGame Numpy ModernGL PyGLM 第一步先初始化 PyGame ,设置窗口大小为 640x480 , FPS 为 60 。开启 OpenGL 渲染模式, OpenGL 的版

    2024年02月03日
    浏览(46)
  • ffmpeg cuda硬件解码后处理使用opengl渲染,全硬件流程

    使用硬件解码后不要transfer到内存,使用cuda转化nv12 - bgr24 转化完毕后cuda里面存了一份bgr24 如果需要opencv gpumat直接使用cuda内存,则可以手动构造gpumat 可以使用gpumat的各种函数 ptr(0)、ptr(1)和ptr(2)分别获取了R、G、B三个通道的数据指针。 使用reinterpret_cast将uchar 指针转换为ucha

    2024年04月12日
    浏览(48)
  • OpenGL ES glad 下载和使用

    目录 一.glad 简介 二.glad 下载 四.glad 使用 1.OpenGL glfw + glad 效果演示 2.OpenGL glfw + glad 《源码下载》 二.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学

    2023年04月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包