# G3*_Shininess

## C Specification

      #include <nitro/gx/g3imm.h>
      #include <nitro/gx/g3b.h>
      #include <nitro/gx/g3c.h>

      void G3_Shininess(const u32* table);

      // Below are APIs for creating the display list (command list)
      void G3B_Shininess(GXDLInfo* info, const u32* table);
      void G3C_Shininess(GXDLInfo* info, const u32* table);
      void G3BS_Shininess(GXDLInfo* info, const u32* table);
      void G3CS_Shininess(GXDLInfo* info, const u32* table);

## Arguments

info | Command List Information
table | Pointer to the specular reflection shininess table

## Return Values

None.

## Description

This function sets the specular reflection shininess table. Sets an 8-bit x 128 table to change the specular reflection shininess. Each element is a fixed decimal with 8-bit decimal portions. The arguments are pointers to `u32` and must be 4-byte aligned. When the specular reflection shininess table enable flag is set to `TRUE` with `G3*_MaterialColorSpecEmi`, the geometry engine will look up in the table based on the results of the specular calculation and change the specular reflection brightness. The lighting from specular reflection can be adjusted with this table. In addition, polygons with multiple specular reflection results can be displayed in a single frame by overwriting the specular reflection shininess table. By setting irregular values as the specular reflection shininess table, special lighting effects can be achieved.
Note: Normally, intended specular reflection effects can be obtained by setting the brightness table value to specular raised to the power of n. The upper 7 bits of the specular value become the index to the table.

## See Also

G3_MaterialColorSpecEmi

## Revision History

02/09/2004

- Added to description

01/19/2004 Initial version

CONFIDENTIAL