Use TurboWarp if this is too laggy: https://turbowarp.org/870412701/fullscreen?fps=60&hqpen&stuck WASDQE for movement Arrows for rotation Use space to toggle the dynamic object(it is laggy!)
Oh yeah, and there is a random skybox test(ignore it for now I guess) WHAT IS THIS?: This is another step in rebuilding a finalized version of Gamma Engine. I finally got some form of dynamic primitive working in this engine. It wasn't as hard as I thought it would be, but it definitely was difficult. It was hard to think of an optimal way of clearing the framework necessary for dynamic objects, so I had to settle with a laggier pipeline. Operations such as list deletion, duplication, and refreshing contribute to pretty significant lag. This engine currently employs a non-recursive method of partitioning the scene for dynamic primitives. Each one is inserted one at a time, and they essentially function as splitting planes. This method of BSP will sort perfectly, but does not use a tree structure, and therefore cannot be traversed. Another downside is that it is very laggy. Dynamic primitives will split any polygon which lies on their plane. This can really add up in large scenes. FURTHER NOTES: If anyone has optimizations to suggest, I am probably willing to accept most of them. If you want to suggest an optimization, I would prefer you used timing scripts to test them unless you almost absolutely can guarantee its effectiveness. If you aren't able to convince me that an optimization is at least 5% faster, there is a good chance I will ignore it. FINAL THOUGHTS AND WHAT IS NEXT: One optimization I can think of is to have the dynamic primitive traverse the BSP tree until it is found to exist in two nodes, then insert it at the parent node, and partition the contents of that node. I'm not sure how difficult that would be but I might try it. I will also probably implement faster dynamic objects which sacrifice graphical accuracy for speed. CREDITS: 3D BSP sort adapted from @Chrome_Cat's 2D BSP sort. Compare the code, which can be found here: Triangle filler by ():