查看: 7593|回复: 9

[原创摘录]osg::StateAttribute派生类速查

[复制链接]

该用户从未签到

发表于 2008-2-16 17:41:52 | 显示全部楼层 |阅读模式
呵呵,还是摘自我正在写的书的附录内容。列举了所有的渲染状态类,可关联到StateSet并应用于节点。
其中重要的派生类自然会在书中专门讨论(当然,书本身还没影呢),这里只是一个方便用户速查的表格,有空的话帮忙看看有没有错误或者不妥的地方吧,多谢了~~
另外如果大家有可以贡献出来的,有特殊意义或技巧的例子什么的,也不妨讨论一下吧;如果愿意的话也加到书中,到时候会注明贡献者的,呵呵。这两天也试着开始联系出版社了,希望能顺利

-------------------------------------------------------
  1. 渲染状态类;是否需要setMode;使用getAttribute时的枚举值;简介
  2. osg::AlphaFunc;GL_ALPHA_TEST;ALPHAFUNC;封装了glAlphaFunc的功能。用于实现Alpha测试。
  3. osg::BlendColor;GL_BLEND;BLENDCOLOR;封装了glBlendColor的功能,可能需要OpenGL 1.2或以上版本支持。用于指定颜色融合(Blend)时的常量颜色。
  4. osg::BlendEquation;GL_BLEND;BLENDEQUATION;封装了glBlendEquation的功能,可能需要OpenGL 1.2或以上版本支持。用于指定颜色融合(Blend)方程式。
  5. osg::BlendFunc;GL_BLEND;BLENDFUNC;封装了glBlendFunc/glBlendFuncSeparate的功能,后者可能需要OpenGL 1.4或以上版本支持。用于实现颜色融合的效果。
  6. osg::ClampColor;-;CLAMPCOLOR;封装了glClampColorARB的功能,可能需要OpenGL 2.0或以上版本支持。用于控制颜色截取的范围。请参阅[url]http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt[/url]
  7. osg::ClipPlane;GL_CLIP_PLANEi;CLIPPLANE;封装了glClipPlane的功能。用于实现视景体的裁切。
  8. osg::ColorMask;-;COLORMASK;封装了glColorMask的功能。用于指定颜色缓存的写操作掩码。
  9. osg::ColorMatrix;-;COLORMATRIX;封装了glMatrixMode(GL_COLOR),glLoadMatrix及相关的功能,可能需要GL_ARB_imaging扩展支持。用于设置颜色矩阵。
  10. osg::CullFace;GL_CULLFACE;CULLFACE;封装了glCullFace的功能。用于执行多边形的正/反面剔除。
  11. osg::Depth;GL_DEPTH_TEST;DEPTH;封装了glDepthFunc,glDepthRange和glDepthMask的功能。用于实现深度测试。
  12. osg::Fog;GL_FOG;FOG;封装了glFog及相关的功能,部分功能可能需要GL_EXT_fog_coord扩展支持。用于指定雾效参数并实现雾效,如果图元设置了雾坐标参数,则系统内部将使用glFogCoord实现功能。
  13. 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]
  14. osg::FrameBufferObject;-;0x101010;封装了glFramebufferTexture2DEXT等各种相关功能,可能需要GL_EXT_framebuffer_object扩展支持。用于实现FBO相关的操作,包括渲染到纹理的功能。
  15. osg::FrontFace;-;FRONTFACE;封装了glFrontFace的功能。用于指定绘制多边形正面时顶点的时针顺序。
  16. osg::Hint;GL_POINT_SMOOTH,GL_LINE_SMOOTH,GL_POLYGON_SMOOTH;HINT;封装了glHint的功能。用于实现图元的反走样处理。
  17. osg::Light;GL_LIGHTi;LIGHT;封装了glLight及相关的功能。用于指定光源的各种属性。
  18. osg::LightModel;-;LIGHTMODEL;封装了glLightModel的功能,可能需要OpenGL 1.2或以上版本支持。用于选择光照模型(如全局光,双面光照等)。
  19. osg::LineStipple;GL_LINE_STIPPLE;LINESTIPPLE;封装了glLineStipple的功能。用于实现自定义的线段填充花纹。
  20. osg::LineWidth;-;LINEWIDTH;封装了glLineWidth的功能。用于指定线宽。
  21. osg::LogicOp;GL_COLOR_LOGIC_OP;LOGICOP;封装了glLogicOp的功能。用于实现片元的逻辑运算。
  22. osg::Material;GL_COLOR_MATERIAL;MATERIAL;封装了glMaterial,glColorMaterial及相关的功能。用于指定物体的材质参数,也可指定使用颜色材质模式。
  23. osg::Multisample;GL_MULTISAMPLE;MULTISAMPLE;封装了glSampleCoverageARB的功能,可能需要GL_ARB_multisample扩展支持。用于实现多重采样效果。
  24. osg::Point;GL_POINT_SMOOTH;POINT;封装了glPointParameter及相关的功能,可能需要OpenGL 1.4或以上版本支持。用于指定图元点的大小和亮度等参数。
  25. osg::PointSprite;GL_POINT_SPRITE_ARB;POINTSPRITE;封装了glPointParameter(GL_POINT_SPRITE_COORD_ORIGIN, ...)及相关的功能,可能需要GL_ARB_point_sprite扩展支持。用于实现点精灵的效果(使用告示牌技术,可用于创建高性能粒子系统)。
  26. osg::PolygonMode;-;POLYGONMODE;封装了glPolygonMode的功能。用于指定多边形的绘制模式(点/线框/填充)。
  27. osg::PolygonOffset;GL_POLYGON_OFFSET_POINT,GL_POLYGON_OFFSET_LINE,GL_POLYGON_OFFSET_FILL;POLYGONOFFSET;封装了glPolygonOffset的功能。用于实现多边形偏移,以避免两表面重合时的斑驳(Z-Fighting)的问题。
  28. osg::PolygonStipple;GL_POLYGON_STIPPLE;POLYGONSTIPPLE;封装了glPolygonStipple的功能。用于实现自定义的多边形填充花纹。
  29. osg::Program;-;PROGRAM;封装了glUseProgram及相关的功能,可能需要OpenGL 2.0或以上版本支持。用于实现GLSL着色器。
  30. osg::Scissor;GL_SCISSOR_TEST;SCISSOR;封装了glScissor的功能。用于实现屏幕视图的裁剪。
  31. osg::ShadeModel;-;SHADEMODEL;封装了glShadeModel的功能。用于指定图元顶点着色模式。
  32. osg::Stencil;GL_STENCIL_TEST;STENCIL;封装了glStencilFunc,glStencilOp和glStencilMask的功能。用于实现模板测试。
  33. 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]
  34. osg::TexEnv;-;TEXENV;封装了glTexEnv的功能。用于指定纹理映射方式。
  35. 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]
  36. 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]
  37. osg::TexGen;GL_TEXTURE_GEN_S,GL_TEXTURE_GEN_T,GL_TEXTURE_GEN_R,GL_TEXTURE_GEN_Q;TEXGEN;封装了glTexGen的功能。用于自动生成纹理坐标。
  38. osg::TexMat;-;TEXMAT;封装了glMatrixMode(GL_TEXTURE)及相关的功能。用于设置纹理矩阵。
  39. osg::Texture;-;-;纹理类的基类,同时封装了glTexParameter及相关的功能。可以指定纹理滤波,截取等参数。
  40. osg::Texture1D;GL_TEXTURE_1D;TEXTURE;封装了glTexImage1D及相关的功能。用于实现一维纹理映射。
  41. osg::Texture2D;GL_TEXTURE_2D;TEXTURE;封装了glTexImage2D及相关的功能。用于实现二维纹理映射。
  42. 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]
  43. osg::Texture3D;GL_TEXTURE_3D;TEXTURE;封装了glTexImage3D及相关的功能,可能需要GL_EXT_texture3D扩展支持。用于实现三维纹理映射,请参阅[url]http://www.opengl.org/registry/specs/EXT/texture3D.txt[/url]
  44. 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]
  45. 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]
  46. 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]
  47. osg::Viewport;-;VIEWPORT;封装了glViewport的功能。用于设置屏幕视图。
复制代码

该用户从未签到

发表于 2008-2-18 09:29:14 | 显示全部楼层
就应该多弄点类似的东西,好东西,

该用户从未签到

发表于 2008-3-3 15:11:42 | 显示全部楼层
什么时候出书啊??
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-3-3 15:14:31 | 显示全部楼层
    应该把这些类速查写个chm,这样可就闹大了,哈哈
  • TA的每日心情
    开心
    2021-6-6 13:38
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-3-6 11:10:48 | 显示全部楼层
    希望能够早日看到你的书籍

    该用户从未签到

    发表于 2008-3-26 00:00:52 | 显示全部楼层
    同期待你的书

    该用户从未签到

    发表于 2008-4-1 13:53:33 | 显示全部楼层
    等你等的我心痛,快点出书吧

    该用户从未签到

    发表于 2008-4-29 08:56:36 | 显示全部楼层

    快点出书

    快点出本全一点的书

    该用户从未签到

    发表于 2008-5-17 10:39:30 | 显示全部楼层
    期待ing

    该用户从未签到

    发表于 2013-1-22 15:54:08 | 显示全部楼层
    顶顶顶
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    OSG中国官方论坛-有您OSG在中国才更好

    网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

    联系我们

    • 工作时间:09:00--18:00
    • 反馈邮箱:1315785073@qq.com
    快速回复 返回顶部 返回列表