Commit Graph

231 Commits

Author SHA1 Message Date
tom lee b75791006c General cleanup/fixup/improvement of render buffers 2021-12-21 15:48:25 +08:00
tom lee 9047ebb970 GLProxy: Now always log OpenGL supported version 2021-12-21 14:05:49 +08:00
tom lee 2d1c2d6efb GLProxy: Improved version not supported messages 2021-12-21 13:52:12 +08:00
tom lee 8577363438 added option for more WorldGenerater control 2021-12-19 00:29:50 +08:00
tom lee 4229ed75ae WorldGen: support 1.18 worldgen without locking the server up
Added getWorldGenerationCountPerThread() constant. Cleaned up the
LodWorldGenerator thread main lamda.
2021-12-17 15:57:37 +08:00
tom lee b8408bc6fa Renderer: Changed all to use GL32, set requirement to GL32
This should be the final commit on the renderer system rework if there are no
other bugs.
2021-12-17 14:52:24 +08:00
cola98765 56c4911316 changed where minHeight is set 2021-12-16 12:24:07 +01:00
tom lee 244ead9451 Renderer rework completed
The renderer rework is done. Fixed some non-issues and optimized away
some bind() calls. Also added some FIXME comments to some place that I
noticed needs to be fixed.
2021-12-16 00:16:09 +08:00
cola98765 5709a4c660 changed how minHeight is handled in VerticalLevelContainer 2021-12-15 12:09:47 +01:00
tom lee 3913b955be Renderer: Fixed and enabled GL43+ Vertex Attribute
Not sure if it's faster currently. It should in theory be.
2021-12-15 17:15:54 +08:00
tom lee a295dcafd4 Fix Init Null Exception (LodBuilder getMinHeight())
Fixed someone calling world.getMinHeight() on LodBuilder static init.
The world hasn't even been loaded... Also added it so that it updates on
world / dimension change.
2021-12-15 16:05:13 +08:00
James Seibel f9914f9336 slightly change some config wording 2021-12-14 23:27:46 -06:00
James Seibel 13e9df5b48 Change the sodium support to use a flat render distance
Newer versions of sodium store chunks in such a way that using reflection to get them is complicated at best. So for now we will just use the render distance and estimate which chunks should be loaded.
2021-12-14 23:27:27 -06:00
James Seibel 98c394bad1 Add a default createChunkPos(long) to IWrapperFactory 2021-12-14 20:51:29 -06:00
cola98765 444bf3b8bc made getMinHeight() default, so when it's not implemented it just returns 0 2021-12-14 21:40:33 +01:00
cola98765 455281a32d no longer using getMinimumWorldHeight() form version constants, added replacement in WorldWrapper. 2021-12-14 21:36:51 +01:00
cola98765 7b613ae8e3 rework for 1.18 y<0 2021-12-14 21:12:02 +01:00
cola98765 443d6165fa final fix for 1.18 y<0? 2021-12-14 20:45:38 +01:00
cola98765 a4ebe3e3c1 me stupid 2021-12-14 20:07:10 +01:00
cola98765 6ac3edf280 adding offset back 2021-12-14 19:59:33 +01:00
cola98765 a1163dc340 removed debug message 2021-12-14 19:41:01 +01:00
cola98765 38b7e66ef8 different debug message 2021-12-14 19:28:56 +01:00
cola98765 a843a0ed65 disable debug message 2021-12-14 19:24:20 +01:00
cola98765 e0d2d2530f disable debug message 2021-12-14 19:24:01 +01:00
cola98765 44e2936b68 made very logs for merge bug 2021-12-14 19:06:21 +01:00
cola98765 dfa717e0e3 revert everything around this merge bug 2021-12-14 19:04:06 +01:00
cola98765 69844417ce potential fix to that merge bug 2021-12-14 18:37:26 +01:00
cola98765 8370402dc1 potential fix to that merge bug 2021-12-14 18:27:01 +01:00
cola98765 cbb32bc996 potential fix to that merge bug 2021-12-14 18:24:42 +01:00
cola98765 ac876c0030 potential fix 2021-12-14 18:14:14 +01:00
cola98765 2176807a0a fixed lightmap 2021-12-14 18:09:39 +01:00
cola98765 47732b7f57 just playing around with <0 y 2021-12-14 17:57:27 +01:00
cola98765 ff9afee5b4 fixed loading data being corrupted 2021-12-14 17:29:55 +01:00
tom lee b5665a59c0 Renderer: Fix critical bug that black screen Minecraft 2021-12-15 00:04:04 +08:00
cola98765 483ecf2e4d fixed couple things around Leo's merge. 2021-12-14 14:57:49 +01:00
tom lee 30eab27a49 Removed build-breaking imports
Ha. Told me to always test the build before pushing. Turns out you also
didn't test it!
2021-12-14 21:38:14 +08:00
tom lee d1b5200fed Renderer: Fixup some stuff that maybe an issue 2021-12-14 21:28:09 +08:00
Morippi 4a4728d41e fixed some part and added the newUpdate for now (still unsuded and doesn't use the slice) 2021-12-14 14:11:11 +01:00
Morippi c9204a2094 fixed some part and made a splitted version (if we want to use it since it's possible) 2021-12-14 14:00:47 +01:00
Morippi c45f0b2414 completed the merge method 2021-12-14 13:46:10 +01:00
tom lee 97b2db84cd Quick Patch for GL43+
TODO: Check why GL43+ Vertex Attribute doesn't work
2021-12-14 18:21:40 +08:00
tom lee c389f3b391 Fix merge conflicts 2021-12-14 15:03:31 +08:00
tom lee 6049840aa6 MAJOR Renderer Rewrite
Rewriten almost all stuff in core.render. Changes made:

1. Added LightmapTexture object
2. Moved&Renamed LodShader & LodShaderProgram to be under render/objects/
3. All class under render/objects are actual objects for OpenGL
4. Add LodRenderProgram which is a ShaderProgram + VertexAttribute. If
   we change the method on how we render stuff (Like modifying
   input/output), we should change this file as this is the
   repesentation of the Rendering Program that we are using.
5. Add VertexAttribute, and a GL43+ vesion of it. I implemented both
   versions because the GL43+ will get a noticable speedup due to some
   additions to OpenGL standard. However I still included older version
   for backward compatibilities. To access VertexAttributes, it is
   recommended to access it though the VertexAttribute abstract class's
   method.
6. Rewritten the main renderLod() method. Now it will cache as much
   stuff as possible.
7. To do '6.', now the renderer has a setup() and a cleanup() method,
   both that must be called inside Render Thread. The renderer should
   automatically detects when it needs to call the setup() and
   cleanup(). However, you can expicitly request the renderer to do
   cleanup() on next rendering by calling markForCleanup().
8. ...I think that's all? Don't quite remember tbh. Hopefully I didn't
   miss any points.

Note: This overhaul of the renderer means that THERE WILL BE BUGS. I
can't test all versions on both Nvidia and AMD cards with all OPENGL
versions so please report any bugs to me straight away. Thanks in
advance!

Note 2: I will add more docs in the source code next.
2021-12-14 15:03:03 +08:00
tom lee 2dee6b0326 Add a try/catch and disable Renderer on error
Rendering exceptions usually happens every frame, which cause a lot of
spam. So I added a try/catch and a bool to check if Renderer has
encountered an error, in which the Renderer will be disabled until the
game restarts. (This could probibly be changed)
2021-12-14 14:51:00 +08:00
Morippi 27d9e6aeb7 Added slice in mergeAndAddData 2021-12-13 22:55:29 +01:00
Morippi c751b6fcc6 Added some other comment to the merge 2021-12-13 22:49:58 +01:00
Morippi 31f173c8e8 added the commented code to the mergeAndAddData to make the conversion to new system easier 2021-12-13 22:40:01 +01:00
Morippi 90ca3bd394 Added the position data merge 2021-12-13 22:37:40 +01:00
Morippi 30dd5526cd refactoring for future code 2021-12-13 22:12:13 +01:00
Morippi a9e31b8133 Added methods for the merge in the LevelContainer, to be implemented 2021-12-13 21:03:54 +01:00