Main Page
Modules Alphabetical List Data Structures Data Fields
Enhancements - PlayStation 2
[3.2]
The PlayStation 2 platform has been particularly stable, in terms
of hardware and libraries, during the development of this release.
This has allowed us to both consolidate our code and offer
performance improvements.
Third generation of Vector Code Rendering pipelines (G3 Pipes)
for PlayStation 2
The majority of the performance benefits on PlayStation 2 come from
the Vector Code pipelines. We have been concentrating on optimizing
these and providing a suite of rendering pipelines which is
complete in terms of the supported combinations of camera
projection, culling, clipping, Back Face Culling, fog etc.
The new system supports all pipeline combinations listed
below:
Any of Lines, Tristrips or Trilists
Using Perspective Camera or Parallel Camera
Using Fastpath Rendering, Fast Culling or True Clipper
Using Backface culling, Frontface culling or full rendering
Using up to 12 of Ambient, Direction, Point, Spot, Soft Spot and Pre-lights
Using MatFX, Skinning or SkinMatFX
Using Fogging or no fog
Overall performance increases are dramatic. See platform
specific documentation in the API reference for more data. These
optimizations are at the VU level and are cumulative with any other
performance upgrades (such as PS2All).
PS2All Pipeline construction kit
The PlayStation 2 pipeline is now fully exposed through the new
'PS2All' API. The default PS2All pipelines will provide a
performance increase of between 5% and 15% (depending on the level
of bus activity due to the rest of the app) over and above the
default PS2Manager pipelines. If developers create their own PS2All
pipes and customize them it is possible to achieve performance
increases of significantly more than 15%.
NB: During the upgrade to RenderWare Graphics 3.2, developers
should choose to use one pipeline system [either PS2All pipes OR
their current PS2Manager custom pipes] for all of their objects.
Using both, for example, PS2All for non-custom and PS2 manager for
custom objects, may cause a degradation in performance due to
increased ICache thrashing (PS2 All and PS2 Manager share no code).
Developers can upgrade their current custom pipes to PS2 All or
trivially revert the default pipes to (the still available) PS2
Manager versions.
The performance benefits using PS2All are cumulative with other
optimizations (such as the G3 Pipelines).
Asynchronous Texture Upload
PlayStation 2 is a machine of many parts. To get maximum
performance on the machine (like any other) you have to make sure
that all the resources of the machine are being used at maximum
capacity.
To facilitate this, we have implemented a texture upload method
that can upload textures to the GS using path 3, while geometry is
being passed over path 1. This enables greater texture and/or
geometry upload in a frame, allowing more detail to be presented on
screen while maintaining a 60Hz frame rate.
Performance Optimization
We have had the opportunity to profile RenderWare Graphics with the
Sony Performance Analyser. This has allowed us to address some
specific areas for performance improvements.
Curved Surfaces
This feature is primary provided as a PlayStation 2 enhancement,
since the platform architecture is particularly suitable for
retaining the artwork as Bézier patches until the rendering stage -
however it is implemented on the other platforms for compatibility.
On PlayStation 2, Bézier patches are converted into triangles by VU
code, thus greatly reducing the amount of geometry data to be
transferred by DMA. Thus, the final polygon throughput can approach
the theoretical maximums for the console. The Bézier plugin is
compatible with MatFX and Skinned patches - but not with Morph,
DMorph etc. The export is fully integrated into the exporters.
On PlayStation 2, patch LOD can vary dynamically - an object
modeled with patches will be converted to only a few polygons when
it is in the distance, but up close the object could be represented
by hundreds of thousands of polygons. This means that the apparent
smoothness of the object will be retained at all times, but the
number of polygons rendered will be no more than is required to
achieve this. This means that rather than using a large number of
polygons in a model to represent a curve, you can benefit be
representing it as a far smaller number of Bézier patches.
Preinstanced Geometry
This now allows you to save instanced data to disk. This will
reduce memory footprint and load time, though the data will no
longer be platform independent.
© 1993-2003 Criterion Software Limited. All
rights reserved. Built Tue Apr 22 12:46:21 2003. Send Feedback