Skip to content

Latest commit

 

History

History
85 lines (80 loc) · 3.05 KB

checklist.md

File metadata and controls

85 lines (80 loc) · 3.05 KB

- [ ] Overview

  • Vectors, Matrices and Rays
  • Validate .rt scene files
  • Parse .rt scene files
  • Ray tracing logic
    • Camera
    • Spheres
    • Planes
    • Cylinders
    • Ambient light
    • Spot Light
    • Hard Shadows
  • Minilibx user interface
  • norminette

- [x] Mandatory

  • Don't turn in libs as submodules.
  • Migrate ft_libbmp to minirt.h.
  • Makefile should explicitly name all source files (make dump_sources).
  • Make must compile without relinking
    • make all shouldn't recompile/rearchive any objects or sources.
    • Add .keep to object dirs
    • Create non-phony rule for each lib archive
  • Test in workspaces
  • Compiles with workspace's cc (clang version 12.0.1)
    • Switch Makefile's clang-12 to CC before submitting.
  • Program name miniRT
  • Follows norminette 3.3.51
  • Makefile rules: $(NAME) all clean fclean re bonus
  • Make must compile without relinking
  • Makefile must not relink
  • Compiles with -Wall -Wextra -Werror
  • Should not quit unexpectedly (segmentation fault, bus error, double free, etc.)
  • All allocated heap memory properly freed, no memory leaks.
    • Use gcc -fsanitize=leak flag.
    • Check memory leaks with valgrind.
  • Turn in Makefile, *.h, *.c, .gitignore
  • Allowed functions:
    • open, close, read, write, printf, malloc, free, perror, strerror, exit
    • All math.h
    • All mlx.h
    • All libft.h
  • Create demo projects with miniLibX to see how it works
  • Load scene from .rt file
    • Validate file name: *.rt
    • Validate .rt file format
    • Validate normalized vectors
    • Skip comment lines (#)
    • Ambient lightning: A NORMALIZED_BRIGHTNESS RED,GREEN,BLUE
    • Camera: C X,Y,Z OX,OY,OZ HORIZONTAL_FIELD_OF_VIEW
      • Use a different up vector when orientation is also up.
    • Light: L X,Y,Z NORMALIZED_BRIGHTNESS RED,GREEN,BLUE
    • Sphere: sp X,Y,Z DIAMETER RED,GREEN,BLUE
    • Plane: pl X,Y,Z OX,OY,OZ RED,GREEN,BLUE
    • Cylinder: cy X,Y,Z OX,OY,OZ DIAMETER HEIGHT RED,GREEN,BLUE
  • Create Vectors functions
  • Create Linear Algebra functions
  • Define ray tracing logic
  • Objects
    • Spheres
    • Planes
    • Cylinders
    • Correctly handle object intersections
    • Correctly handle object inside
  • Create a user interface with MiniLibX
    • Use MiniLibX ’s images
    • Window management must remain smooth
    • Close window button exits the program cleanly
    • esc key exits the program cleanly
    • Refresh image so it doesn't disappear on the VNC when window is minimized

- [ ] Bonus

  • Add specular reflection to have a full Phong reflection model.
  • One other 2nd degree object
    • Cone
    • Hyperboloid
    • Paraboloid
  • Color disruption: checkerboard.
  • Colored and multi-spot lights.
  • Handle bump map textures.
  • Save trace to .bmp file
    • s key saves the image