You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/portfolio.md
+9-10Lines changed: 9 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,9 +15,15 @@ This page contains two core classes from my proudest Minecraft mod, ***[MadParti
15
15
16
16
*MadParticle* was originally designed as a decorative particle mod for Minecraft, allowing players to create visually rich in-game scenes through a large number of configurable parameters. Unlike particle systems in Unreal or Unity, Minecraft’s particles are relatively heavier, which function more like client-side actors/entities than VFX effects.
> This image shows the in-game command editing interface of MadParticle, which renders an Arabic numeral “3” to celebrate the third anniversary of the mod.
37
-
On the right side, you can see that a single command has more than 30 adjustable parameters.
38
-
39
38
### Performance comparison
40
39
41
40
Later, in response to player and other developers' feedback, I began optimizing the vanilla particle system. The current version of MadParticle now achieves a 10–20x performance improvement over the vanilla Minecraft implementation.
@@ -53,14 +52,14 @@ The MadParticle project has been under active development for three years, and t
53
52
54
53
> This image illustrates a major recent architectural overhaul of MadParticle compared to the vanilla system — shifting from a mainly main-thread architecture to an almost fully multithreaded one.
55
54
55
+
## *NeoInstancedRenderManager.java*
56
+
56
57
:::info
57
58
58
59
If intersted, the complete source code of the project is available at https://github.com/USS-Shenzhou/MadParticle (My online alias is USS_Shenzhou).
59
60
60
61
:::
61
62
62
-
## *NeoInstancedRenderManager.java*
63
-
64
63
`NeoInstancedRenderManager` is a highly optimized particle rendering system primarily based on instanced rendering, with some specializations tailored to the Minecraft rendering pipeline.
65
64
66
65
Although instanced rendering significantly reduces the overall rendering time, filling the VBO still consumes substantial processing resources. To address this, parallel VBOs were introduced, where each thread is preassigned a starting address and a task of roughly equal size (see `MultiThreadedEqualObjectLinkedOpenHashSetQueue` below).
0 commit comments