Line 75: |
Line 75: |
| == GPU == | | == GPU == |
| | | |
− | Designed by Digital Media Professionals Inc. (DMP) and codenamed PICA 200, 268Mhz. Supports OpenGL ES 1.1. | + | Designed by Digital Media Professionals Inc. (DMP) and codenamed PICA200, 268Mhz. |
| + | |
| + | Block diagram of an ULTRAY2000 based architecture PICA200: |
| | | |
| [[File:Pica200BlockDiagram.png]] | | [[File:Pica200BlockDiagram.png]] |
| | | |
− | Block diagram of an ULTRAY2000 based architecture PICA200
| + | PICA200 is compatible with OpenGL ES 1.1. It furthermore provides unique functionality for: |
| + | * Per-fragment lighting ("Lighting Maestro") |
| + | * Hard- and soft-shadowing ("Shadow Maestro") |
| + | * Polygon subdivision ("Figure Maestro") |
| + | * Bump mapping and procedural textures ("Mapping Maestro") |
| + | * Rendering of gaseous objects ("Particle Maestro") |
| + | |
| + | Some parts of the extended functionality are provided in hardware by an extended geometry pipeline. Most importantly, PICA200 has three programmable vertex processors. There is furthermore a unit called Primitive Engine, which is a geometry shader unit (using the same instruction set as vertex shaders) with support for variable-size primitives. The Primitive Engine functionality may be disabled, and the geometry shader unit then acts as a fourth vertex processor. See [[Shader_Instruction_Set]] for more information on the shader instruction set. |
| | | |
| + | Fragment lighting is implemented as an optional pipeline step during pixel processing. It's implemented by having the vertex shader output an additional attribute describing the transformation (represented by a quaternion) to surface-local space. This per-vertex quaternion can then be interpolated across screen space to calculate dot products relevant for lighting (e.g. light vector dot normal vector). To provide support for advanced lighting models, these dot products are used as indices into programmable lookup tables. With this setup, PICA200 in particular supports the shading models Blinn-Phong, Cook-Terrance, Ward, and microfacet-based BRDF-models. |
| | | |
| == SDIO controller == | | == SDIO controller == |