#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);
info | Command List Information |
table | Pointer to the specular reflection shininess table |
None.
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.
02/09/2004
01/19/2004 Initial version