From 08008af2a0081e15883f7ac886d66a54360f4faa Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Sun, 15 Jan 2023 21:28:53 +0100 Subject: [PATCH] Implemented rudimentary baked lighting through vertex colors and gouraud shading. --- test.ps1bsp | Bin 60174 -> 60174 bytes world.c | 22 ++++++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/test.ps1bsp b/test.ps1bsp index 809f689ac9d7823efdee304cb6db9a2fae0a8fb2..63cf6dd62769fdc5911350c0ddf570712f7b5502 100755 GIT binary patch literal 60174 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 diff --git a/world.c b/world.c index f33bb3a..9f426f6 100644 --- a/world.c +++ b/world.c @@ -58,14 +58,20 @@ void world_draw(const world_t *world) unsigned short *faceVertIndex = &world->faceVertIndices[face->firstVertexIndex]; for (int vertIdx = 0; vertIdx < face->numVertices; ++vertIdx, ++faceVertIndex) { - vecs[vertIdx] = *((SVECTOR*)&world->vertices[*faceVertIndex]); + const ps1bsp_vertex_t *vert = &world->vertices[*faceVertIndex]; + vecs[vertIdx] = *((SVECTOR*)vert); + vecs[vertIdx].pad = vert->baseLight; } // Draw the face as a triangle fan for (int vertIdx = 1; vertIdx < face->numVertices - 1; ++vertIdx) { + const SVECTOR *v0 = &vecs[0]; + const SVECTOR *v1 = &vecs[vertIdx]; + const SVECTOR *v2 = &vecs[vertIdx + 1]; + // Naively draw the triangle with GTE, nothing special or optimized about this - gte_ldv3(&vecs[0], &vecs[vertIdx], &vecs[vertIdx + 1]); + gte_ldv3(v0, v1, v2); gte_rtpt(); // Rotation, translation, perspective projection // Normal clipping for backface culling @@ -82,17 +88,17 @@ void world_draw(const world_t *world) continue; // Draw a flat-shaded untextured colored triangle - POLY_F3 *poly = (POLY_F3*)mem_prim(sizeof(POLY_F3)); + POLY_G3 *poly = (POLY_G3*)mem_prim(sizeof(POLY_G3)); if (poly == NULL) break; - setPolyF3(poly); + setPolyG3(poly); - gte_stsxy3_f3(poly); + gte_stsxy3_g3(poly); - poly->r0 = col->r; - poly->g0 = col->g; - poly->b0 = col->b; + poly->r0 = poly->g0 = poly->b0 = (uint8_t)v0->pad; + poly->r1 = poly->g1 = poly->b1 = (uint8_t)v1->pad; + poly->r2 = poly->g2 = poly->b2 = (uint8_t)v2->pad; addPrim(curOT + depth, poly); }