Releases: GiveJavaAChance/PolyrayGameEngine
Releases · GiveJavaAChance/PolyrayGameEngine
Polyray V1.4
The biggest update so far!
This update adds tons of new features and a couple of fixes, especially on test-branch!
With this update comes a lot of changes to previous features which might be a bit annoying, but I hope this will be the last time I change core features this much.
I'd also highly recommend using the test-branch version since most features are starting to be done and it's soon time to move most features over to master!
Main branch:
Added:
- InputSystem and BindSet for better input managing and control flow.
- A method in BindingRegistry for binding textures with any format.
- FullscreenQuad now supports custom fragment shaders.
- GLFWindow now explicitly sets the GL version to 4.6.
- GLFramebuffer and GLFramebufferMSAA now allows any formats for depth and color.
- A G-Buffer class for generic render passes.
- Improved GLTexture usage a ton with better optional control and with the addition of mip mapping.
- The Input class now has a method to get all active keys.
- Renamed ResourceLoader to ResourceManager and added support for multiple resources along with a couple of really handy util methods.
- ShaderBuffer now has a wrap constructor, setting buffer size/preallocating, partial data uploads and buffer mapping.
- ShaderPreprocessor now has a #override preprocessor and supports any custom shaders.
- ShaderProgram now supports any type of shader and has a compute dispatch method.
- Transform2D and Transform3D now has a method for general purpose in-place transform inverting.
- Vector#i classes with bitwise operations and fixed vector3f/d's equal method as well as added 4 component vector types.
- A VertexBufferTemplate class to easily create vertex layout templates for making VAOs.
- A Wallpaper window (Windows only).
- A base Camera class for managing Camera buffers as well as built in Camera2D and Camera3D.
- A base PostProcessor class along with a built in DefaultPostProcess for some wacky drug effects.
- RenderObject now has generics for vertices and instances.
- A GenericRenderObject class that makes the internal vertex and instance collections generic.
- A base Renderable interface which allows for any rendering at all.
- A ServerStream for more accurate server reading.
- The OBJLoader is now more generic and (hopefully) easier to use.
- Renamed Particle and all Particle constraints to Particle3D and added a 2D version.
- Renamed PhysicsObject to PhysicsObject3D and added a PhysicsObject2D.
- Fixed Texture2D.vert.
Deleted:
- Default shader constructor for Material.
- vertexBuffer class due to ShaderBuffer replacing it.
- Forced post processing.
- ParticleSphere since it was highly unstable and useless.
- PhysicsObject.applyGround since it was included on accident.
Optimized:
- Background now precomputes ray directions and uses a triangle strip instead of two separate triangles.
- FullscreenQuad now uses a triangle strip instead of two separate triangles.
- DCDBR to use more aligned vector loads (DCDBR2).
- PBR shader to precompute dot products and other minor stuff.
Test branch:
Added:
- Base Collider2D and Collider3D classes for computing collisions.
- CollisionInfo2D and CollisionInfo3D classes for storing information about a collision.
- A super fast bitmap text renderer.
- A dimension agnostic BVH.
- A static Camera class with frustum culling. (going to be replaced by Camera3D soon)
- A generic FixedUpdate helper class.
- A experimental OpenGL resource garbage collector.
- A modular Gizmos class.
- A IDGenerator helper class for managing and creating unique IDs.
- A Particle class for particle effects.
- Base Controller2D and Controller3D classes for Entity Controllers like player controller or entity AI controllers.
- THE LONG AWAITED ECS!!!
- A Entity class for holding component references with methods to get component(s) of a certain type.
- EntityCollider2D and EntityCollider3D classes for holding a reference to a physics object and a collider implementation.
- Physics2DSystem and Physics3DSystem classes for handling physics, collision detection and resolving.
- A Scripting system with a base Script class for supporting user defined logic and scripting.
- A Item system that still needs refining.
- JDS API for Discord Social DSK bindings (very primitive and useless so far).
- ShaderManager for simplifying shader creation.
- Inigo Quilez noise.
- Fractal noise using IQ noise.
- Hash based noise (BitNoise) designed to give equal results on the CPU and GPU.
- Voronoi path noise, a kind of voronoi cell noise that returns a value given the distance to the nearest cell border.
- A generic RenderRegistry class for coupling RenderObjects to class types.
Polyray V1.3
Big Update Again!
Added:
- Modular post processing.
- Remove methods for vertices and instances in RenderObject.
- A modular Multiplayer handler.
- A Deconvolution algorithm for use with the DCDBR and DBR.
- A loader for OBJ files.
- A effect for panning audio.
Optimized:
- Audio FFT.
- Jar file size by 33%.
Removed:
- The broken ReverbEffect that the DCDBR replaces.
- Forced post processing.
Polyray V1.2
Big Update!
Added
- A setString method for ShaderPreprocessor for general use.
- transpose methods for Transform classes.
- A Optimized version of DCDBR using AVX in C++ which coupled with Java using JNI for 2x performance.
- A magnitudeSquared for performance.
- 1D and 2D IFFT for inverse transforms.
- PhysicsSolver for frame independent and deterministic physics.
Fixed/Optimized
- Controllers can now connect and disconnect during runtime.
- Optimized FFT class by removing unnecessary operations and allocations.
- Optimized Renderer3D and built in shaders by precomputing cameraPos and passing it as a UBO.
Polyray V1.1
Small update
- Added PhysicsObject and Particle for physics
- Added Particle constraints such as a simple line with two particles, a line with multiple particles, a plane and a sphere