mirror of
https://git.coom.tech/drummyfish/small3dlib.git
synced 2024-11-21 20:39:57 +01:00
Edit comments
This commit is contained in:
parent
d39b83d932
commit
3a14f0de21
1 changed files with 18 additions and 6 deletions
24
s3l.h
24
s3l.h
|
@ -1,5 +1,9 @@
|
||||||
/*
|
/*
|
||||||
WIP simple realtime 3D rasterization-based library.
|
WIP
|
||||||
|
|
||||||
|
Simple realtime 3D software rasterization library. It is fast, focused on
|
||||||
|
resource-limited computers, located in a single C header file, with no
|
||||||
|
dependencies, using only integer arithmetic.
|
||||||
|
|
||||||
author: Miloslav Ciz
|
author: Miloslav Ciz
|
||||||
license: CC0 1.0
|
license: CC0 1.0
|
||||||
|
@ -10,8 +14,16 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
typedef int16_t S3L_Unit;
|
typedef int16_t S3L_Unit; /**< Units of measurement in 3D space. There is
|
||||||
|
S3L_FRACTIONS_PER_UNIT in one spatial unit.
|
||||||
|
By dividing the unit into fractions we
|
||||||
|
effectively achieve fixed point arithmetic.
|
||||||
|
The number of fractions is a constant that
|
||||||
|
serves as 1.0 in floating point arithmetic
|
||||||
|
(normalization etc.). */
|
||||||
|
|
||||||
#define S3L_FRACTIONS_PER_UNIT 1024
|
#define S3L_FRACTIONS_PER_UNIT 1024
|
||||||
|
|
||||||
typedef int16_t S3L_ScreenCoord;
|
typedef int16_t S3L_ScreenCoord;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -26,14 +38,14 @@ typedef struct
|
||||||
S3L_ScreenCoord x; ///< Screen X coordinate.
|
S3L_ScreenCoord x; ///< Screen X coordinate.
|
||||||
S3L_ScreenCoord y; ///< Screen Y coordinate.
|
S3L_ScreenCoord y; ///< Screen Y coordinate.
|
||||||
|
|
||||||
S3L_Unit barycentric0; /**< Barycentric coord A (corresponds to 1st vertex).
|
S3L_Unit barycentric0; /**< Barycentric coord 0 (corresponds to 1st vertex).
|
||||||
Together with B and C coords these serve to
|
Together with 1 and 2 coords these serve to
|
||||||
locate the pixel on a triangle and interpolate
|
locate the pixel on a triangle and interpolate
|
||||||
values between it's three points. The sum of the
|
values between it's three points. The sum of the
|
||||||
three coordinates will always be exactly
|
three coordinates will always be exactly
|
||||||
S3L_FRACTIONS_PER_UNIT. */
|
S3L_FRACTIONS_PER_UNIT. */
|
||||||
S3L_Unit barycentric1; ///< Baryc. coord B (corresponds to 2nd vertex).
|
S3L_Unit barycentric1; ///< Baryc. coord 1 (corresponds to 2nd vertex).
|
||||||
S3L_Unit barycentric2; ///< Baryc. coord C (corresponds to 3rd vertex).
|
S3L_Unit barycentric2; ///< Baryc. coord 2 (corresponds to 3rd vertex).
|
||||||
} S3L_PixelInfo;
|
} S3L_PixelInfo;
|
||||||
|
|
||||||
#define S3L_BACKFACE_CULLING_NONE 0
|
#define S3L_BACKFACE_CULLING_NONE 0
|
||||||
|
|
Loading…
Reference in a new issue