mirror of
https://git.coom.tech/drummyfish/small3dlib.git
synced 2024-11-21 20:39:57 +01:00
Texture the cube correctly
This commit is contained in:
parent
8d7316baad
commit
fb9f7c6b10
2 changed files with 22 additions and 20 deletions
4
s3l.h
4
s3l.h
|
@ -1011,7 +1011,9 @@ static inline void S3L_mapCameraToScreen(S3L_Vec4 point, S3L_Camera *camera,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Helper function to interpolate texture coordinates based on barycentric
|
Helper function to interpolate texture coordinates based on barycentric
|
||||||
coordinates.
|
coordinates. If you're going for max performance, you may want to compute
|
||||||
|
these values yourself -- some specific cases may be possible to compute
|
||||||
|
faster.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void S3L_interpolateTexCoords(
|
void S3L_interpolateTexCoords(
|
||||||
|
|
38
testSDL.c
38
testSDL.c
|
@ -42,18 +42,18 @@ S3L_Unit ver[] =
|
||||||
|
|
||||||
S3L_Unit tex_coords[] =
|
S3L_Unit tex_coords[] =
|
||||||
{
|
{
|
||||||
16,0, 0,0, 16,16,
|
1,1, 0,0, 1,0,
|
||||||
16,0, 0,0, 16,16,
|
1,1, 0,1, 0,0,
|
||||||
16,0, 0,0, 16,16,
|
1,0, 1,1, 0,1,
|
||||||
16,0, 0,0, 16,16,
|
1,0, 0,1, 0,0,
|
||||||
16,0, 0,0, 16,16,
|
0,0, 1,0, 1,1,
|
||||||
16,0, 0,0, 16,16,
|
1,1, 0,1, 0,0,
|
||||||
16,0, 0,0, 16,16,
|
0,1, 0,0, 1,0,
|
||||||
16,0, 0,0, 16,16,
|
0,1, 1,0, 1,1,
|
||||||
16,0, 0,0, 16,16,
|
1,1, 0,0, 1,0,
|
||||||
16,0, 0,0, 16,16,
|
1,1, 0,1, 0,0,
|
||||||
16,0, 0,0, 16,16,
|
0,1, 1,0, 1,1,
|
||||||
16,0, 0,0, 16,16
|
0,1, 0,0, 1,0
|
||||||
};
|
};
|
||||||
|
|
||||||
#undef S
|
#undef S
|
||||||
|
@ -140,9 +140,9 @@ void drawPixel(S3L_PixelInfo *p)
|
||||||
coords = tex_coords + p->triangleID * 6;
|
coords = tex_coords + p->triangleID * 6;
|
||||||
|
|
||||||
S3L_interpolateTexCoords(
|
S3L_interpolateTexCoords(
|
||||||
coords[0],coords[1],
|
coords[0] * 16,coords[1] * 16,
|
||||||
coords[2],coords[3],
|
coords[2] * 16,coords[3] * 16,
|
||||||
coords[4],coords[5],
|
coords[4] * 16,coords[5] * 16,
|
||||||
p,
|
p,
|
||||||
&u,&v);
|
&u,&v);
|
||||||
|
|
||||||
|
@ -161,8 +161,8 @@ void draw()
|
||||||
{
|
{
|
||||||
clearScreen();
|
clearScreen();
|
||||||
|
|
||||||
// modelTransform.rotation.z = frame * 0.2;
|
modelTransform.rotation.z = frame * 0.1;
|
||||||
// modelTransform.rotation.x = frame * 0.1;
|
modelTransform.rotation.x = frame * 0.3;
|
||||||
|
|
||||||
S3L_drawModelIndexed(ver,tri,12,modelTransform,camera,conf);
|
S3L_drawModelIndexed(ver,tri,12,modelTransform,camera,conf);
|
||||||
|
|
||||||
|
@ -219,8 +219,8 @@ int main()
|
||||||
camera.resolutionX = SCREEN_WIDTH;
|
camera.resolutionX = SCREEN_WIDTH;
|
||||||
camera.resolutionY = SCREEN_HEIGHT;
|
camera.resolutionY = SCREEN_HEIGHT;
|
||||||
camera.transform.translation.z = -S3L_FRACTIONS_PER_UNIT * 2;
|
camera.transform.translation.z = -S3L_FRACTIONS_PER_UNIT * 2;
|
||||||
camera.transform.translation.x = S3L_FRACTIONS_PER_UNIT;
|
// camera.transform.translation.x = S3L_FRACTIONS_PER_UNIT;
|
||||||
camera.transform.translation.y = S3L_FRACTIONS_PER_UNIT;
|
// camera.transform.translation.y = S3L_FRACTIONS_PER_UNIT;
|
||||||
|
|
||||||
S3L_initTransoform3D(&modelTransform);
|
S3L_initTransoform3D(&modelTransform);
|
||||||
S3L_initDrawConfig(&conf);
|
S3L_initDrawConfig(&conf);
|
||||||
|
|
Loading…
Reference in a new issue