diff --git a/README.md b/README.md index db156bd..dd847c1 100644 --- a/README.md +++ b/README.md @@ -41,68 +41,6 @@ Real-time 3D / 8bpp background / 4bpp background * Fix and improve all the things ! * Wall collisions -Specifically, it generates a C file containing for each mesh in the scene: - - * an array of SVECTOR containing the vertices coordinates - * an array of SVECTOR containing the normals - * an array of SVECTOR containing the UV coordinates of the texture - * an array of CVECTOR containing the color of each vertex - * an array of int that describe the relation between the tri meshes - * a TMESH struct to ease access to those arrays - * declarations of the binary in memory - * a TIM_IMAGE struct ready to host the image data - -A few usefull stuff for manipulating the mesh : - - * a MATRIX that will hold the mesh tranformations - * a VECTOR holding the object's location in world coordinates - * a SVECTOR holding the object's rotation in PSX angle units (1 == 4096) - * a flag isPrism for a pseudo-refraction effect. If 1, texture is the framebuffer draw area ( __WIP__ ) - * a long holding p, the depth-cueing interpolation value used by the PSX - - For easy access to those, a MESH struct is defined as : - -```c -typedef struct MESH { - TMESH * tmesh; - PRIM * index; - TIM_IMAGE * tim; - unsigned long * tim_data; - MATRIX * mat; - VECTOR * pos; - SVECTOR * rot; - short * isRigidBody; - short * isStaticBody; - short * isPrism; - short * isAnim; - short * isActor; - short * isLevel; - short * isBG; - short * isSprite; - long * p; - long * OTz; - BODY * body; - VANIM * anim; - struct NODE * node; - VECTOR pos2D; - } MESH; - -``` - -## TMESH struct : - -From `libgte.h` : - -```c -typedef struct { - SVECTOR *v; /*shared vertices*/ - SVECTOR *n; /*shared normals*/ - SVECTOR *u; /*shared texture addresses*/ - CVECTOR *c; /*shared colors*/ - u_long len; /*mesh length(=#vertex)*/ -} TMESH; -``` - # Install the plugin **This plugin is not compatible with Blender > 2.79.** @@ -127,27 +65,10 @@ On Linux : `~/.config/blender/2.79/scripts/addons` On macOS : `./Blender.app/Contents/Resources/2.79/addons` On Windows : `%USERPROFILE%\AppData\Roaming\Blender Foundation\Blender\2.93\` -# Steps to convert your mesh - - 1. You must first triangulate your mesh (manually or via the modifier). - - 2. When your model is ready, you can then vertex paint it. If you don't, the vertices colors will default to white. - - * If you modify your geometry *after* vertex painting, the plugin will faile to export the mesh. This is because the vertex color data is set to 0 each time you modify your geometry. - - 3. You can UV unwrap your model and apply a texture. The provided code will look for a tim file corresponding to the name of the image file you use in blender in the 'TIM' folder. -E.g : You use a 'cube.png' file in blender, the psx code will look for a 'cube.tim' file in ./TIM - - * If needed, edit the `primdraw.c` file , lines 29 and 30, to reflect the number of tris you want to be able to draw ( Max seems to be ~750 in NTSC, ~910 in PAL ) - -```c -#define OT_LENGTH 2048 // Maximum number of OT entries -#define MAX_PRIMS 1024 // Maximum number of POLY_GT3 primitives -``` -seem to be safe values. - # Compiling +**TODO: Update these instructions** + The provided `Makefile` uses the [Nugget+PsyQ setup](https://github.com/ABelliqueux/nolibgs_hello_worlds#setting-up-the-sdk--modern-gcc--psyq-aka-nuggetpsyq). 1. Clone this repo in `(...)/pcsx-redux/src/mips/` @@ -160,12 +81,8 @@ You can use [img2tim](https://github.com/Lameguy64/img2tim) to convert your blen # Credits -Based on the [code](https://pastebin.com/suU9DigB) provided by TheDukeOfZill, 04-2014, on http://www.psxdev.net/forum/viewtopic.php?f=64&t=537#p4088 - -PSX code based on [example](http://psx.arthus.net/code/primdraw.7z) by [Lameguy64](https://github.com/Lameguy64) - -pngquant : [https://github.com/kornelski/pngquant](https://github.com/kornelski/pngquant) - -img2tim : [https://github.com/Lameguy64/img2tim](https://github.com/Lameguy64/img2tim) - -Freeimage : [https://freeimage.sourceforge.io/](https://freeimage.sourceforge.io/) +Based on the [code](https://pastebin.com/suU9DigB) provided by TheDukeOfZill, 04-2014, on http://www.psxdev.net/forum/viewtopic.php?f=64&t=537#p4088 +PSX code based on [example](http://psx.arthus.net/code/primdraw.7z) by [Lameguy64](https://github.com/Lameguy64) +pngquant : [https://github.com/kornelski/pngquant](https://github.com/kornelski/pngquant) +img2tim : [https://github.com/Lameguy64/img2tim](https://github.com/Lameguy64/img2tim) +Freeimage : [https://freeimage.sourceforge.io/](https://freeimage.sourceforge.io/)