Releases: JstnMcBrd/ray-tracer
Releases · JstnMcBrd/ray-tracer
4.0.0
🟡 Backwards-compatible changes for console API or scene definitions
🔴 Breaking changes for console API or scene definitions
Added
- 🟡 Circle object type
- 🟡 Triangle object type
- Automatic conversion of 3-sided Polygons to Triangles
- Typing for Plane constructor
- Linting with PyLint
- 🟡 Argument defaults for
output
,width
, andheight
- Improved argument parsing
- Loading bar for writing to
PPM
files - Versioning section to
README
.env.example
file for arguments- 🟡 Support for writing output to
PNG
files
Changed
- 🔴
"center"
and"point"
object attributes to"position"
- Object attributes to be ordered by position, rotation, size
- 🔴 Output to go to
PNG
files by default - Private parameters of object classes to be accessible from subclasses
- Private methods to be privatized
lib_patch
folder to justlib
lib
scripts to use their library namevector_utils.py
tovector.py
- Moved all Objects into the same script
- Reorganized README
- Linted all files
- Docstrings
- Safer typing
- Limited line length
PascalCase
andsnake_case
conformityisinstance
for type comparisonenumerate
for iteration
- Command line output to be improved
3.0.0
🟡 Backwards-compatible changes for console API or scene definitions
🔴 Breaking changes for console API or scene definitions
Added
- 🟡 Polygon object type
- 🟡 Plane object type
- Shadows
- 🟡 Reflectivity object parameter
- Reflectivity to program 5 sample scenes
- Reflections & recursive raycasting
- 🟡
reflection-limit
argument - Multiprocessing for faster calculations
istarmap
patch for multiprocessing libraryclosed_pairwise
patch to itertools library- Progress bar
- 🟡
progress-bar
toggling argument - Program 6 sample scenes
- Program 6 custom scene
- Auto-normalization warning to scene importer
- 🟡 Default values to scene importer
- "Writing to file" indicator
- Better scene type definitions to README
Changed
- 🔴 Replaced
direction_to_light
withlight_direction
for scene definitions - 🔴 Renamed all env arguments to match console arguments
- Moved raycasting to separate classes
- Moved vector magnitude and normalization to separate script
- Moved camera axes to separate Camera object
- Simplified Sphere normal calculation
- Transitioned to safer None comparisons
- New example image to README
Fixed
- Clamped color values
- Inaccurate
camera_look_at
importing - 🔴 Bug where
field_of_view
could be 360 instead of 0
2.0.0
🟡 Backwards-compatible changes for console API or scene definitions
🔴 Breaking changes for console API or scene definitions
Added
- 🟡 Progress reporter to allow the user to see job progress
- Timer to track efficiency
- Type-hinting for
scene_importer
- PPM viewer extension to VS Code extensions
Changed
- 🔴 Transitioned to Pythonic formatting (using lowercase and underscores instead of camelcase)
- Moved
ray_trace()
to separate script - Moved shading to separate script
- Moved
load_scene()
toscene_importer
- Moved
write_to_ppm()
to separate script - Moved Objects to separate files
- Made git ignore ppm output files
- Renamed repository
- Improved README example image quality
Fixed
- Bug where window point was calculated incorrectly and made the window half the size
1.0.0
Added
- Argparsing with environment variable alternatives
- Scene importing system
- Basic raytracing
- Basic Phong shading model
.ppm
output formatting- Support for Spheres
- Scenes from Program 5 and converted them to JSON
- Custom scene 3 for Program 5
- Basic README
vscode
devcontainer configuration- Other
vscode
settings