TODOs

  • light temperature

  • support wavelength and dispersion

  • support multiple lights

  • support different light types: Point, Laser, Directional, Spot?

  • support different shapes: Rectangle, Spherical Lens

  • support rotation transform

  • support multiple materials for each shape

  • add transform manipulators for all.

  • implement shape manipulators

  • randomize diffuse bounce

  • select shapes with mouse click

  • Inspector for selected object's transform, shape and material components

  • select lights

  • light inspector

  • manip for directional light width

  • add reinhardt tonemapping and exposure (handle linear RGB to sRGB covnersion here)

  • progressive rendering

  • implement raytracing on the CPU for svg viewport

  • physically accurate BSDFs. eg dielectric relfection.

  • add linesegment shape

  • add prism shape

  • refactor svg viewport. Use child elements, to map entities to their own elements.

UI/UX

  • align ui group attributes to each group.
  • mousetools to create and delete objects
  • show when lights are selected. selection shape is too small? hard to select
  • persistent scene
  • persistent settings
  • implement settings
  • fix ugly sidebars
  • fix ugly manipulators
  • remove coreui

fix bugs

  • persistent viewbox

  • stop gl rendering when hidden

  • circle size handler is usable even when not selected...

  • [/] handle errors in components. eg.: raytracing errors in SVGRaytracer component

  • distrubute lightSamples among all lights (based on intensity)

  • rasterize bias: fix ray energy uniform in all direction

  • fix convex lens rayrtacing in webgl raytracer

  • lens intersect outside of diemeter, when edge thickness is greater then zero

  • physically accurate wavelength to color wavelength->XYZ->linearRGB->sRGB

  • review data texture types. eg.: dont use alpha for light color. some texture a

  • review tonemapping. support multiple colorspaces

  • refactor glviewport to map entities to its internal data (eg initialrays array, transformArray, shapes Array materialsArray...)

  • fix svg raytracer.

  • fix SVGRaytracer interacting with a rectangle.

  • support dispersion in svg-raytracer?

  • direction light width manip is a bit strange. should act on the axis only not by distance

  • refactor mousetools (eg. react component)

  • check if GLRaytracer leaks memory?

  • mobile support