(转载)osg::StateAttribute派生类速查
渲染状态类;是否需要setMode;使用getAttribute时的枚举值;简介
osg::AlphaFunc;GL_ALPHA_TEST;ALPHAFUNC;封装了glAlphaFunc的功能。用于实现Alpha测试。
osg::BlendColor;GL_BLEND;BLENDCOLOR;封装了glBlendColor的功能,可能需要OpenGL 1.2或以上版本支持。用于指定颜色融合(Blend)时的常量颜色。
osg::BlendEquation;GL_BLEND;BLENDEQUATION;封装了glBlendEquation的功能,可能需要OpenGL 1.2或以上版本支持。用于指定颜色融合(Blend)方程式。
osg::BlendFunc;GL_BLEND;BLENDFUNC;封装了glBlendFunc/glBlendFuncSeparate的功能,后者可能需要OpenGL 1.4或以上版本支持。用于实现颜色融合的效果。
osg::ClampColor;-;CLAMPCOLOR;封装了glClampColorARB的功能,可能需要OpenGL 2.0或以上版本支持。用于控制颜色截取的范围。请参阅[url]http://www.opengl.org/registry/specs/ARB /color_buffer_float.txt[/url]
osg::ClipPlane;GL_CLIP_PLANEi;CLIPPLANE;封装了glClipPlane的功能。用于实现视景体的裁切。
osg::ColorMask;-;COLORMASK;封装了glColorMask的功能。用于指定颜色缓存的写操作掩码。
osg::ColorMatrix;-;COLORMATRIX;封装了glMatrixMode(GL_COLOR),glLoadMatrix及相关的功能,可能需要GL_ARB_imaging扩展支持。用于设置颜色矩阵。
osg::CullFace;GL_CULLFACE;CULLFACE;封装了glCullFace的功能。用于执行多边形的正/反面剔除。
osg::Depth;GL_DEPTH_TEST;DEPTH;封装了glDepthFunc,glDepthRange和glDepthMask的功能。用于实现深度测试。
osg::Fog;GL_FOG;FOG;封装了glFog及相关的功能,部分功能可能需要GL_EXT_fog_coord扩展支持。用于指定雾效参数并实现雾效,如果图元设置了雾坐标参数,则系统内部将使用glFogCoord实现功能。
osg::FragmentProgram;GL_FRAGMENT_PROGRAM_ARB;FRAGMENTPROGRAM;封装了 glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, ...)及相关的功能,可能需要GL_ARB_fragment_program扩展支持。用于实现GPU的片元编程功能,请参阅 [url]http://www.opengl.org/registry/specs/ARB/fragment_program.txt[/url]
osg::FrameBufferObject;-;0x101010;封装了glFramebufferTexture2DEXT等各种相关功能,可能需要GL_EXT_framebuffer_object扩展支持。用于实现FBO相关的操作,包括渲染到纹理的功能。
osg::FrontFace;-;FRONTFACE;封装了glFrontFace的功能。用于指定绘制多边形正面时顶点的时针顺序。
osg::Hint;GL_POINT_SMOOTH,GL_LINE_SMOOTH,GL_POLYGON_SMOOTH;HINT;封装了glHint的功能。用于实现图元的反走样处理。
osg::Light;GL_LIGHTi;LIGHT;封装了glLight及相关的功能。用于指定光源的各种属性。
osg::LightModel;-;LIGHTMODEL;封装了glLightModel的功能,可能需要OpenGL 1.2或以上版本支持。用于选择光照模型(如全局光,双面光照等)。
osg::LineStipple;GL_LINE_STIPPLE;LINESTIPPLE;封装了glLineStipple的功能。用于实现自定义的线段填充花纹。
osg::LineWidth;-;LINEWIDTH;封装了glLineWidth的功能。用于指定线宽。
osg::LogicOp;GL_COLOR_LOGIC_OP;LOGICOP;封装了glLogicOp的功能。用于实现片元的逻辑运算。
osg::Material;GL_COLOR_MATERIAL;MATERIAL;封装了glMaterial,glColorMaterial及相关的功能。用于指定物体的材质参数,也可指定使用颜色材质模式。
osg::Multisample;GL_MULTISAMPLE;MULTISAMPLE;封装了glSampleCoverageARB的功能,可能需要GL_ARB_multisample扩展支持。用于实现多重采样效果。
osg::Point;GL_POINT_SMOOTH;POINT;封装了glPointParameter及相关的功能,可能需要OpenGL 1.4或以上版本支持。用于指定图元点的大小和亮度等参数。
osg::PointSprite;GL_POINT_SPRITE_ARB;POINTSPRITE;封装了 glPointParameter(GL_POINT_SPRITE_COORD_ORIGIN, ...)及相关的功能,可能需要GL_ARB_point_sprite扩展支持。用于实现点精灵的效果(使用告示牌技术,可用于创建高性能粒子系统)。
osg::PolygonMode;-;POLYGONMODE;封装了glPolygonMode的功能。用于指定多边形的绘制模式(点/线框/填充)。
osg::PolygonOffset;GL_POLYGON_OFFSET_POINT,GL_POLYGON_OFFSET_LINE,GL_POLYGON_OFFSET_FILL;POLYGONOFFSET;封装了glPolygonOffset的功能。用于实现多边形偏移,以避免两表面重合时的斑驳(Z-Fighting)的问题。
osg::PolygonStipple;GL_POLYGON_STIPPLE;POLYGONSTIPPLE;封装了glPolygonStipple的功能。用于实现自定义的多边形填充花纹。
osg::Program;-;PROGRAM;封装了glUseProgram及相关的功能,可能需要OpenGL 2.0或以上版本支持。用于实现GLSL着色器。
osg::Scissor;GL_SCISSOR_TEST;SCISSOR;封装了glScissor的功能。用于实现屏幕视图的裁剪。
osg::ShadeModel;-;SHADEMODEL;封装了glShadeModel的功能。用于指定图元顶点着色模式。
osg::Stencil;GL_STENCIL_TEST;STENCIL;封装了glStencilFunc,glStencilOp和glStencilMask的功能。用于实现模板测试。
osg::StencilTwoSided;GL_STENCIL_TEST,GL_STENCIL_TEST_TWO_SIDE;STENCIL;封装了glActiveStencilFaceEXT及相关的功能,可能需要GL_EXT_stencil_two_side扩展支持。用于分别实现正/反面的模板测试。请参阅[url]http://www.opengl.org/registry/specs/EXT /stencil_two_side.txt[/url]
osg::TexEnv;-;TEXENV;封装了glTexEnv的功能。用于指定纹理映射方式。
osg::TexEnvCombine;-;TEXENV;封装了glTexEnv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB)及相关的功能,可能需要GL_ARB_texture_env_combine扩展支持。用于实现纹理映射效果的合并,请参阅[url]http://www.opengl.org/registry/specs/ARB /texture_env_combine.txt[/url]
osg::TexEnvFilter;-;TEXENVFILTER;封装了glTexEnv(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, ...)的功能,可能需要OpenGL 1.4或以上版本支持。用于调整纹理的细节层次(LOD),请参阅[url]http://www.opengl.org/registry/specs /EXT/texture_lod_bias.txt[/url]
osg::TexGen;GL_TEXTURE_GEN_S,GL_TEXTURE_GEN_T,GL_TEXTURE_GEN_R,GL_TEXTURE_GEN_Q;TEXGEN;封装了glTexGen的功能。用于自动生成纹理坐标。
osg::TexMat;-;TEXMAT;封装了glMatrixMode(GL_TEXTURE)及相关的功能。用于设置纹理矩阵。
osg::Texture;-;-;纹理类的基类,同时封装了glTexParameter及相关的功能。可以指定纹理滤波,截取等参数。
osg::Texture1D;GL_TEXTURE_1D;TEXTURE;封装了glTexImage1D及相关的功能。用于实现一维纹理映射。
osg::Texture2D;GL_TEXTURE_2D;TEXTURE;封装了glTexImage2D及相关的功能。用于实现二维纹理映射。
osg::Texture2DArray;GL_TEXTURE_2D_ARRAY_EXT;TEXTURE;封装了 glTexImage3D(GL_TEXTURE_2D_ARRAY_EXT, ...)及相关的功能,可能需要GL_EXT_texture_array扩展支持。用于实现二维纹理数组映射,请参阅 [url]http://www.opengl.org/registry/specs/EXT/texture_array.txt[/url]
osg::Texture3D;GL_TEXTURE_3D;TEXTURE;封装了glTexImage3D及相关的功能,可能需要 GL_EXT_texture3D扩展支持。用于实现三维纹理映射,请参阅[url]http://www.opengl.org/registry /specs/EXT/texture3D.txt[/url]
osg::TextureCubeMap;GL_TEXTURE_CUBE_MAP;TEXTURE;封装了 glBindTexture(GL_TEXTURE_CUBE_MAP, ...)及相关的功能,可能需要OpenGL 1.3或以上版本支持。用于实现立方图纹理映射,请参阅[url]http://www.opengl.org/registry/specs/ARB /texture_cube_map.txt[/url]
osg::TextureRectangle;GL_TEXTURE_RECTANGLE;TEXTURE;封装了 glTexImage2D(GL_TEXTURE_RECTANGLE, ...)及相关的功能,可能需要GL_ARB_texture_rectangle扩展支持。用于实现矩形纹理映射,请参阅 [url]http://www.opengl.org/registry/specs/ARB/texture_rectangle.txt[/url]
osg::VertexProgram;GL_VERTEX_PROGRAM_ARB;VERTEXPROGRAM;封装了 glProgramStringARB(GL_VERTEX_PROGRAM_ARB, ...)及相关的功能,,可能需要GL_ARB_vertex_program扩展支持。用于实现GPU的顶点编程功能,请参阅 [url]http://www.opengl.org/registry/specs/ARB/vertex_program.txt[/url]
osg::Viewport;-;VIEWPORT;封装了glViewport的功能。用于设置屏幕视图。