DirectX 11版3D引擎的第一个alpha版本已经打包完毕 一个新的起点开始了。

  剑网3的DX11的3D引擎Aplha版本的一些说明:这个更多是兼容老的DX9的版本,功能是基本一样的,不过优化方面没有DX9做的好,只是一个测试版本,建立技术框架,方便后期的优化的进展。

  时间回到两年前,西山居技术中心基础研发组在帮助剑网3的3D引擎改了很长一段时间的BUG后,来找我商量,说希望做一个长期一点有挑战的工作,讨论了很多内容,最后决定做一个客户端用的3D渲染引擎。

  当时的目标很远大,也很有挑战,就是希望做一个跨平台Windows,Linux,跨API(DirectX 9c,DirectX 10,DirectX 11,OpenGL)都支持的渲染引擎,同时还希望是支持插件机制,能随时很方便的随时调整渲染引擎,当时我们都被自己的目标感动了,觉得人生的挑战莫过于此!

  同时我们还希望能完全兼容老3D引擎的API以及各种文件格式,这样可以很方便的随时替换,当时我们将能想到的各种功能,都放进去了,希望这个渲染引擎一出世就能惊天地泣鬼神。

  做引擎开发是一个长期的很枯燥的工作,特别是要兼容原来的功能,需要有一个梦想去支撑自己的长期坚持,往往是孤独和寂寞的,因为大家往往看最后的结果,而过程没有办法看到的时候,只能在自己的头脑里想象。

  做渲染引擎很多人会觉得设计最重要,但是一开始这并不是最重要的!第一个阶段最重要和最挑战的事情是:”阅读代码“,因为剑网3做了7年了,积累了足够的经验,完全重写等于是要重新犯很多错误,因此需要先阅读和吸收原有的经验。

  很多人觉得阅读代码很容易,当然如果代码只有几千行,也许很容易,如果几十万行,那就是非常有挑战了,毕竟不同程序员的思维不一样,在代码中都会体现。如果只是为了修改BUG,一般理解局部行为就可以了,但是如果整体做的话,就还需要知道为什么,特别是背后的设计本意。

  这是很痛苦的决定,重构是一个更有挑战的事情。

  还好整个工作3D大神和3D引擎团队的同事全程参与,帮了很多忙,特别是讲解当时的很多设计本意,特别是很多3D的概念和最新的发展,让大家对3D的理解是在一个正确的方向上。

  给大家先普及一下3D引擎的基础知识,3D引擎包含渲染引擎和编辑器两个部分,渲染引擎大家平时见得多,也就是客户端中带的,但是编辑器是引擎中另外一个非常重要的部分,因为要和项目组的制作流程配合,需要很多针对性的开发,这部分的代码量远比渲染引擎大。

  接下来挑战的事情,就是学习各个API包括DirectX 9c,DirectX 10,DirectX 11,OpenGL的接口的含义,看似很简单,如果只是做一个Demo,是很简单,但是如果是要商业引擎,特别是深度优化,就需要深入研究各个API背后涉及的本意,特别是DirectX的各个版本,跳变之大,超越想象

  我感觉DX 9c,DX 10,DX11,最操蛋的事情是DX10只能在Vista下运行,DX11需要Windows 7下运行,但是在中国Windows XP最流行,只能运行DirectX 9c;特别是当时我们就发现多线程是一个必备功能以后,各个API的多线程是我们考察的重点,但是DX9的多线程支持太差了。

  在看API的同时,还有一个很重要的工作,就是深入研究学习网上一些著名的引擎的实现,代码量的阅读直线上升,不过收获很大,很多实现的细节,能少走很多弯路;不过关键就是要静下来,能读进去。特别是程序员的习惯都喜欢写代码,静下心来代码,有时候是一种折磨。

  阅读不同引擎的实现,特别是对于不同API的支持,你会容易发现很多细节,发现自己做时候很有挑战,需要一个强大的隔离层,自己做一个3D显示的API,然后调用不同的API实现,这个是一个很大的开发量,特别是新的API一出来,增加新的功能的时候,需要配套修改很多内容。

  第一阶段都是在各种纠结中过的,特别是要写很多验证代码,包括模块内部使用C接口还是C++接口,是否采用纯COM的逻辑,包括对外的接口如何设计,很多事情是需要决定,但是有担心太早决定,如果错了后期的修改成本很高,纠结呀纠结。

  还有一个很重要的事情就是西山居的基础库,很多是10几年前写的,现在64位环境了,也需要配套修改,特别是对于多线程的很多新的思路,也需要基础库的支撑,因此也在顺便整理一些基础库的代码。

  很多人会关心,事情难道还会更难一点吗?有的!那就是团队的建立,一开始也就是3个人,1老+1中+1新,需要边招人,培养人,一边做,这也是非常有挑战的事情!

  很多人会问,为什么3D大神参与度比较少,其实主要的原因是因为剑网3的还有很多后期功能和优化工作要做,同时西山居当时准备开2个新的端游项目,急需要将现有引擎SDK化;而且我们内部还启动了一个编辑器的改善项目(这又是另外一个故事了),也是3D大神盯着的。

金山陈飞舟:《剑网3》3D引擎重生记相关推荐

  1. 完美时空Cube Engine 3D引擎

    参照完美官方说法,这次放弃了Angelica引擎而采用自主研发的新一代Cube Engine 3D引擎. Cube 引擎是专门为2.5D游戏量身定制的,可以实现丰富的层次效果,其中智能地表图素生成系统 ...

  2. 游戏开发--开源软件7--xith3D(java 3D引擎)

    2019独角兽企业重金招聘Python工程师标准>>> Xith3D是高性能的Java 3D引擎,主要面向3D游戏,数据可视化,三维场景原型等. 最突出的特点是基于scenegrap ...

  3. 转:典型开源3D引擎分类比较

    常见的3D引擎有:Unreal.Quake.Lithtech.OGRE.Nebula.Irrlicht.Truevision3D... 其中开源免费的有:OGRE.irrlicht.fly3d.Neo ...

  4. 扫描自己进入VR中 SLAM Scan 3D引擎将做到

    扫描自己进入VR中 SLAM Scan 3D引擎将做到 2016-03-22 10:58:09我要纠错 把17173装进手机神评论0 只需要点击拍照就可以将你的脸上传到虚拟现实世界中 瑞士软件初创公司 ...

  5. qt5.9.0调试如何查看变量的值_从0开发3D引擎(四):搭建测试环境

    大家好,本文介绍了3D引擎的测试方法,搭建了本地的测试环境. 上一篇博文 wonder-yyc:从0开发3D引擎(三):搭建开发环境​zhuanlan.zhihu.com 下一篇博文 wonder-y ...

  6. 用函数式编程,从0开发3D引擎和编辑器(三):初步需求分析

    大家好,本文介绍了Wonder的高层需求和本系列对应的具体功能点. 确定Wonder高层需求 业务目标 Wonder是web端3D开发的解决方案,包括引擎.编辑器,致力于打造开放.分享.互助的生态. ...

  7. 3D引擎多线程:渲染与逻辑分离

    目前的3D引擎的渲染帧和逻辑帧都是在一个线程上运行的,在网络游戏中大量玩家聚集,繁重的骨骼动画计算和粒子计算极大的拖累了渲染帧数,有两种有效措施:1.控制同屏显示人数,但玩家体验不好 2.帧数低于某值 ...

  8. 关于如何学好游戏3D引擎编程的一些经验

    原帖地址:http://www.opengpu.org/bbs/forum.php?mod=viewthread&tid=2202&extra=page%3D1 此篇文章献给那些为了游 ...

  9. 3D引擎多线程:资源异步加载

    本文原创版权归 博客园 flagship 所有,如有转载,请详细标明作者及原文出处,以示尊重! 作者:flagship 原文:3D引擎多线程:资源异步加载 资源异步加载恐怕是3D引擎中应用最为广泛的多 ...

  10. Xeogl 基于 WebGL 的 3D 引擎

    xeogl 是由 xeolabs 创建的基于数据驱动的基于 WebGL 的引擎,用于在浏览器中进行 3D 可视化,无需使用插件 特性 3D 引擎: 使用 WebGL 进行渲染 基于组件的场景图 用 E ...

最新文章

  1. 三维重建关键技术分享:特征检测+匹配+RT恢复+稠密重建方法
  2. 【 仿真 】基于多维相似性分析的移动定位方法仿真
  3. (8) Xamarin使用Jar檔
  4. Python入门100题 | 第054题
  5. Google Map浏览下载器
  6. JVM笔记详解之垃圾回收器
  7. Scikit-Learn机器学习入门
  8. linux 运行 chom,Hadoop安装-单节点/伪分布(2.7.3)
  9. React开发(265):ant design InputNumber
  10. zuul 自定义策略_如何为您的社区定义指标策略
  11. java csv 双引号_Java-使用Scess编写CSV时从字符串类型数据中删除双引号
  12. Azure夜校培训第二场2月22日18:00 正式盛情开幕
  13. 华为ap配置_13、了解下POE交换机以及AP供电几种方式
  14. Flink本地安装教程
  15. linux函数入参个数限制,PowerShell函数中限制数组参数个数的例子
  16. FANUC Robot 编程教程
  17. 乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)
  18. java基本语法大全(全)_Java基本语法大全(全)
  19. Java:使用POI实现word的docx文件的模板功能
  20. Linux就业技术指导(四):企业CDN缓存加速原理解密

热门文章

  1. 我的世界 Java1.12.2联机下载_我的世界1.12.2
  2. 基于Amos路径分析的模型修正与调整
  3. 超低延时的H5直播,电子游戏互动控制直播,桌面远程控制直播方案
  4. MML ch 10 主成分分析降维(Dimensionality Reduction with Principal Component Analysis)
  5. MySQL5.5安装及其配置
  6. Linux 应用程序安装卸载
  7. gdi与gdi+绘图效率_.NET和GDI +进行绘图[第1部分:基础知识]
  8. 安装ie9提示未能完成安装_win10系统安装iE提示“internet Explorer未能完成安装”的方法介绍...
  9. 浅谈stm32的低功耗模式
  10. Channel Attention 通道注意力