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

Add writeTransform3D

This commit is contained in:
Miloslav Číž 2019-05-30 20:01:01 +02:00
parent 714f41f7ca
commit aa8cc634ba
2 changed files with 27 additions and 7 deletions

View file

@ -351,6 +351,12 @@ typedef struct
S3L_Vec4 scale; S3L_Vec4 scale;
} S3L_Transform3D; } S3L_Transform3D;
#define S3L_writeTransform3D(t)\
printf("Transform3D: T = [%d %d %d], R = [%d %d %d], S = [%d %d %d]\n",\
(t).translation.x,(t).translation.y,(t).translation.z,\
(t).rotation.x,(t).rotation.y,(t).rotation.z,\
(t).scale.x,(t).scale.y,(t).scale.z)
static inline void S3L_initTransoform3D(S3L_Transform3D *t); static inline void S3L_initTransoform3D(S3L_Transform3D *t);
/** Converts rotation transformation to three direction vectors of given length /** Converts rotation transformation to three direction vectors of given length

View file

@ -95,6 +95,8 @@ void drawPixel(S3L_PixelInfo *p)
coords = tex_coords + p->triangleID * 6; coords = tex_coords + p->triangleID * 6;
if (p->modelID != 0)
{
u = S3L_interpolateBarycentric( u = S3L_interpolateBarycentric(
0, 0,
0, 0,
@ -106,19 +108,22 @@ void drawPixel(S3L_PixelInfo *p)
15, 15,
0, 0,
p->barycentric[0], p->barycentric[1], p->barycentric[2]); p->barycentric[0], p->barycentric[1], p->barycentric[2]);
/* }
else
{
u = S3L_interpolateBarycentric( u = S3L_interpolateBarycentric(
coords[0], coords[0],
coords[2], coords[2],
coords[4], coords[4],
p->barycentric0, p->barycentric1, p->barycentric2); p->barycentric[0], p->barycentric[1], p->barycentric[2]);
v = S3L_interpolateBarycentric( v = S3L_interpolateBarycentric(
coords[1], coords[1],
coords[3], coords[3],
coords[5], coords[5],
p->barycentric0, p->barycentric1, p->barycentric2); p->barycentric[0], p->barycentric[1], p->barycentric[2]);
*/ }
uint8_t col = texturePixel(u,v); uint8_t col = texturePixel(u,v);
uint8_t dep = (p->depth / 5000.0) * 255; uint8_t dep = (p->depth / 5000.0) * 255;
@ -144,8 +149,8 @@ void draw()
uint32_t f = frame; uint32_t f = frame;
scene.models[0].transform.rotation.z = f * 0.1; //scene.models[0].transform.rotation.z = f * 0.1;
scene.models[0].transform.rotation.x = f * 0.3; //scene.models[0].transform.rotation.x = f * 0.3;
S3L_drawScene(scene); S3L_drawScene(scene);
@ -163,7 +168,16 @@ int main()
S3L_initCamera(&scene.camera); S3L_initCamera(&scene.camera);
scene.camera.transform.translation.z = -S3L_FRACTIONS_PER_UNIT * 2; // scene.camera.transform.translation.z = -S3L_FRACTIONS_PER_UNIT * 2;
scene.camera.transform.translation.x = 105;
scene.camera.transform.translation.y = 469;
scene.camera.transform.translation.z = 9;
scene.camera.transform.rotation.x = -35;
scene.camera.transform.rotation.y = 128;
scene.camera.transform.rotation.z = 0;
scene.modelCount = 2; scene.modelCount = 2;
scene.models = models; scene.models = models;