What rasterization algorithm does the PSX use?

Graphic based area of development (Graphics Processing Unit), including the Geometry Transform Engine (GTE), TIM, STR (MDEC), etc.
Post Reply
mistershrubber
What is PSXDEV?
What is PSXDEV?
Posts: 4
Joined: Aug 04, 2014

What rasterization algorithm does the PSX use?

Post by mistershrubber » August 10th, 2014, 3:12 am

Does anyone know what rasterization algorithm the PSX uses? I've tried looking around, but didn't really find much. I read that seams and gaps are no uncommon, and that when you draw a 4-point polygon rectangle, it will be rasterized as 2 3-point polygons and the bottom-right edge will not be rasterized.

It'd be great to know what exactly the GPU is doing that causes this, so I can understand the problem and work around it when needed.

AmiDog
Active PSXDEV User
Active PSXDEV User
Posts: 53
Joined: Sep 07, 2012

Post by AmiDog » August 11th, 2014, 11:38 pm

Yes, the PSX doesn't render quads, even though people still like to call them that, but rather triangle strips with 4 vertices.

Other than that, the PSX doesn't render the rightmost pixel or bottom row of the triangle, and the way the triangle is rendered (in one or two passes, and the direction of each pass, i.e. top->bottom, bottom->top) depends on the shape of the left edge of the triangle, so with a rotating triangle, it will change depending on the current rotation angle. Not exactly easy to adapt for in realtime.

mistershrubber
What is PSXDEV?
What is PSXDEV?
Posts: 4
Joined: Aug 04, 2014

Post by mistershrubber » August 12th, 2014, 2:16 am

Thanks! Out of curiosity, do you know if the PSX is using a Digital Differential Analyzer (DDA), or some other algorithm?

AmiDog
Active PSXDEV User
Active PSXDEV User
Posts: 53
Joined: Sep 07, 2012

Post by AmiDog » August 15th, 2014, 10:14 pm

I don't know what the PSX does in hardware, but I think someone have decaped a PSX GPU and taken photos of the die, so we might find out sooner or later. But whatever algorithm it uses, it produce a "perfect" result. That is, you either need to compute the x coordinates using divides each row, or use fixed point numbers with a large fractional part, to emulate the behavior.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest