在《版本更新 | Orillusion 0.7版本公布啦!》的文章中,咱们提到过后续会出一期独立的内容,来通知大家如何提交本人的示例Sample代码。当初教程终于来啦!
1 一些益处
示例Sample代码绝对于引擎外围代码开发绝对简略,不会太多的波及到引擎内核代码的改变,更多的是依据咱们的教程文档,间接调用引擎的API来实现一些利用性能的开发。
因为咱们的Sample代码也属于「Orillusion 引擎」外围库的一部分,所以一旦提交的PR被承受,就能够成为Orillusion官网开源库中的Contributors角色!
所有引擎外围库中的Sample最终都会被咱们同步公布到Orillusion的官方网站中,不便大家后续的援用、分享、和流传,官网链接为:
https://www.orillusion.com/example
咱们会不定期地筛选一些优良的Sample开发者,给予一些奖品处分,作为对Orillusion开源社区奉献的激励、反对、和认可!同时,也会帮忙每一个示例Sample的开发者,进行社区的宣传推广流动,包含国内的社区以及国外的社区。
在优良的开源社区和我的项目中留下痕迹,是咱们每一位开发者的荣誉。而且也能够十分理论的晋升大家的CV背景,是最间接的技术实力的体现。那前面显而易见的加分点,大家就都懂啦!
2提交之前
在开始介绍如何成为Orillusion开源我的项目的Contributors之前,咱们先总结下目前我的项目中Sample的一些根本状况。
咱们的Sample呈现在两个Orillusion相干的开源我的项目中:
- 官网网站我的项目:
https://github.com/Orillusion/orillusion-web - 引擎外围我的项目:
https://github.com/Orillusion/orillusion
两个我的项目都能够进行示例Sample的提交工作。然而咱们强烈建议,间接在咱们的引擎外围我的项目中进行Sample的提交。因为,这样每一位被承受的Sample的开发者,都会呈现在引擎外围我的项目的Contributors名单中!
这两个我的项目中Sample的开发方法也有些不同。
简略概括,官网我的项目的Sample写法更加偏向于让开发者能够通过把整个我的项目代码进行复制,而后粘贴到本人的开发环境中就能够间接运行,即单文件我的项目;而引擎外围我的项目中的Sample有些写法是思考到引擎外围开发者的代码复用性,做了一些简略的封装工作,须要大家理解下封装的逻辑,再进行Sample的编写。
不过,大家在给引擎外围我的项目提交Sample的时候,能够应用官方网站我的项目中的Sample写法,也能够应用引擎外围我的项目中的Sample写法。后续将Sample从引擎外围我的项目迁徙到官网网站我的项目的工作,会由咱们Orillusion团队的成员帮大家实现的。咱们会始终在云端hosting每一位Contributor用心编写的Sample,不便大家随时进行线上拜访!
如果大家用官方网站中Sample写法进行PR提交,能够略微缩小一些咱们的迁徙工作,那当然是非常感谢啦!
3 具体方法
上面咱们就开始具体解说如何实现Orillusion我的项目中Sample的提交。次要分为以下几个步骤:
具体方法
上面咱们就开始具体解说如何实现Orillusion我的项目中Sample的提交。次要分为以下几个步骤
- 在你的 GitHub 上 fork Orillusion我的项目
克隆你 fork 的 repo 到本地:
git clone git@github.com:xxxx/orillusion.git
进入我的项目目录并切换到 dev 分支:
cd orillusion && git checkout dev
初始化 public 子模块:
git submodule update --init
装置开发依赖:
pnpm i
运行开发服务器:
pnpm run dev
留神:须要 Node.js 16版本以上,以及 PNPM 7版本以上。
编写新Sample
- 在/samples/xxx/Sample_xxx.ts的对应类别文件夹中创立新入口文件,如果没有适宜的类别文件夹,能够新建一个.ts 文件,文件名应该要具备肯定自解释性,要体现该Sample的性能或特点
- 编写你的场景代码,举荐以/samples/base/Sample_Transform.ts作为模板
- 根本代码编写规定:
->从@orillusion/core导入外围模块,例如 Engine3D, Scene3D, Object3D...
->从@orillusion/xxx导入插件/扩大,例如 @orillusion/stats, @orillusion/particle, @orillusion/physics, ...
-> 倡议应用Top-level await来初始化 Engine3D 和其余异步API
-> 倡议将所有functions/classes/modules嵌入到一个繁多的ts文件中,不便社区分享和保护
-> 倡议应用dat.gui 创立 GUI 菜单来管制具体场景参数
-> 尽可能正文代码,使代码更易浏览和了解
- 如果Sample须要本地文件,例如gltf模型或图片,咱们倡议你能够将它们上传到一个公共文件托管服务,例如github pages, cloudflare CDNs, npmjs, AWS S3, Aliyun OSS等。而后在你的样例中应用公共URL来导入它们。除此之外,也能够分割咱们将你的文件增加到咱们的assets仓库,这样你就能够间接从/public文件夹导入文件。
创立一个PR
- 提交你的Sample,提交时的形容内容须要遵循提交信息标准(下方链接查看详情)
https://github.com/Orillusion/orillusion/blob/main/.github/commit-convention.md - 推送到本人的fork仓库
- 从本人fork仓库的dev分支向orillsuion引擎外围我的项目dev分支创立一个PR,增加PR详细描述和更改记录,内容形容也应该遵循提交信息标准
Sample提交办法的这三个步骤也有总结版本,曾经放到github上啦,有须要的小伙伴能够间接在github中查看:
https://github.com/Orillusion/orillusion/blob/dev/.github/contributing.md#write-new-samples
好啦,上面咱们就能够开始编写本人的Sample,赶快成为Orillusion我的项目的外围Contributors吧!
在这个过程中,如果发现任何bug或者有其余相干的问题,咱们倡议在Github Issues板块中提交对应的issue,咱们都会定期查看,回复和跟进的!
心愿每一位3D利用的开发者和咱们共同努力,一起打造属于国人本人的开源的3D引擎社区,为将来3D利用暴发时代提供底层引擎根底工具!
彩蛋来啦
社区中应用「Orillusion 引擎」开发的WebGPU游戏,又更新啦!大家都曾经开始热烈探讨开发一个在线联机游戏,下班摸鱼了...
( ° °)✧ 摸鱼不太激励,然而开发是能够做的!有趣味的小伙伴,点开关注下作者吧!
Orillusion致力于打造全世界第一款齐全开源基于WebGPU规范的一种轻量级渲染引擎,指标是在浏览器中实现桌面级的渲染成果,反对超大简单场景的3D出现。易上手,易分享,易迭代,易合作、成本低,跨平台是咱们的外围劣势,咱们将为3D场景暴发时代提供引擎根底工具。
将来咱们将会继续把最干货最前沿的WebGPU技术分享给每一位社区成员,也欢送大家为Orillusion开源社区做出本人的奉献。咱们始终深信,开源社区的技术留痕是每一位技术人员最高尚的谋求!因而,咱们尊重,咱们认可,咱们更期待,退出Orillusion,让咱们共同进步!
——Link uncharted, 链接将来世界