Skip to content

Commit 00147c6

Browse files
committed
feat(积木模式): begin
1 parent f764383 commit 00147c6

File tree

19 files changed

+493
-322
lines changed

19 files changed

+493
-322
lines changed

doc/第三轮.org

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
总结:
2+
- 修改了错误
3+
- 隐藏代码的实现细节,进行抽象,读者可到代码库中详细了解它们
4+
- 圆润过渡语
5+
- 补充内容
6+
- 明确总-分结构
7+
8+
9+
10+
111
* TODO 修改结构性错误
212

313

doc/第五轮.org

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* TODO 图片使用白底
2+
3+
4+
15
* TODO 交稿给编辑老师,改错(use markdown)
26

37

doc/第四轮.org

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,41 @@
1+
* TODO 修改UML描述
2+
3+
** TODO 增加: 我们介绍下各个模块的依赖关系:xxx
4+
5+
6+
** TODO UML中的函数增加返回值类型?
7+
8+
19
* TODO 修改代码
210

11+
** TODO 都改为调用模块.xxx函数
12+
13+
如:
14+
Client
15+
```ts
16+
...
17+
18+
let engineState = createState()
19+
20+
engineState = registerAllPipelines(engineState)
21+
22+
...
23+
```
24+
25+
改为:
26+
Client
27+
```ts
28+
...
29+
30+
let engineState = World.createState()
31+
32+
engineState = World.registerAllPipelines(engineState)
33+
34+
...
35+
```
36+
37+
38+
339
** TODO state的名字重命名为对应的state名
440

541
如管道模式->story_improve->Client:
@@ -10,7 +46,31 @@
1046
来自拼接模式
1147

1248

13-
* TODO 给出代码:在“总”中给出进一步的说明
49+
* TODO 给出代码:在“总”中给出进一步的说明每一步的关系
50+
51+
如将下面的描述:
52+
首先,我们看下用户的代码;
53+
然后,我们看下Engine的代码
54+
然后,我们看下创建EngineState的代码
55+
然后,我们看下创建场景的代码
56+
然后,我们看下初始化的代码
57+
然后,我们看下主循环的代码
58+
最后,我们运行代码
59+
60+
改为:
61+
首先,我们看下用户的代码;
62+
然后,因为用户调用了Engine的API,所以我们看下Engine的代码
63+
然后,我们依次看下用户代码中每个步骤的相关代码,它们包括:
64+
- 创建EngineState的代码
65+
- 创建场景的代码
66+
- 初始化的代码
67+
- 主循环的代码
68+
69+
最后,我们运行代码
70+
71+
72+
73+
1474

1575

1676
* TODO 每个模式的具体案例增加到4个

packages/ECS模式/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1189,7 +1189,7 @@ export let setPositionComponent = (worldState: worldState, gameObject: gameObjec
11891189
挂载其它组件...
11901190
```
11911191
1192-
SceneAPI封装了创建场景的API -->
1192+
SceneAPI提供了创建场景的API -->
11931193

11941194

11951195
<!-- GameObjectManager的相关代码如下:
@@ -1587,7 +1587,7 @@ Component+GameObject层为组件和GameObject,它们现在只是有一个numbe
15871587
我们看下World这一层:
15881588

15891589
- World
1590-
该角色是门户,封装了API,实现了初始化和主循环的逻辑
1590+
该角色是门户,提供了API,实现了初始化和主循环的逻辑
15911591

15921592

15931593

packages/多线程模式/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ TODO tu
4747

4848
Client是用户
4949

50-
WorldForNoWorker是门户,封装了引擎的API
50+
WorldForNoWorker是门户,提供了引擎的API
5151

5252

5353
我们来看下管道这个部分:
@@ -1079,7 +1079,7 @@ X Worker对应某个其它线程,包括了运行在该线程的模块
10791079
该角色是用户
10801080

10811081
- WorldForMainWorker
1082-
该角色是门户,封装了系统API
1082+
该角色是门户,提供了系统API
10831083

10841084
- PipelineManager
10851085
该角色负责管理管道

packages/拼接模式/article.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ PBRMaterialShaderGLSL(Add Define)是在PBRMaterialShaderGLSL(Default)基
9494

9595
我们看下引擎这个部分:
9696

97-
Engine是引擎的门户,负责封装API给Client
97+
Engine是引擎的门户,负责提供API给Client
9898
Engine有一个EngineState,用来保存引擎的所有数据;
9999

100100
InitBasicMaterialShader负责初始化所有基础材质的Shader,判断基础材质是否支持功能,支持的话就将BasicMaterialShaderGLSL(Default)修改为BasicMaterialShaderGLSL(Add Define),然后创建对应的Shader
@@ -269,7 +269,7 @@ initBasicMaterialShader函数初始化所有基础材质的shader,它调用Ini
269269
<!-- 它们的对应关系为:因为一个shaderIndex对应一个Shader,一个Shader对应一套GLSL(VS GLSL和FS GLSL),所以一个shaderIndex对应一套GLSL -->
270270

271271
Material、ShaderIndex、Program、GLSL对应关系如下图所示:
272-
![image](https://img2023.cnblogs.com/blog/419321/202304/419321-20230403160828435-1930437553.png)
272+
![image](https://img2023.cnblogs.com/blog/419321/202305/419321-20230501123700400-921756639.png)
273273

274274
在后面渲染时,我们会首先通过Material拿到ShaderIndex,然后通过ShaderIndex再拿到Program,最后use Program
275275

@@ -666,7 +666,7 @@ ChunkHandler负责拼接Target GLSL和获得Send Config
666666

667667

668668
Engine、Render跟之前一样
669-
<!-- Engine是引擎的门户,负责封装API给Client -->
669+
<!-- Engine是引擎的门户,负责提供API给Client -->
670670
<!-- Engine有一个EngineState,用来保存引擎的所有数据; -->
671671

672672
InitMaterialShader负责初始化所有材质的Shader,它有两个函数:initBasicMaterialShader、initPBRMaterialShader,分别负责初始化所有基础材质的Shader和初始化所有PBR材质的Shader
@@ -1022,11 +1022,15 @@ varying vec2 v_diffuseMapCoord0;
10221022
其它区域包括的代码如下:
10231023
@top包括了define之前的代码,如精度代码:
10241024
```glsl
1025+
@top
10251026
precision highp float;
1027+
@end
10261028
```
10271029
@define包括了define的代码,如:
10281030
```glsl
1031+
@define
10291032
define B 2;
1033+
@end
10301034
```
10311035
@funcDeclare包括了函数声明的代码,如:
10321036
```glsl

0 commit comments

Comments
 (0)