1
0
Fork 0
mirror of https://git.coom.tech/drummyfish/small3dlib.git synced 2024-11-21 20:39:57 +01:00

Update TODO

This commit is contained in:
Miloslav Číž 2019-06-12 15:53:12 +02:00
parent 0deafc2da6
commit c46f4ad219

View file

@ -36,10 +36,7 @@ features:
- perspective correction modes: - perspective correction modes:
- none DONE - none DONE
- full DONE - full DONE
- triangle subdivision (each triangle side will be subdivided after reaching - approximate DONE
a defined length, which will be measured by Chebyshev or similarly fast
distance).
- also offer some approximation function?
- predefined 3D shapes: - predefined 3D shapes:
- cube DONE - cube DONE
@ -52,11 +49,22 @@ features:
specified with a define (S3L_COMPUTE_DEPTH), which may be turned on 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 automatically for some modes (e.g. Z-buffer). It should be computed by the
fast lerp and passed in the PixelInfo struct. DONE fast lerp and passed in the PixelInfo struct. DONE
- Python tool to convert obj to C array DONE - Python tool to convert obj to C array DONE
- create demos
- Python tool to convert texture images to C array DONE
- create demos:
- model viewer DONE
- game-like demo (GTA-style, Quake style etc.)
- offline HQ (lerp texuring, normal mapping, reflections, ...) rendering
to PPM image file
- drawModel: create an option that would use a cache to not transform the same - drawModel: create an option that would use a cache to not transform the same
point twice point twice
- Optional rendering stats (FPS, rendered triangles, ...). - Optional rendering stats (FPS, rendered triangles, ...).
- profiling functions for optimization - profiling functions for optimization
bugs: bugs:
@ -64,10 +72,6 @@ bugs:
- Determining CW/CCW for a triangle is not 100% exact, sometimes leaves holes in - Determining CW/CCW for a triangle is not 100% exact, sometimes leaves holes in
models (some very thin triangles)! models (some very thin triangles)!
- With PC = 2, triangles that are at a too sharp angle can get very weird values
of barycentric AND DEPTH (which messes up the z-buffer). Seems to only affect
triangles facing right (not left).
- Barycentric coodinates can get wrong in these ways: - Barycentric coodinates can get wrong in these ways:
- Any of them can exceed the range <0,511> - Any of them can exceed the range <0,511>
- b0 + b1 can be > 511, which causes b2 (= 511 - b0 - b1) to be negative! - b0 + b1 can be > 511, which causes b2 (= 511 - b0 - b1) to be negative!