平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 221, 文章 - 0, 评论 - 680, 引用 - 0
数据加载中……

Opengl点精灵扩展理解与使用

1.以点描述一个正方形Billboard概念,节省了顶点数据传输带宽.
2.激活glEnable(GL_POINT_SPRITE_ARB);之后画点即可使用.
3.使用glPointSize控制Billboard大小,依公式控制透视效果  
  // clamp(size * sqrt(1 / (a + b * d + c * d ^ 2)))
  float quadratic[] =  { a, b, c };
  glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, quadratic);
  glPointParameterfARB( GL_POINT_SIZE_MIN_ARB, minsize );
  glPointParameterfARB( GL_POINT_SIZE_MAX_ARB, maxSize );
  使用 glPointParameterfARB(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 60.0f);控制消隐效果.
  使用 glTexEnvf(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE);为Billboard上纹理.
4.名义上隶属Opengl2.0标准,实际实现上由于硬件限制不大,更新最新的驱动程序都能实现该扩展,ARB的官僚可见一斑.

Reference:
http://www.khronos.org/opengles/documentation/opengles1_1/gl_egl_ref_1_1_20041110/glPointParameter.html
http://www.codesampler.com/oglsrc/oglsrc_6.htm#ogl_point_sprites

posted on 2005-09-24 16:19 linghuye 阅读(1181) 评论(0)  编辑 收藏 引用 所属分类: 3D图形学研究

只有注册用户登录后才能发表评论。