Skip to content

Releases: seckujdivad/gameengine

More bug fixes

12 May 17:13

Choose a tag to compare

More bug fixes Pre-release
Pre-release

Features

  • Shader logs are now properly read and outputted
  • Texture depth comparison function is now managed by GLTexture
  • Texture presets now have descriptive labels
  • Switched to using one shared depth texture for all RenderTextures in NormalRenderer (instead of using more memory and copying between them)
  • Reworked Geometry/GLGeometry storage to work in the same way as GLTexture storage (instead of being tied to models)

Bug Fixes

  • FBO is only cleared after state is completely set up (to prevent warnings)
  • Normal_PostProcess target depth texture now has comparison function set
  • Fixed GLTexture preset constructor not creating the texture object
  • Switched to deep copying of RenderTextureGroups in RenderTextures

Fixed NVIDIA bug in previous release

01 May 14:49

Choose a tag to compare

Pre-release

Bug Fixes

  • Sharing depth textures caused no render output on NVIDIA drivers, reverted the change

Object labels and performance improvements

09 Apr 17:01

Choose a tag to compare

Features

  • Switched to smart pointers more widely, especially in Scene and child components
  • Added GeometryVertexView class that can compare a vector of values with a vector of Geometry ptrs without making any large copies
  • Added GLObjectLabelable class for setting OpenGL object labels that are then used in debug messages
  • Set up ShaderProgram, GLTexture and GLGeometry to inherit from GLObjectLabelable
  • Added ZeroShadow placeholder depth texture

Bug Fixes

  • Removed unnecessary copy of depth textures from Normal_DepthOnly to Normal_Draw

Other Changes

  • Removed iterative cubemap sampling

More performance improvements

24 Mar 23:13

Choose a tag to compare

Pre-release

Features

  • Added two-pass box blur filter shader
  • SSR quality is now dependent on the previous frame
  • Shadows now use shadow sampling and 2x2 linear filtering implemented in hardware
  • SetUniform can now take any container that produces forward iterators
  • SetUniform can now take ivecs
  • Added Texture query methods for modifying individual pixels on the CPU
  • Unified all post process shaders to use the same vertex and geometry shaders

Bug Fixes

  • Made GetFirstOBBIntersection more robust, fixing lines that sometimes appeared at the edges of shapes that followed the scene approximation OBBs
  • Removed extremely slow GLTexture copy in Engine::Render

Improved SSR and general rendering performance

04 Mar 03:16

Choose a tag to compare

Features

  • Texture data can now be generated - the only current generated texture is an XOR texture - the x ^ y is used as the value for either the hue of the HSV pixel or the magnitude of the pixel itself in greyscale mode
  • Improved SSR performance by reducing granularity once it becomes clear that a low precision hit was a near miss rather than a hit
  • Texture formats can now be programmatically specified using the type, number of channels and bit depth
  • Reduced number of channels in data textures, improving draw performance (presumably by reducing the number of fills per frame) and reducing memory usage

Single frame SSR

01 Mar 22:42

Choose a tag to compare

Single frame SSR Pre-release
Pre-release

Features

  • Post processing for Normal mode
    • Post process SSR - SSR now reflect the same frame that they are drawn on (not one frame behind)
  • Simplified render texture generation and removed use of constants to determine the number of textures per layer
  • Removed concept of data textures - all textures are either depth or colour

Bug Fixes

  • Set appropriate default texture filtering for different textures (colour textures. normal textures etc)

Other Changes

  • Reorganised and renamed some classes to be more logically consistent
  • Switched to using one shared texture filtering enum instead of one for scene objects and another for render objects

Added new Texture class

17 Feb 03:01

Choose a tag to compare

Pre-release

Features

  • Initial rendering mode for demo-cube can now be set in the settings file
  • Added custom enums to represent OpenGL enums relating to textures
  • Added custom Texture class that manages an OpenGL texture
  • Texture class now replaces all instances of LoadedTexture (which has been removed)
  • OpenGL state is checked to make sure it is valid for rendering before every draw call in debug mode, and the log is fetched if not (providing more detailed debug information)
  • Preset textures (similar to preset geometry) can now be queried from the Engine
  • ShaderProgram now uses an unordered_map instead of a vector of tuples to store textures, improving lookup performance

Bug Fixes

  • Preset textures are now used as targets for samplers that don't have a logical attachment
  • Removed dummy texture

Misc bug fixes

02 Feb 02:41

Choose a tag to compare

Misc bug fixes Pre-release
Pre-release

Features

  • RenderTextures can now share framebuffers and/or textures with other RenderTextures
  • ShaderProgram can now check whether or not it needs recompilation
  • ShaderProgram can now unpack a vector of values into an array of uniforms
  • Added option to snap model vertices to a grid defined by the dimensions of the grid cubes

Bug Fixes

  • Removed unnecessary call to fixed function OpenGL method glLoadIdentity in Engine::Engine
  • Fixed inconsistent access of cubemap data texture array across single shader invocations
  • Fixed only one shader define being set per frame (this was causing arrays to be too short, crashing on some drivers)
  • Added offset to reflection cubemaps to hide seams in level

Depth only pass and other performance improvements

24 Jan 23:50
bd3ace7

Choose a tag to compare

Features

  • Performance improvements
    • Depth only pass
    • CumulativeTexture only draws and copies when required
    • RenderTarget only clears and writes to the depth buffer when the RenderTargetMode requires it
  • Added new rendering intermediary Renderer which can be inherited from to contain multiple RenderTargets for render modes like Normal that use multiple shaders/textures (and therefore multiple RenderTargets)
  • Added new base class Renderable that provides some abstract virtual method signatures

Other Changes

  • Renamed Renderable to RenderTarget

Performance and portability improvements

05 Jan 03:25

Choose a tag to compare

Features

  • Context switching now happens much less frequently
  • Performance profiles can now be used to adjust the demands of the same scene between different machines
  • demo-cube now respects the platform display scaling setting