-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
70 lines (59 loc) · 2.79 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**********************************************/
/* TO DO */
/**********************************************/
Check on Debug FPS:
- Seems off?
Sprite Shader:
- Improve ImageLoader / Assets.images:
- Sprite class:
Polygons:
- Chipmunk Debug Draw, https://github.com/slembcke/Chipmunk2D/blob/master/demo/ChipmunkDebugDraw.c
- Two.js, https://two.js.org/
Program Management:
- Shader Chunks
Uber Shader:
- lighting
Geometry Utility Functions (GeomUtils):
- mergeGeometries()
- toJson()
Context Lost:
- Do something about global 'window.renderer.gl', need to handle multiple renderers / gl contexts
- Continue in Renderer.initContext()
/**********************************************/
/* ENGINE OPTIMIZATION IDEAS */
/**********************************************/
WebGL Reference:
- ogl (current with 03/21/23), three, picogl, redgl, twgl, webglfundamentals
Optimization:
- General:
- Low end gpus, limit to < 2 million triangles, < 400 draw calls per frame
- Limit Sorting:
- Dual depth peeling
https://github.com/tsherif/webgl2examples/blob/master/oit-dual-depth-peeling.html
- Weighted, blended order independent transparency
https://github.com/tsherif/webgl2examples/blob/master/oit.html
https://github.com/stevinz/three-wboit
- Reduce Draw Calls:
- Instancing
- Scene geometry baking / geometry merging
- THREE.BufferGeometryUtils.mergeGeometries()
https://github.com/mrdoob/three.js/blob/de7c36a30773aa7941c46516af71e6993a7640ea/examples/jsm/utils/BufferGeometryUtils.js#L113
- Occlusion culling
https://github.com/tsherif/webgl2examples/blob/master/occlusion.html
- Reduce State Changes:
- Uniform Blocks
https://subscription.packtpub.com/book/game-development/9781782167020/1/ch01lvl1sec18/using-uniform-blocks-and-uniform-buffer-objects
- Speed Lighting:
- Deferred / Forward+ Rendering
https://github.com/tsherif/webgl2examples/blob/master/deferred.html
https://learnopengl.com/Advanced-Lighting/Deferred-Shading
https://gamedevelopment.tutsplus.com/articles/forward-rendering-vs-deferred-rendering--gamedev-12342
https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@6.5/manual/Forward-And-Deferred-Rendering.html
https://discourse.threejs.org/t/dr-strangelight-or-how-i-learned-to-stop-worrying-and-love-the-cluster/23104
Nanite:
- Nexus (js nanite):
http://vcg.isti.cnr.it/nexus/#nexus.js
https://github.com/cnr-isti-vclab/nexus
- Corto (compression):
http://vcg.isti.cnr.it/corto/index.html
https://github.com/cnr-isti-vclab/corto