Skip to content

Commit 5f5cdec

Browse files
committed
feat(管道模式): update article.md; update code and umls;
1 parent 7703c3a commit 5f5cdec

File tree

13 files changed

+105
-56
lines changed

13 files changed

+105
-56
lines changed

doc/反馈.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,21 @@
1919

2020

2121

22-
# ECS模式 反馈
22+
# ECS模式 反馈1
2323

2424
但是如果是初学者应该会比较懵不知道在干嘛。
2525

2626
另外UML现在大部分人都不学了吧,哈哈哈
2727

2828
更多的是画这种结构图
2929

30-
色块会看起来友好点,uml那些关系我也背不下来哈哈哈哈
30+
色块会看起来友好点,uml那些关系我也背不下来哈哈哈哈
31+
32+
33+
# ECS模式 反馈2
34+
35+
ECS 模式阅读反馈 :)
36+
首先声明,作为 ECS 模式的初学者,我目前仅粗浅地使用过基于 ECS 模式的 Bevy 引擎及阅读过《Hands-on Rust: Effective Learning through 2D Game Development and Play》(一本 Rust + ECS 模式开发游戏的入门书籍),所以我的阅读感受肯定是受限于自己对 ECS 的认知的,说错的地方请大佬不要介意。
37+
38+
文章优势:不依赖任何第三方 ECS 库,直观地展示了由面向对象到 ECS 模式的演化及具体实现。
39+
文章劣势:正是由于展示了 ECS 本身的内部实现细节,像我这类不关注 ECS 内部细节,只是想使用 ECS 的读者而言,这些细节可能会掩盖 ECS 模式的优势。

packages/管道模式/article.md

Lines changed: 56 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,8 @@ tonemap for WebGL2
389389
如果不懂代码的策划人员想要自定义三个步骤的执行顺序,那就需要麻烦开发人员来修改代码,而不能够直接通过修改配置数据来自定义
390390

391391
- 多人开发渲染的不同步骤的模块时容易造成冲突
392-
如果甲负责开发RenderInMobile中的InitWebGL1,乙负责开发RenderInMobile中的另外两个步骤模块,那么当他们把合并代码时容易出现代码冲突和Bug
393-
这是因为这三个步骤模块之间相互依赖,即另外两个步骤模块依赖InitWebGL1模块,所以甲负责的InitWebGL1模块如果有修改,会影响到乙负责的模块
392+
现在甲负责开发RenderInPC和RenderInMobile中的InitWebGL1,乙负责开发RenderInMobile中的另外两个步骤模块,那么当他们合并RenderInMobile的代码时容易出现代码冲突和Bug
393+
这是因为RenerInMobile的三个步骤模块之间相互依赖,即另外两个步骤模块依赖InitWebGL1模块,所以如果甲负责的InitWebGL1模块修改了,会影响到乙负责的模块
394394

395395

396396

@@ -401,39 +401,78 @@ tonemap for WebGL2
401401

402402

403403
通过下面的改进来实现通过配置来指定渲染的步骤:
404-
将RenderInPC和RenderInMobile模块改为两个渲染管道
405-
将其中的三个步骤的模块改为独立的Job,按照JSON配置指定的执行顺序,对应的渲染管道中执行
406-
<!-- 每个渲染管道有自己的数据,保存在自己的state中 -->
407-
<!-- Job可以读写所有的渲染管道的数据,不过不是直接 -->
408-
<!--
409-
410-
不过只依赖于管道数据的类型 -->
404+
将RenderInPC和RenderInMobile模块改为两个管道
405+
将每个步骤的模块改为独立的Job。它们按照JSON配置指定的执行顺序,在对应的管道中执行
411406

412407
通过下面的改进来解决冲突的问题:
413-
因为渲染管道中的Job是独立的,相互之间不依赖,所以甲和乙同时开发不同的Job是不会相互影响的
408+
因为不同的管道相互独立,同一个管道中的Job也是相互独立,它们相互之间不依赖,所以甲和乙同时开发RenderInMobile管道的不同的Job是不会相互影响的
414409

415410

416411

417412
## 给出UML?
418413

419414
TODO tu
420415

421-
TODO continue
422416

423417

424-
TODO
425-
每个渲染管道有自己的数据,保存在自己的state中
426-
Job可以拿到每个渲染管道的数据,不过只依赖于管道数据的类型
427418

419+
总体来看,分为Render、PipelineManager、三个管道、三个管道state以及对应的state类型、三个管道包括的Job这几个部分
420+
421+
422+
Render负责按照运行环境注册对应的管道,然后依次执行管道的Job来实现渲染
423+
424+
PipeManager负责管理管道
425+
426+
三个管道包括甲负责的RenderInPCPipeline、甲负责的JiaRenderInMobilePipeline、乙负责的YiRenderInMobilePipeline
427+
428+
每个管道维护了JSON配置数据,它们用来指定管道中Job的执行顺序
429+
430+
每个管道都包括了自己的数据,保存自己的PipelineState中
431+
432+
每个PipelineState的类型定义在PipelineStateType中
428433

434+
每个管道都包括了一个或多个Job,之前的步骤模块现在都对应地改为Job
435+
436+
每个Job都能读写所有管道的PipelineState
429437

430-
TODO 现在增加一个开发同学乙,负责实现RenderInMobile管道的前向渲染、Tonemap的Job
431-
甲负责实现RenderInPC管道的所有Job,以及RenderInMobile管道的初始化WebGL1
432438

433439
## 结合UML图,描述如何具体地解决问题?
440+
441+
- RenderInPCPipeline、JiaRenderInMobilePipeline、YiRenderInMobilePipeline这三个管道都维护了JSON配置数据,不懂开发的策划人员只需要配置它们们而不需要修改其它代码,即可指定渲染的步骤
442+
443+
- 甲和乙开发的是不同的管道,它们之间唯一的依赖是乙开发的管道的PipelineState-YiRenderInMobilePipelineState使用了甲开发的管道的PipelineState-JiaRenderInMobilePipeline,它们的依赖是类型(PipelineStateType)之间的依赖。只要类型JiaRenderInMobilePipelineStateType不变(类型是抽象的,一般都不会改变),则甲、乙之间的开发就不会互相影响
444+
445+
446+
434447
## 给出代码?
435448

436449

450+
Client代码:
451+
```ts
452+
//假canvas
453+
let canvas = {
454+
getContext: (_) => 1 as any
455+
}
456+
457+
//指定运行环境
458+
globalThis.isPC = true
459+
460+
461+
let renderState = createState()
462+
463+
renderState = registerAllPipelines(renderState)
464+
465+
render(renderState, canvas).then(newRenderState => {
466+
renderState = newRenderState
467+
})
468+
```
469+
470+
TODO continue
471+
472+
473+
474+
475+
437476
TODO
438477
这里需要实现的是能够合并甲、乙开发的同属于RenderInMobile管道的两个子管道。其中乙实现的两个Job应该在甲实现的Job之后执行,并且乙的Job需要读甲的子管道数据:WebGL1的上下文
439478

@@ -475,6 +514,7 @@ TODO
475514

476515
## 注意事项
477516

517+
<!-- ////TODO Job最好只写自己所属的管道的PipelineState,不是要写其它管道的PipelineState -->
478518

479519
# 扩展
480520

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<mxfile host="Electron" modified="2023-04-09T04:54:32.589Z" agent="5.0 (Macintosh; Intel Mac OS X 11_4_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="HdKTzHDzcJwV24PBaGoH" version="14.6.13" type="device"><diagram id="fjQVvlNmNs_deAdkQ_MN" name="第 1 页">7V3bcps6FP0az+Q8xAMSYHhMc2s7aZs56UzbR2wUmwQjD+Ak7tcfYSQMSAZsIezkuA+tJSQB2mvtm7bdAbycv91G7mL2DXsoGADNexvAqwEA0IQa+SftWdEezXaynmnke1mfvul48P8i2kknTpe+h+LSwATjIPEX5c4JDkM0SUp9bhTh1/KwRxyU77pwp4jreJi4Ad/7y/eSWdZrg9Gm/zPypzN2Z92i7zd32WD6JvHM9fBroQteD+BlhHGSfZq/XaIg3T22L9m8my1X8weLUJi0mXDx+1+wfPpy9XZz+3ylXz8/jJ3bc7pKnKzYCyOPvD9t4iiZ4SkO3eB60/spwsvQQ+mqGmltxtxhvCCdOul8QkmyosJ0lwkmXbNkHtCrKPQuUtGQZohDlPXc+EFAl4wTN0robGBll0vNNz/5zdYin/+k84YmbV290WXWjVVxTXZXz3fnOPR+zvyQXSrcnt9Yukvp1hQ66DbfIjxHSbQiAyIUuIn/UoaOSxE4zcflU++xT24BtDeGeYYVyhbdMYda4Q+A5SVjvIwmiK5SFH11YWCUF7a08kJkB6Yo4RYi++WuCsMW6YC45gV0g3uB+gerTrC0hhcx68aTD9kjs1ZBOpuuNS924Ej2CtqLGyypZO/9BQr8EH1zQ8L/iONQ/OrPA3eN7MnMD7w7d4WXKZYI1CbPrPVphiP/Lw4TlxGjCHxDK414SGdSgJYJ+Eiu0zkQsDZ9lgz5EX7OlVc6IkIxGX/PAK7lXXdunLBHYdoqveq58Sy/nxv4U0KbqwmZTd69hi8vKErQ26COMfTquWEbJbme6zYcArrzrxvF62iUArOC0gW6uZ1qBWzsLnqLE/0AfJpEyE2INiR/nf0zIBoJQD3TG2Qbp35MdoUB5GyeIWQ9eAAu032il7LWEx7/iDwUxZWFluEOS31356j6IMswn0jk4pXmxenHHwsUkX9uluEkFi5XwTQTe4AekxxVlzjA0UaNPxIlWumKF+7ED6d361lXhgCvKUp8YnAv6A2S1IpkgHTHOYojTB660CZwY1Dl8VdL42ZQUgwy1dQEP32kCn4jeBjzTJ79NzOiaaNgYNPmxsKuW6u8JWfWuzDRmUWsc3hs6kSuLV7NQDjq2uhLQYE9d0EV/bvm9cn4SBsfoFW8Fg0OedMDHU3AfdsaqmK/7uxpfS6CgCn/+Gyt7LmBKXKyS5nun7jhixt/QK2f80ZG7YtFb6gTfR4z9qr4CzICdlmhTwI3jv1JSadXlYZe1unr5v6Kuq+gi2M/0JyqXLeER10FGLnK2hD9MvARvVkRBGJhrQnViRdeDd9sTRh/FqihjwTUqIaX3fHC2GIFv4T3l0znrXXjz9UCnUyjLCIsWAbEhiwFCBgjwAhTNo3KUCAMy4rhywBekO0lFqhs96jB47rij2f3cqbI2L1tkjVUSdb4UAGPKL7pPeBhcUxzwOMoMbj95xB1x6oAUUFS0DA+ElKPIjRvjVQm73ePVEiPkbpC6nWcBBd+NH79nHxfPn6eE8m8nOvySH1azhdsPMXPuqvg6EuBeYPfP8VrW8C8AxhlcS/EWXfoFssLSoJZygKzx6z1sHuOS6zK4YBujThXBUJLTRwilpH8ualiTumDnQxEiVPMmZUg0/ZcQDdkapvFNTQxshRbBsuqHFOCesNQHd+1YajdxALVv4R+8guNb+/AVzzumeU6MPTyJujDkSAN2y/RwZESfUfC0vwdNZP75PC64a3TBR0FjpUGStAhClpRhcNIrw02mifkj7bdS9z2Mmq1AX/acIUeUZRZ/0OoA7OsDnTL7FUf1IYehV36Scg3dxfrHbKCNFs0jsinafrp7AZHmT7lj1Z63j7gtFenI2Xbx2e6v/ouczC/4bEfoFMat/s0rg6HWsW4jvh0nwl7TuQagIPDKZG7jTIyidxtklWWyDV5PfnHP/FcMc9Np+w52PYRkNzkdf6J5Nvo8r5ILh8cvZPq8W15d7BTXkVV4tykUudCtMb0iGmJQSYZjzmWzpDINJFVKaloXbquO9W1RlVV1VVsl/u9lRupTc/b0iQ6peflMxOMQ83peVnKyKlc/ssIpQCq4FdxsFKdpLfygn3GH5M3UtDuM1xnWudgFkom7yZlqCr5/0ZDJcEca1/rk4V/CrKBlWNWs69koK01pPaqEwzDrGBcxfeX+HKpPM+vHyKxVzWzglREv1l+eS1RNMFuNClbYPBxcvzdk9WiCXSGBsesSLm9p1gpVuRW6oz2miO8UU1Gv3aCIsdSvob8KI6u9jpr3vccvEuPsm05k9XJGbWAWcDKM/7sDAWyY56uOWGZ/M10x6nnhWgSpJV1ak0iX+Vyg6NXN/IOd9xlCzaQ/ZjA4c6/j9My7lsHuUNs2phGatBQXWoSp6UmyWDde7ULECgaYDVwXzSpojDU2EX5pOV7hfQxpVvaQrob43g4SHdtzsSQ7hbTpxxid6AWy0sW1HI5RL7Sp3g2e8AUInPLcsZBgf+jKoEolJTq2nlpa7Frnu8IcwoHzBRW6251rvRpS/ZBvm6Q3em4coVsP3atb9P7r28TxEtQaxkvKStwG52+FiY2080+8/52V28dH4kPyvv2Ls8NtefMYmQe6CjshMxWyDyOL99WkVmNeRRB0zoMNDv0cvZxasTnpp07OecQlmWqtXNxugpOR5260BxD5UNTiXyLWgeaFQCwU/42BQDtne7mcLZf73xXXWWOytFi0ymcoYuPB9uON40+Du26PYpWkskxLLuUyxlqxMw1mXPSukeRT/YnLXbeh0njAKel27186bTmi9kt+AD6KhGrfczm30jioNYYsnHxWasSgS3pHaP1r+ypO95yjpRu744bVl+2Qk7efCnUtvLJgzAEWkPbLpEk/wWu4s8y2Uae+uiFJkD+Z5nUWyU7r/vI/CTHgf8Hq8R+KrI5xOzr92trH7P50OEwxKvEvbqIdkY3pok0N//rQ+Y4bv7zDHj9Hw==</diagram></mxfile>
1+
<mxfile host="Electron" modified="2023-04-09T08:34:15.694Z" agent="5.0 (Macintosh; Intel Mac OS X 11_4_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="2rKHe3YJH7LVe6cPUOSO" version="14.6.13" type="device"><diagram id="fjQVvlNmNs_deAdkQ_MN" name="第 1 页">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</diagram></mxfile>

管道模式代码/jia_renderInMobile_pipeline/src/Main.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { state as worldState } from "render/src/RenderStateType"
1+
import { state as renderState } from "render/src/RenderStateType"
22
import { pipeline } from "pipeline_manager/src/type/PipelineType"
33
import { pipelineName, state } from "jia_renderInMobile_pipeline_state_type/src/StateType"
44
import { exec as execInitWebGL1 } from "./jobs/render/InitWebGL1Job"
@@ -12,10 +12,10 @@ let _getExec = (_pipelineName: string, jobName: string) => {
1212
}
1313
}
1414

15-
export let getPipeline = (): pipeline<worldState, state> => {
15+
export let getPipeline = (): pipeline<renderState, state> => {
1616
return {
1717
pipelineName: pipelineName,
18-
createState: worldState => {
18+
createState: renderState => {
1919
return {
2020
gl: null
2121
}

管道模式代码/jia_renderInMobile_pipeline/src/jobs/render/InitWebGL1Job.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { state as worldState } from "render/src/RenderStateType"
1+
import { state as renderState } from "render/src/RenderStateType"
22
import { service as mostService } from "most/src/MostService"
33
import { exec as execType } from "pipeline_manager/src/type/PipelineType"
44
import { getState, setState } from "../Utils"
55
import { states } from "jia_renderInMobile_pipeline_state_type/src/StateType"
66

7-
export let exec: execType<worldState> = (worldState, { getStatesFunc, setStatesFunc }) => {
8-
let states = getStatesFunc<worldState, states>(worldState)
7+
export let exec: execType<renderState> = (renderState, { getStatesFunc, setStatesFunc }) => {
8+
let states = getStatesFunc<renderState, states>(renderState)
99

1010
let canvas: HTMLCanvasElement = globalThis.canvas
1111

@@ -14,8 +14,8 @@ export let exec: execType<worldState> = (worldState, { getStatesFunc, setStatesF
1414

1515
let gl = canvas.getContext("webgl")
1616

17-
return setStatesFunc<worldState, states>(
18-
worldState,
17+
return setStatesFunc<renderState, states>(
18+
renderState,
1919
setState(states, {
2020
...getState(states),
2121
gl: gl

管道模式代码/renderInPC_pipeline/src/Main.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { state as worldState } from "render/src/RenderStateType"
1+
import { state as renderState } from "render/src/RenderStateType"
22
import { pipeline } from "pipeline_manager/src/type/PipelineType"
33
import { pipelineName, state } from "renderInPC_pipeline_state_type/src/StateType"
44
import { exec as execInitWebGL2 } from "./jobs/render/InitWebGL2Job"
@@ -18,10 +18,10 @@ let _getExec = (_pipelineName: string, jobName: string) => {
1818
}
1919
}
2020

21-
export let getPipeline = (): pipeline<worldState, state> => {
21+
export let getPipeline = (): pipeline<renderState, state> => {
2222
return {
2323
pipelineName: pipelineName,
24-
createState: worldState => {
24+
createState: renderState => {
2525
return {
2626
gl: null
2727
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
import { state as worldState } from "render/src/RenderStateType"
1+
import { state as renderState } from "render/src/RenderStateType"
22
import { service as mostService } from "most/src/MostService"
33
import { exec as execType } from "pipeline_manager/src/type/PipelineType"
44
import { getState } from "../Utils"
55
import { states } from "renderInPC_pipeline_state_type/src/StateType"
66
import { getExnFromStrictNull } from "commonlib-ts/src/NullableUtils"
77

8-
export let exec: execType<worldState> = (worldState, { getStatesFunc }) => {
9-
let states = getStatesFunc<worldState, states>(worldState)
8+
export let exec: execType<renderState> = (renderState, { getStatesFunc }) => {
9+
let states = getStatesFunc<renderState, states>(renderState)
1010
let { gl } = getState(states)
1111

1212
return mostService.callFunc(() => {
1313
gl = getExnFromStrictNull(gl)
1414

1515
console.log("延迟渲染")
1616

17-
return worldState
17+
return renderState
1818
})
1919
}

管道模式代码/renderInPC_pipeline/src/jobs/render/InitWebGL2Job.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { state as worldState } from "render/src/RenderStateType"
1+
import { state as renderState } from "render/src/RenderStateType"
22
import { service as mostService } from "most/src/MostService"
33
import { exec as execType } from "pipeline_manager/src/type/PipelineType"
44
import { getState, setState } from "../Utils"
55
import { states } from "renderInPC_pipeline_state_type/src/StateType"
66

7-
export let exec: execType<worldState> = (worldState, { getStatesFunc, setStatesFunc }) => {
8-
let states = getStatesFunc<worldState, states>(worldState)
7+
export let exec: execType<renderState> = (renderState, { getStatesFunc, setStatesFunc }) => {
8+
let states = getStatesFunc<renderState, states>(renderState)
99

1010
let canvas: HTMLCanvasElement = globalThis.canvas
1111

@@ -14,8 +14,8 @@ export let exec: execType<worldState> = (worldState, { getStatesFunc, setStatesF
1414

1515
let gl = canvas.getContext("webgl2")
1616

17-
return setStatesFunc<worldState, states>(
18-
worldState,
17+
return setStatesFunc<renderState, states>(
18+
renderState,
1919
setState(states, {
2020
...getState(states),
2121
gl: gl
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
import { state as worldState } from "render/src/RenderStateType"
1+
import { state as renderState } from "render/src/RenderStateType"
22
import { service as mostService } from "most/src/MostService"
33
import { exec as execType } from "pipeline_manager/src/type/PipelineType"
44
import { getState } from "../Utils"
55
import { states } from "renderInPC_pipeline_state_type/src/StateType"
66
import { getExnFromStrictNull } from "commonlib-ts/src/NullableUtils"
77

8-
export let exec: execType<worldState> = (worldState, { getStatesFunc }) => {
9-
let states = getStatesFunc<worldState, states>(worldState)
8+
export let exec: execType<renderState> = (renderState, { getStatesFunc }) => {
9+
let states = getStatesFunc<renderState, states>(renderState)
1010
let { gl } = getState(states)
1111

1212
return mostService.callFunc(() => {
1313
gl = getExnFromStrictNull(gl)
1414

1515
console.log("tonemap for WebGL2")
1616

17-
return worldState
17+
return renderState
1818
})
1919
}

管道模式代码/story_improve/src/Client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ let canvas = {
55
getContext: (_) => 1 as any
66
}
77

8-
// globalThis.isPC = true
9-
globalThis.isPC = false
8+
//指定运行环境
9+
globalThis.isPC = true
1010

1111

1212
let renderState = createState()

0 commit comments

Comments
 (0)