Skip to content

Latest commit

 

History

History
491 lines (342 loc) · 22.4 KB

Release_Notes.md

File metadata and controls

491 lines (342 loc) · 22.4 KB

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.4.1...v0.4.2

Overview

Fixed noexcept edge cases for binary_tree.
Updated installation guide to include C++17+ requirement.

Documentation Changes

Added C++17+ requirement to Installation.
Added table of contents to Examples for navigation.

Code Changes

Minor Changes

Removed noexcept from binary_tree to avoid crashes on edge cases (e.g. tree.build(v.begin() - 1, v.end())).
Added clear() to build(Iterator begin, Iterator end) in binary_tree to avoid not clearing if begin >= end.

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.4.0...v0.4.1

Overview

Small optimizations and edge case fixes.

Documentation Changes

Updated example in dimension3 and dimension4 for the enable_if_n_t function to be more clear.
Added edge cases explanation to binary_tree.

Code Changes

Minor Changes

Fixed edge cases surrounding Iterator begin, Iterator end in binary_tree, where if begin < end it would crash.
Check for nullptr on callbacks and predicate in binary_tree to avoid crashes.
Added pass by reference for all the callbacks in binary_tree to avoid copying.
Changed static_cast<int>(color.(r/g/b/a) to +color.(r/g/b/a) in color to avoid unnecessary casting.

Test Changes

Added tests for edge cases in binary_tree.

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.3.3...v0.4.0

Overview

The changes have backward compatibility issues, as the bounding_box() virtual function has been added to the shape.

Added sphere to objects.h.
Added bounding_box to objects.h.
Added bounding_box() to shape.
Added binary_tree class to algorithms.h.
Added bvh_tree class to algorithms.h.

Removed sphere from examples, it's now a bardrix object.

Documentation Changes

Added bounding_box to Bardrix_Reference.
Added binary_tree to Bardrix_Reference.
Added bvh_tree to Bardrix_Reference.
Updated class diagrams associated with the new changes.

Added changes from examples that used sphere to bardrix::sphere in Raytracing.

Code Changes

Major Changes

Added bounding_box class to objects.h.
Added bounding_box() to shape.
Added binary_tree class to algorithms.h.
Added bvh_tree class to algorithms.h.
Added sphere to objects.h.

Minor Changes

Added ray(position : point3, end : point3) to ray.
Updated material default constructor to have a shininess of 1, which is the minimum value.
Added longest_axis() and shortest_axis() to bounding_box.
Added enum class axis to bardrix.h, where axis::none is 0, axis::x is 1, axis::y is 2, axis::z is 4 and axis::w is 8.
Added operator[axis] to dimension3and dimension4.

Test Changes

Added tests for bounding_box and binary_tree.
Added tests for ray(position : point3, end : point3).
Added tests for sphere in objects.h.
Added tests for bvh_tree in algorithms.h.

Added tests for longest_axis() and shortest_axis() in bounding_box.
Added tests for operator[axis] in dimension3and dimension4.

Overview

Fixed issue 42 where the pragma once was missing in sphere.h (wth?).
Fixed issue 43 where the += was incorrectly formatted in the reference.
Fixed issue 44 where the diagrams in the reference were incorrectly displayed.

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.3.2...v0.3.3

Documentation Changes

Fixed the issues mentioned above.

Code Changes

Minor Changes

Added close() to window to close the window.
Added on_key_down(window, key) to window to handle key presses.
Added camera movement to Raytracer example.

Overview

Added -=, += to point3 with regards to vector3.
Updated nuget targets file to include /Zc:__cplusplus to add support for C++20.
Added <PrecompiledHeader>NotUsing</PrecompiledHeader> to Bardio.Bardrix.targets now you're able to use a pch.h (oops).

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.3.1...v0.3.2

Documentation Changes

Added -=, += to point3 with regards to vector3 in Bardrix_Reference.
Added quaternion include to Raytracing Reflection.

Code Changes

Minor Changes

Added -=, += to point3 with regards to vector3 in point3.
Updated nuget targets file to include /Zc:__cplusplus to add support for C++20.

Test Changes

Added tests for point3 -=, += with regards to vector3.

Overview

Added color blending to color.
Added physics (conversion calculations + gravity calculations).
Solved issues 36 and 37.

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.3.0...v0.3.1

Documentation Changes

Renamed a classes in Bardrix_Reference to be lowercase instead of uppercase.
Added color blending and physics to Bardrix_Reference.
Added #define NOMINMAX to window.h to fix an issue with min and max being defined in windows.h.
Updated the versions in examples (cmake).

Code Changes

Major Changes

Added color blending to color.
Added physics to physics.

Test Changes

Added tests for color blending.
Added tests for physics.

Major changes to the API have been made regarding material and vector3::reflection.

Overview

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.2.3...v0.3.0

The changes have backward compatibility issues (compared to v0.2.x), only if you were using material class or vector3::reflection.

Documentation Changes

Updated Bardrix_Reference to include material and vector3::reflection updates.
Updated Mathematics to include the correct vector3::reflection formula.
Added readme to Docs/.
Added sphere normal calculation example to Raytracing readme.
Added documentation to sphere class in sphere example.
Made sure that in Release Notes the links are to the versions they are referring to instead of the latest version.
Added documentation Raytracing-Reflections.
Solved issue 33, where degenerate cases aren't marked as such.

Code Changes

Major Changes

Updated shininess in material to have a limit between [1, infinity)] which for some reason wasn't the case.
Updated diffuse and specular to not be opposites anymore because I thought they were, but they are not.
Updated vector3::reflection to now actually work instead of returning the inverse of the reflection. Also reflection now doesn't return a unit vector but instead a vector with the same length as the input vector.

Minor Changes

Renamed protected variable bmi (bitmap info) to bmi_, back_buffer to back_buffer_ and front_buffer to front_buffer_ in window example.
Added material to sphere constructor in sphere example.

Test Changes

Added tests for material and vector3::reflection to account for the new changes. Renamed workflow template from Build Job to Build And Test CMake to better reflect what it does.

Documentation Changes

Documentation hotfix, wrong formula in example.

Overview

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.2.2...v0.2.3

Solved issue 32, where Mathematics didn't have a table of contents.
Updated incorrect formula in Raytracing example for calculating the light intensity at a certain point.
Updated incorrect formula in Raytracing example for calculating the intersection point of a sphere.

Documentation Changes

Solved issue 32, where Mathematics didn't have a table of contents.
Updated incorrect formula in Raytracing example for calculating the light intensity at a certain point.
Updated incorrect formula in Raytracing example for calculating the intersection point of a sphere. Added next step to Introduction.

Errors

In the sphere intersection it has an error which means this version (for raytracing example) is unstable.

Very minor changes to documentation.

Overview

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.2.1...v0.2.2

Solved issue 30, where in the README it doesn't properly link to the github.
Updated table of contents in Bardrix_Reference to include objects ( material/shape).
Updated README in Examples/Raytracing, forgot to finish a sentence and updated table of contents; which now also properly links.

Documentation Changes

Updated Bardrix_Reference to include objects (material/shape).
Updated README in Examples/Raytracing, forgot to finish a sentence and updated table of contents; which now also properly links. Updated name from light_sphere_example.png to light_calculation_example.png
Updated 2.1 Light Sphere Intensity to Light Intensity.
Solved issue 30, where in the README it doesn't properly link to the github.

Errors

In the sphere intersection it has an error which means this version (for raytracing example) is unstable.

Overview

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.2.0...v0.2.1

Added CONTRIBUTING.md to help contributors get started with the project.
Added more documentation to the codebase to help contributors understand the codebase.
Added a workflow to test the examples, this will help pushing correct code to the repository.

Documentation Changes

Added inverse square law example to Raytracing readme.
Added sphere light calculation example to Raytracing readme.
Added objects (shape, material) to Bardrix_Reference.
Added code and visual sphere intersection example to Raytracing readme.

Code Changes

Minor Changes

Updated raytracing example and window.cpp now doesn't give a compiler error when running on an operating system other than Windows, instead it prints out a message that it is not supported.
Added Examples/CMakeLists.txt to include all the examples in one build.
Renamed position to position_ and made it protected in sphere.

Test Changes

Added a generic workflow for building and testing on multiple platforms.
Added a workflow for testing if the examples compile.

Overview

Full Changelog: https://github.com/BardoBard/Bardrix/compare/v0.1.0...v0.2.0

The changes have backward compatibility issues (compared to v0.1.0), only if you were using color::rgba(), color::rgba(unsigned) or color::color(unsigned).
Color now uses RRGGBBAA format instead of AABBGGRR format. This change was made to have a more consistent base color; other colors will still be converted to this format and other formats.
window.h when compiling in clang works fine, yet when running on cl (microsft compiler) it does not work. This is due the encoding, which has now been fixed and updated in window.h.

Documentation Changes

Updated Bardrix_Reference to include argb() and abgr() in color.
Added parameters to the math functions like degrees_to_radians Bardrix_Reference Updated class diagrams to include argb() and abgr() in color.
Updated Raytracing cpp to include the new changes in color and center the screen.

Code Changes

Major Changes

Updated unsigned to uint32_t in color to always have a 32 bit integer representation.
Updated color to now represent the correct layout (RRGGBBAA instead of the previous AABBGGRR) for 32 bit integer representation. This change means that previously used rgba() and rgba(rgba : unsigned) should be altered to use abgr() instead.
Added argb() and abgr() to color (this will help with windows API which uses argb).

Minor Changes

Fixed small compiler compatibility issues fixed in Raytracer Example.
Added #include <cstdint> to bardrix.h to include uint32_t for color.

Overview

This release changes to the API have been made, this is due to the fact that width and height in camera are now int instead of unsigned. This is due to compatibility with other libraries that use int for width and height. now call get_width(), get_height(), set_width(int), set_height(int).

shoot_ray(unsigned, unsigned, double) in camera now takes in int instead of unsigned for x and y. For the same reason width and height are now int.

Added examples for simple raytracing.

Documentation Changes

Added examples to docs/ for a very simple demonstration of how to use Bardrix and raytracing.
Updated bardrix-math class diagram since in v0.0.5 it included reflect and refract instead of reflection and refraction.
Updated bardrix-view class diagram to accommodate the new changes in camera.
Added release notes, this now gives more detail about the api changes happening in each release.
Added camera to the Bardrix_Reference.

Code Changes

Major Changes

Updated width and height to be int in camera. This is due to compatibility with other libraries that use int for width and height. This changes does affect the api; due to the fact that now you've got to call get_width(), get_height(), set_width(int), set_height(int).
Updated shoot_ray(unsigned, unsigned, double) in camera to take in int instead of unsigned for x and y. This changes does affect the api; due to the fact that now you've got to call shoot_ray(int, int, double).

Minor Changes

Added default constructor to camera with position (0, 0, 0), direction (0, 0, 1), width 800, height 600 and fov 90. Added << operator to camera to print out the camera's components.
Added bardrix:: prefix to all the functions and classes in objects.h and camera.h, sometimes there was an issue with overriding; when using an external IDE like clion it would not copy with it the pre-fixes.

Test Changes

Added extra tests for camera to test the new changes.
Removed a print line in vector3_test.cpp that was not needed.

Overview

The changes have no backward compatibility issues, as the changes are new features and bug fixes.

Documentation Changes

Added Bardrix_Reference that contains all the functions and classes in Bardrix.
Added Mathematics that contains mathematical functions to learn about the mathematics used in Bardrix.
Added Introduction that contains a brief introduction to Bardrix.
Added examples to documentation comments all over the code. Updated Conventions to include Class Conventions, Testing Conventions, Documentation Conventions and Commit Message Conventions.

Code Changes

Major Changes

Added material to create materials for objects. Added abstract shape class to create shapes for objects; e.g sphere, plane, triangle, etc.

Added grayscale and invert to color.

Added refraction and reflection to vector3. Returning optional vector3.

Minor Changes

Added != operator to ray, for some reason this was missing.

Updated normalize from vector3 to now return a reference to the changed vector3. void -> vector3&.
Updated normalize from quaternion to now return a reference to the changed quaternion. void -> quaternion&. Updated conjugate from quaternion to now return a reference to the changed quaternion. void -> quaternion&.
Updated reciprocal from quaternion to now return a reference to the changed quaternion. void -> quaternion&.