![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
三维游戏引擎开发
三维游戏引擎开发
ChivenZhang
本人软件工程专业毕业,从事三维渲染系统的底层实现。对三维游戏引擎有着执着的热情,并且花了2年时间进行系统设计和实现,颇有成效。这一段时间对自己的技术和意志都算难得的磨砺,也为自己能够胜任更高难度的工作提供了可能。
展开
-
读取FBX文件踩坑清单
FBX文件得到了许多3D制图软件与3D游戏引擎的兼容,其发展趋势大好。因此若要编写一款3D图形系统,对FBX格式的支持是必经之路(或者使用插件形式)。笔者尝试在百度、必应等搜索引擎,外加fbxsdk实例的帮助下,读取了FBX文件,并且生成图像。特地编写一篇文章叙述解析FBX过程中,容易踩到的坑。以下展示显示效果:模型原图:显示效果:踩坑清单:1、FBX资源组织方式。FBX文件以多叉树结构组织,其解析始于FbxScene根结点,根节点下挂载网格、材质、纹理贴图、动画、骨骼、蒙皮、灯.原创 2020-11-29 13:57:47 · 3158 阅读 · 3 评论 -
引擎开发日志:场景编辑器开发难点
试想一个使用场景,鼠标随意点击编辑器中的某个元素(角色,组件,设置等等),侧栏面板都能轻松可视化包含的所有属性,例如角色的位置、旋转、缩放。那么,它们是怎么做的?原创 2022-07-30 06:50:40 · 830 阅读 · 0 评论 -
引擎开发日志:集成Bullet3物理引擎
当渲染模块开发到一定程度,会发现毫无进展,此时应当改变开发方向。软件系统目前集成了许多低级且必要的模块,开发耗时极长,例如文件,日志,渲染,动画,相机等等。而对于物理模块,尚未开动。因此最近着手寻找物理模块方案,于是自然的找到了Bullet3这个物理引擎。据说性能优越,而且官方文档齐全。于是尝试集成,结果发现工作异常之简单。目前抽象了刚体,碰撞形状等物理概念。计划将抽象约束,力,事件等模型,如此一来,通用的抽象层替换为其他物理引擎,也会十分容易。以下展示所实现的简单物理效果。.......原创 2021-10-18 00:21:12 · 722 阅读 · 0 评论 -
引擎开发日志:重构骨骼动画系统
我发现一个规律,每经过一段时期,都会觉得之前代码写的像????。如此周期性的修改代码结构成为日常。这次重写动画系统,是为了让它可以兼顾后续的变形动画,布料动画,流体动画等扩展。目前基本完成了骨骼动画的修改。整个系统越来越像ECS靠近,但是部分结构有别于ECS,可谓具体问题具体分析。系统运行效果与之前一模一样,但是把窗口由win32换成glfw,另外用glm数学库替换了原先的轮子。这两处更改是有意义的,前者保证了跨平台,后者具备SIMD运算加速的特性。glm数学库在计算transform时,有处坑需要原创 2021-10-07 21:07:58 · 190 阅读 · 0 评论 -
引擎开发日志:OpenGL资源多线程加载
今天打算开始在CSDN上,记录自己在开发小型软件的过程中,对于设计的一些思考。既算作一种分享,也是文字总结。我打算编写一个渲染系统,当然开发已经进行了半年,成果多少是有。加载场景,灯光阴影等功能都具备。GUI,脚本等开发也十分顺利的进入尾声。但是就在最近,热切想实现的一个功能却成了阻碍,摆在我面前,如何实现资源异步加载。目前项目使用OpenGL作为底层渲染接口,由于OpenGL的上下文是线程环境相关的,无法做到在渲染线程之外的线程中执行GPU资源加载。如果把资源加载的工作都放在渲染线程中,必然会出现原创 2021-09-09 18:42:41 · 713 阅读 · 0 评论