[ 3 / biz / cgl / ck / diy / fa / g / ic / jp / lit / sci / tg / vr / vt ] [ index / top / reports / report a bug ] [ 4plebs / archived.moe / rbt ]

Due to resource constraints, /g/ and /tg/ will no longer be archived or available. Other archivers continue to archive these boards.Become a Patron!

/vr/ - Retro Games


View post   

[ Toggle deleted replies ]
>> No.4683542 [View]
File: 167 KB, 1000x1334, 2D_affine_transformation_matrix.svg.png [View same] [iqdb] [saucenao] [google] [report]

Ah, I see that you still got the wrong impression from that incomplete and misleading video example.

Both triangles and quadrilaterals are polygons, there was nothing to “emulate”. Many consoles and first generation PC 3D accelerators from companies well known and long forgotten used quads for surface units. It is easy to guess they all leaned towards universal accelerated processing pipeline for both traditional 2D spritework and 3D effects.

No matter how you theoretically imagine the polygon projection process, it is always implemented as matrix multiplications, because it's the least computationally expensive method. You can visualize those as a composition of affine transformations that are applied to original “flat” sprite (quad) or half-sprite (triangle) to make it appear at the proper place, angle, and size on the screen. While vertex coordinates are calculated properly on all systems (though with different precision), repeating the same calculation for each textured pixel inside the polygon would result in either performance hit, or significant increase in hardware requirements (and price) because it spends many CPU cycles on division. A simplified rasterization algorithm is used after vertex coordinates are calculated for that reason (and also for other factors like memory access optimization, benefit from specific processor instructions available, caching, etc.).

So, big quads and triangles without perspective correction all wobble on all these systems. Also, all of them can eqally be called “sprite manipulation engines”.

Check these nice tutorials:

View posts [+24] [+48] [+96]