(仅是草稿,未做整理)
2.7 当前(Current, 电流?)顶点状态
当前值是当一个顶点数组所定义的数据没有使能时候,与之相关联的辅助数据,如2.8小节所描述内容。通过适当的命令,Current值可能会在任何时候改变。
RGBA颜色可能通过以下命令来设置:
void Color4{xf}( T red,T green,T blue,T alpha );
Void Color4ub( ubyte red,ubyte green,ubyte blue,ubyte alpha );
颜色元素(RGBA)整型转换成浮点值将在2.12小节讨论。
Color4f 和Color4x可接受的值在0.0到1.0。在帧缓存体现的各元素值,0.0为最小值,1.0为最大值(平台相关),见2.12小节中的颜色和着色。在[0,1]范围以外的值是不clamped??
当前法线通过以下命令设置:
void Normal3{xf}( T nx,T ny,T nz );
Current的同质纹理坐标通过以下命令设置:
void MultiTexCoord4{xf}( enum texture,T s,T t,T r,T q );
坐标通过texture参数进行修改,s,t,r和q如所定义进行设置。texture为符号常数TEXTUREi,即第i个纹理坐标做相应的个修改。同时满足TEXTUREi=TEXTURE0+i,i值范围为0到k-1, k值取决于实现过程所定义的纹理数量值MAX TEXTURE UNITS。
带参数为CURRENT_TEXTURE_CORDS的Gets命令,返回由ACTIVE_TEXTURE所定义的值的纹理坐标,见2.8小节。
如果传递给MultiTexCoord4{xf}的参数是无效的纹理坐标值,那么结果将是无定义。
顶点定义所需要的状态包括四值用来保存RGBA颜色,三个值来保存法线,四个值保存对应实现过程中的s,t,r和q坐标对应的每一个纹理单元。初始状态的颜色(R,G,B,A)=(1,1,1,1),法线的初始值为(0,0,1)。s,t和r的初始值设为0,q设置为1。