From 5f54a4f3b8db4657a481fd7d279058bed3e7a8a9 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Tue, 6 Sep 2022 14:53:25 +0200 Subject: [PATCH] Added texture mapping for the character model using a split front/back texture approach. --- CMakeLists.txt | 3 ++- main.c | 68 +++++++++++++++++++++++++++++++++++++++++-------- player.ps1mdl | Bin 125000 -> 125820 bytes player.tim | Bin 0 -> 64544 bytes player_b.tim | Bin 0 -> 32544 bytes player_f.tim | Bin 0 -> 32544 bytes ps1mdl.h | 18 ++++++++----- 7 files changed, 71 insertions(+), 18 deletions(-) create mode 100644 player.tim create mode 100644 player_b.tim create mode 100644 player_f.tim diff --git a/CMakeLists.txt b/CMakeLists.txt index ffd4d7d..564dd67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,8 @@ project( psn00bsdk_add_executable(template STATIC main.c) -psn00bsdk_target_incbin(template PRIVATE tim_player128 player128.tim) +psn00bsdk_target_incbin(template PRIVATE tim_player_f player_f.tim) +psn00bsdk_target_incbin(template PRIVATE tim_player_b player_b.tim) psn00bsdk_target_incbin(template PRIVATE tim_player16bpp player128-16.tim) psn00bsdk_target_incbin(template PRIVATE tim_shambler shambler128.tim) psn00bsdk_target_incbin(template PRIVATE mdl_player player.ps1mdl) diff --git a/main.c b/main.c index d3c54af..2fbcb65 100644 --- a/main.c +++ b/main.c @@ -42,12 +42,14 @@ u_long ot[2][OTLEN]; // Ordering tables, two arrays for double buffering. These char primbuff[2][32768]; // Primitive buffer, just a raw buffer of bytes to use as a pool for primitives char *nextpri; -extern u_long tim_player128[]; +extern u_long tim_player_f[]; +extern u_long tim_player_b[]; extern u_long tim_player16bpp[]; extern u_long tim_shambler[]; extern u_long mdl_player[]; -TIM_IMAGE playerTex; +// The player texture is divided into two pieces, so that each part is aligned to their own texture page +TIM_IMAGE playerFrontTex, playerBackTex; TIM_IMAGE shamblerTex; ps1mdl_t model; @@ -119,15 +121,16 @@ void init(void) nextpri = primbuff[0]; - loadTexture(tim_player128, &playerTex); - loadTexture(tim_player16bpp, &playerTex); + loadTexture(tim_player_f, &playerFrontTex); + loadTexture(tim_player_b, &playerBackTex); + //loadTexture(tim_player16bpp, &playerFrontTex); loadTexture(tim_shambler, &shamblerTex); loadModel(mdl_player, &model); // Set texture page for the entire drawing environment. Nice in some cases perhaps, but not what we need. - //draw[0].tpage = getTPage(playerTex.mode & 0x3, 0, playerTex.prect->x, playerTex.prect->y); - //draw[1].tpage = getTPage(playerTex.mode & 0x3, 0, playerTex.prect->x, playerTex.prect->y); + //draw[0].tpage = getTPage(playerFrontTex.mode & 0x3, 0, playerFrontTex.prect->x, playerFrontTex.prect->y); + //draw[1].tpage = getTPage(playerFrontTex.mode & 0x3, 0, playerFrontTex.prect->x, playerFrontTex.prect->y); } // Display function @@ -208,6 +211,34 @@ void addTexturedTriangle(int x0, int y0, int x1, int y1, int x2, int y2, short u nextpri += sizeof(POLY_FT3); } +void addGouraudTexturedTriangle( + int x0, int y0, int x1, int y1, int x2, int y2, unsigned char depth, + unsigned int rgb0, unsigned int rgb1, unsigned int rgb2, + short u0, short v0, short u1, short v1, short u2, short v2, TIM_IMAGE *img) +{ + if (img == NULL) + { + addColoredTriangle(x0, y0, x1, y1, x2, y2, rgb0, rgb1, rgb2, depth); + return; + } + + short uoffs = (img->prect->x % 64) << (2 - (img->mode & 0x3)); + short voffs = (img->prect->y & 0xFF); + + POLY_GT3 *poly = (POLY_GT3*)nextpri; + setPolyGT3(poly); + setXY3(poly, x0, y0, x1, y1, x2, y2); + setUV3(poly, uoffs + u0, voffs + v0, uoffs + u1, voffs + v1, uoffs + u2, voffs + v2); + setRGB0(poly, (rgb0 >> 16) & 0xFF, (rgb0 >> 8) & 0xFF, rgb0 & 0xFF); + setRGB1(poly, (rgb1 >> 16) & 0xFF, (rgb1 >> 8) & 0xFF, rgb1 & 0xFF); + setRGB2(poly, (rgb2 >> 16) & 0xFF, (rgb2 >> 8) & 0xFF, rgb2 & 0xFF); + setClut(poly, img->crect->x, img->crect->y); + setTPage(poly, img->mode & 0x3, 0, img->prect->x, img->prect->y); + + addPrim(ot[db] + depth, poly); + nextpri += sizeof(POLY_GT3); +} + void addTexturedSprite(int x, int y, int w, int h, TIM_IMAGE *img) { short uoffs = (img->prect->x % 64) << (2 - (img->mode & 0x3)); @@ -250,7 +281,7 @@ static int fakeLight(const int *norm) const int light[3] = { ONE, 0, 0 }; int lit = dot(norm, light) >> 4; // Calculate light intensity and normalize to [-256..255] lit = lit < 0 ? 0 : lit; // Clamp to [0..255] - lit += 32; // Add some ambient light + lit += 48; // Add some ambient light lit = lit > 255 ? 255 : lit; // Clamp to [0..255] again return lit << 16 | lit << 8 | lit; } @@ -262,7 +293,7 @@ void drawStuff(int counter) // Print the obligatory hello world and counter to show that the // program isn't locking up to the last created text stream FntPrint(-1, "COUNTER=%d, SIN=%d\n", counter, isin(counter)); - FntPrint(-1, "Image x %d y %d w %d h %d mode 0x%x\n", playerTex.prect->x, playerTex.prect->y, playerTex.prect->w, playerTex.prect->h, playerTex.mode); + FntPrint(-1, "Image x %d y %d w %d h %d mode 0x%x\n", playerFrontTex.prect->x, playerFrontTex.prect->y, playerFrontTex.prect->w, playerFrontTex.prect->h, playerFrontTex.mode); FntPrint(-1, "Model: %d tris, %d verts\n", model.header->triangleCount, model.header->vertexCount); // Draw the last created text stream @@ -278,6 +309,10 @@ void drawStuff(int counter) ps1mdl_vertex_t *v0 = &model.vertices[tri->vertexIndex[0] + vertOffs]; ps1mdl_vertex_t *v1 = &model.vertices[tri->vertexIndex[1] + vertOffs]; ps1mdl_vertex_t *v2 = &model.vertices[tri->vertexIndex[2] + vertOffs]; + + ps1mdl_texcoord_t *tc0 = &model.texCoords[tri->vertexIndex[0]]; + ps1mdl_texcoord_t *tc1 = &model.texCoords[tri->vertexIndex[1]]; + ps1mdl_texcoord_t *tc2 = &model.texCoords[tri->vertexIndex[2]]; // Use normal indices to generate a greyscale value. Good for just giving the polygons some gradients. unsigned int n0 = v0->normalIndex, n1 = v1->normalIndex, n2 = v2->normalIndex; @@ -298,7 +333,18 @@ void drawStuff(int counter) // Normally you'd have GTE do this but we're just going for a quick hack now unsigned short depth = ((unsigned short)v0->position[1] + (unsigned short)v1->position[1] + (unsigned short)v2->position[1]) / 3; - addColoredTriangle(v0->position[0], 240 - v0->position[2], v1->position[0], 240 - v1->position[2], v2->position[0], 240 - v2->position[2], rgb0, rgb1, rgb2, (unsigned char)depth); + // Since we have the texture split into two parts, we need to correct the UVs that are *not* on the seam, instead of the other way round + short u0 = !tri->frontFace && !tc0->onSeam ? tc0->u - (model.header->skinWidth >> 1) : tc0->u; + short u1 = !tri->frontFace && !tc1->onSeam ? tc1->u - (model.header->skinWidth >> 1) : tc1->u; + short u2 = !tri->frontFace && !tc2->onSeam ? tc2->u - (model.header->skinWidth >> 1) : tc2->u; + + addGouraudTexturedTriangle( + v0->position[0], 240 - v0->position[2], + v1->position[0], 240 - v1->position[2], + v2->position[0], 240 - v2->position[2], + (unsigned char)depth, + rgb0, rgb1, rgb2, + u0, tc0->v, u1, tc1->v, u2, tc2->v, tri->frontFace ? &playerFrontTex : &playerBackTex); } return; @@ -312,8 +358,8 @@ void drawStuff(int counter) addTile(128, 160, 48, 48, r, g, b); addColoredTriangle(260, 140, 220, 220, 300, 220, 0xFF0000, 0x00FF00, 0x0000FF, 0); - addTexturedTriangle(260, 40, 220, 120, 300, 120, 0, 94, 74, 124, 58, 1, &playerTex); - addTexturedSprite(20, 140, 80, 80, &playerTex); + addTexturedTriangle(260, 40, 220, 120, 300, 120, 0, 94, 74, 124, 58, 1, &playerFrontTex); + addTexturedSprite(20, 140, 80, 80, &playerFrontTex); addTexturedSprite(80, 40, 154, 114, &shamblerTex); } diff --git a/player.ps1mdl b/player.ps1mdl index 1feabe99c68dff7fafc6e3e415b9224ac63cbc24..66890daa15fb315bbdee0e6a40e3a2e87901061a 100644 GIT binary patch delta 4600 zcmXw-XH=F~636FB>|#M#6-7a?8&KD-prBZ=fs%-diXs*)h`l8Gie0f`?6HI(i7mDm zEZCyrqV7gCdveaYn~!_;gJ1G-v*n!q{YN(*?%bI>&z*ArGxxr!uBrQ@dkcaaZ6 z*Q~GgMA8kH0?W38j5%nU{mU*h{_Hx{_Iu=mZ6Mn-lED}=8)e@z&an1Ka&a|awJqZk%S8SUpN}OM zfsOF_7BtP);xzX2Edl0lc7X8>{svZP{h2om6xn}S4J_I2F%BkT`K}xcz`PMx3gfSA zs<9*!4bx`7*&4>sJbVxEb2sD19!;{J=v(5ELo<+1 z_UH>;XN8p@$?)`Md1A9jq*AQ_syL7UJ&ijo5lOQknQ^Wgd&9x$C|9xC-W)?ATaV}$ zmIHj2U*jEU<2~Zpe#W!ip#qmr^Rv(NjpA)2`rT|Q-*)7 z`oM+~U|>mZevW5rhJ}RHGz<&RN@*3RY4&$t{4qALdNUFXSM;%2wei{>h~elL-MPaXs&;|hGPQ% z5rN{446+!vc^Zp3@xVHHK@I`)GS-UK95%r|a{OHDBl z&M3nXjA78`?B4Ip_e3@x3Y|os>RXHux#G9Z$&V@G&8L-h^N$ZFB&FB9gfq+L1F%f({{$Ox8ccEj8&ZJpT-N zvF)+F(0z0Wb&e7`$LH{)2t+r^Dmw&@bo(Vbb`GPh$IMXf6OJdA~PX;07&>Z{PzJcyxJc522 zN7)_z8|0<%CppSI_yy#hOD{w!ay><57*sb{&GJgop!*2-3g3{9tCXNpKbhnQ zcs2+5Ix53-$O5P z!2QwdNDcLZjwkFXinxNCU1!-IBt$|pIGG*D#}e5s__=sG4?dSq1e(6&KxLPXUIsLV z@AULa_yM$n zJN^gOOMuoR_?2v>%XKpe7y9p#L~Yc~9-}V<{n$tSAj=z9C2rq^-w5u7`YvcbfwrZN zE+CJ$j1V8mqdc$gd2FZ;)_{GLODUjHKe$MP68fKTWvYJna)JU^7PU|XJ-gifHX z=$SGZaOpa~Nu4OO#e|{tD2{F{{BB%SXT4^jJT?sMDGf3anujYZQMf@WQ{WHSAN-{< zi8Jd2Kb_Op1`jbP5OtxL^YoAG46J;wY{-y@Cshc&#_GQn0VgEWlm$ zi4+2R3V)8O$bm26AWy-cr8ZRdp(3{b9>GD(>1=jVI4YYPbT*;Vq9L9}v=oNDa70@ea=t26J{hmP+uy9oMznIRg9=?iX z>TE|*Bv+wZP*M5xC5ETaBFt}wp2D3&=tpzXG0?~M9Kh;9b_gQ@NU0(hy4_;gN9EcB zm-GwZG!E$2><6!Exj}%`e;I>r!2-5h1l>uUUV`>!rbe?4IL?O-=i1Swvy2Y^0=|Ia z+60}$imGTht4mpLLqICya^NfQmUGgj&=^8}xBs_(*9_wh&Bs2*`pXX@U+<2L!RIRY zTi{+tbCDE}f!_egbg4vB?Rxi}MPEl%0mctQqj*;Qk@Z+;9Q+B6@)CRn=r4vIq4SkO z|71VfOXvw!Lu#2Xti~VEFNka#{Ezm^UZXG?0|Mu3_!{`vXugDB#um%rpON_I&etFb z_#I59Cww;!_qW4m>-VpIkG9444lHa#O$K^%>MF-V99o8a zIdVC6fMTqKF98LY;V%PPwdN?|9*F!Da8)@z0L}t)J9fSRJqKKMmplh80$(iF1lq?I zy6>HCJomI-E-OLtZ4`!ZyUl^#2DJj!KyJNk=s2{Zp-<>!4_L2ei*E1>d64MWP&J&Y z+c?}&1SoH&JJ&+O>%Gve|-(93ugq;Qer4t=2)Xh&*Pcd(*r2QL8cJbCab!0}!AbaybGq4CDHvz)?ryKpZX{t*eThVM>; zRSWKqi@IG;b2w^Ldw`-^@hdO^Ru&LXzCR}8cpAymDn8YR`rirqWqS}9>1Fdd8$W^$ wBqOoNk5is1(;ieyPiQ5%yUzMcHdba9Q*aZZ6Dh_e7HlbLe6yr+aPu$!13n|KV*mgE delta 3774 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 diff --git a/player.tim b/player.tim new file mode 100644 index 0000000000000000000000000000000000000000..355ec5e54e456a7b9aa2e6c08e81878c01eab799 GIT binary patch literal 64544 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 literal 0 HcmV?d00001 diff --git a/player_b.tim b/player_b.tim new file mode 100644 index 0000000000000000000000000000000000000000..0a1346d607777abaf632d5c91fa3935db755ef5f GIT binary patch literal 32544 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

peA?#s(pa%3SGlW#;q3rBGlnE_yUs4 zguQYF$5E&K8)(Vr+%NUhpZcz+W8is%-`n;Q=Iz_sOyg>C6Ojzj;fYCmZNI~V-%ouT z-JS-xvkrJC=hgK5Po;5rS@Qk&&)R(8fTmwVVR-vT1mD7;6sj#FBD3CBCSBLX&i^I8xQ5=6Pah3T}eQf_OpzhbL;jI7ndd z$8U8)fPVog9vSHCqkFp?*tgUFZr}3hf)B?>Tlg1wM0omPr43+wCLys4p!`pK z2M~1MG|bGwK>x__@MVph2QGc$c_fU)$L$dBmT}&?b<6Sj`YCYr?K|+I`iS26g=e80 z+ufZhx_4-3cnHSfAsfChOZ04<4=9k3?v`G*Xnf!)VtLUzUI?Jn3k1@lTtEVAr!QZy zJ4(=fnZe5t<15}6zzjn9EaE-ip4au6944T=0zR47v9<9+0G|(h`(vJ%K8oL+DZ1C^ zV|Ya*GsNoefA-l+cw}&l6V1SWEcpUHlLxoM^@vcZXYEJ%*dhTfO}m|;yg}^`{^Z_h zXmDs~$RGW|$K3Nki03&d_kPPhT%C>&JY_fi&FuYrI>bEFu^&x8Y&w*{yl!x+ah2{r z+I+We{aD35cw;T(lYddn|6J@s6ez+XMgE6|%HlEi432v6r}Tr*jqepBxL=eH0R;z_ z5cS*UGnZ15_G1IsPCi|O`e@@v!3P6%90A|pz>sr4-MtxKTRu;GDz5`)3lTm^5?Ijb z)dq0#ISIit<39Z8%JYoR%!}Ivx0f+KV{>Ts-qsI38CazgPaQNn9l!n(v^$_foE}y+ zd%)biZasYY^*F~lg}YaMnd_HlZpYcVb zgK7k4>hTU_P_f@W@{xT*3kQ3H5wzj?$(!Z&?p~M7|As`#BvwDSZ7{~q6`lJPW}si- zfZ%BWE$t|gGi@Di^}znO;i9`EM|NFI4D=0_&TG*^L)HlMfqwdpVLptjlb)y(Yql;8}^xW zzybKtBfBia$FocEIrHw9&jSoJ_x@TaU(i7q9{M@JXiLVY?vFp|j)1y==3s??LAEUNJu2dA$-6pdH1%^P#o)_(_{|0h(Zg zP=CuSJh|ruC1mqB-FrZIfcwEGFjr#w$z<^oZP(rS3Y{V^Z9M$!uID*GgG4<-B-(^q zc4RNV@(Mrgy$;N^ZtvRA-mMuf^SR&xbWCLTLoBut4Rha_FTX4@SK2!j9_kvftAGDZ z5^3*t;j7yt{^guJp#wj1WN(W;gE5w{5qKrx0jI6mh6Gy%vB1~Wv;A(8!(SJPYegM{xQpRXQ>Vf*qe{SPj*PyV%= zaQR!fU+yPDP4Nf!@9n$0@UUZ9Fw?rXus-2Q6H*(1%p#b4As=|MFxw@dZa}RM4o^SU zg*IPUt+^MCnmX1&bnq!0gr{k7n;75Mzl3$Y8wcEsIbamP@GvR+q~DeXs6ST$0{}cwMeh+lVDvHvHP_QV+aJ5g zcW*^_2N!Ge;9c7K?jgl$4*s&n{!e$<{_XyjSS|13%E18dVuSBh{hk8vDe#^G?=FI{*Lx literal 0 HcmV?d00001 diff --git a/player_f.tim b/player_f.tim new file mode 100644 index 0000000000000000000000000000000000000000..93181aeaf31f98a50d05992c25a63f828100b588 GIT binary patch literal 32544 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 a8@