Clean Readme
This commit is contained in:
parent
e0e3d608a2
commit
5a7741e805
97
README.md
97
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/)
|
||||
|
Loading…
Reference in New Issue
Block a user