2019-05-12 18:06:09 +02:00
|
|
|
features:
|
|
|
|
|
2019-05-28 19:14:27 +02:00
|
|
|
- presets that can be optionally selected and will configure other constants
|
|
|
|
(e.g. a "low memory sort strategy" will turn z-buffer off and turn
|
|
|
|
back-to-front sorting on).
|
2019-05-26 20:00:28 +02:00
|
|
|
|
|
|
|
- triangle sorting:
|
|
|
|
- back-to-front (slower, better memory efficiency)
|
|
|
|
- front-to-back (faster, but needs 1bit stencil buffer)
|
|
|
|
|
2019-05-30 20:20:18 +02:00
|
|
|
- option to disable baycentric coordinates computing
|
|
|
|
|
2019-05-26 20:00:28 +02:00
|
|
|
- Z-buffer:
|
|
|
|
- full DONE
|
|
|
|
- reduced (resolution and precision) DONE
|
|
|
|
- more reduced (4-bit)
|
2019-05-12 18:06:09 +02:00
|
|
|
|
2019-05-29 18:09:59 +02:00
|
|
|
- MipMapping? Add triangle size to pixelInfo.
|
|
|
|
|
2019-05-12 18:06:09 +02:00
|
|
|
- perspective correction modes:
|
2019-05-23 15:57:32 +02:00
|
|
|
- none DONE
|
|
|
|
- full DONE
|
2019-05-12 18:06:09 +02:00
|
|
|
- triangle subdivision (each triangle side will be subdivided after reaching
|
|
|
|
a defined length, which will be measured by Chebyshev or similarly fast
|
|
|
|
distance).
|
|
|
|
- also offer some approximation function?
|
|
|
|
|
|
|
|
- predefined 3D shapes:
|
2019-05-23 15:57:32 +02:00
|
|
|
- cube DONE
|
2019-05-12 18:06:09 +02:00
|
|
|
- sphere
|
|
|
|
- cylinder
|
|
|
|
- pyramid
|
|
|
|
- plane
|
|
|
|
|
|
|
|
- Depth computation during rasterization -- this should be an optional thing,
|
|
|
|
specified with a define (S3L_COMPUTE_DEPTH), which may be turned on
|
|
|
|
automatically for some modes (e.g. Z-buffer). It should be computed by the
|
|
|
|
fast lerp and passed in the PixelInfo struct.
|
|
|
|
- Python tool to convert obj to C array
|
|
|
|
- helper functions for lighting/shading
|
|
|
|
- Line and point drawing modes for triangles should maybe not overlap on
|
|
|
|
adjacent triangles (as filled triangles already do)?
|
|
|
|
- create demos
|
2019-05-16 21:07:11 +02:00
|
|
|
- drawModel: create an option that would use a cache to not transform the same
|
|
|
|
point twice
|
2019-05-21 19:51:32 +02:00
|
|
|
- Optional rendering stats (FPS, rendered triangles, ...).
|
2019-05-20 17:35:12 +02:00
|
|
|
- Change the rotations to use yaw-pitch-roll instead of extrinsic Euler angles?
|
2019-05-12 18:06:09 +02:00
|
|
|
|
|
|
|
bugs:
|
|
|
|
|
2019-05-19 23:16:40 +02:00
|
|
|
- Why is persp. correction inaccurate near the camera?
|
|
|
|
|
2019-05-12 18:06:09 +02:00
|
|
|
repeated:
|
|
|
|
|
|
|
|
- valgrind (and similar) checks
|
|
|
|
- optimize
|
|
|
|
- write tests/benchmarks
|