Wishlist
From Manta
| Table of contents |
[edit]
Major projects
- Implement a better plug-in architecture so that arbitrary objects and
- Complete channel interface with th eability to activate/deactivate channels, remove them, etc.
- Remove stereo from the main pipeline, and implement it with multiple channels
- Implement a more general multi-stage pipeline infrastructure with dependencies between stages and arbitrary data-passing between stages (not just images)
- Implement a distributed load balancing and data handling mechanism using RDMA
- Implement some form of dynamic classes to enable specializations based on data type
[edit]
Medium-sized projects
- Rename fragment to PixelSet or something better
- Implement CMake for RTSL files
- Split up main MantaInterface class into multiple interfaces
- Improve deadlineImageTraverser with better criteria and performance enhancements
- Implement more idlemodes, such as one that adds samples or global illumination. This will require pipeline reconfigurations or activating/deactivating channels.
- Implement a Kajiya style pathtracing renderer
- Scalability testing and improvements
- Add ability to draw debug rays using cylinders for ray segments
- Add ability to track stats and draw them on an overlay
- Investigate need for a callback when the number of works changes
- Flag raypackets with a common signs
- Figure out a way to negotiate ray normalization from primitives. Can the preprocess request it and have the camera generate normalized rays if possible?
- Add a mechanism for tracking average raypacket sizes as a function of type (primary, shadow, secondary, etc.)
- Add a single-ray interface and use it when there is only one ray left.
- Pass down attenuation for ray-tree pruning (Isn't this somewhat handled by the importance member of the RayPacket? - Bigler)
- Port the C-SAFE demo, which would require a volume renderer and a many-sphere acceleration structure
- Implement a templated generalized acceleration structure for primitives, or bags of just triangles, or many spheres, or ...
- Separate shading normals from geometric normals, implement bump mapping
- Separate intersect for shadow rays?
- Pass down index of refraction to handle nested refraction
- Implement stack for scratchpad
- Consider removing texcoordmappers
- Abort current frame when interactions appear?
- Add support for sets of cameras - like stereo pairs, cameras for walls of a cave, etc. Interactions apply to all cameras in the set.
- TiledImageTraverser should pick a good size for square packets. Currently with the default packet size of (32) you end up with 5x5 fragments trying to fill packet sizes of 32x2.
- Image dumps
- High quality image dumps.
- Implement ImageMagic image writer
- Formally verify the Dielectric code
- Finish up the python scene reader (SwigInterface/python.cc) for bin/manta.
- Allow bin/manta to shoot a single debug ray at a given pixel location and exit.
- Turn jittering on and off from wxManta and XWindowUI.
[edit]
Documentation
- Documentation - create a wiki page for every primitive
[edit]
Machine ports
- Port to LANL roadrunner
- Port to Cray XT3
[edit]
Self-contained projects
- Implement Constructive solids geometry
- Better way to synchronize callbacks without using a crowdmonitor
- Improve scalability on large CPU-count machines
- Examine all of the Interface classes for const correctness
- Implement a tiled image class
- Implement a Z-order image traverser and a hilbert curve
- Improve performance of top end, including SSE for non-line packets
- Implement a new input device, such as a griffin knob or a tablet
- Implement a double-sided material that chooses between two different materials based on the normal
- Map phong exponent in metal material. Use a specialization if the exponent is zero (with dynamic classes)
- Investigate using quaternions for InstanceRT
- Add new scenes!
- Port isosurfacing grid code from rtrt
