如何在不使用GLSL,FSAA和GL_LINE_SMOOTH的情况下绘制平滑线条?

时间:2011-07-21 19:42:05

标签: c++ opengl

所以我需要一种方法来做平滑线而不使用:

  • 全屏抗锯齿(慢)
  • 着色器(并非所有卡都支持)
  • GL_LINE_SMOOTH (导致某些卡片崩溃)

我想到的唯一方法是使用一个始终面向摄像机方向的纹理矩形,但问题是:
1.我如何始终面对相机的矩形(有效)? 2.无论我的相机看多远,我如何保持其大小始终相同?

还有其他想法吗?

2 个答案:

答案 0 :(得分:2)

  

Billboarding是一个简单的概念,但可能很难实现。广告牌是一个扁平物体,通常是四边形(正方形),面向相机。当对象和相机移动时,该方向通常在运行期间不断变化,并且对象需要每帧旋转以指向该方向。广告牌有两种类型:点和轴。点精灵或点广告牌是以点为中心的四边形,广告牌围绕该中心点旋转以面向用户。轴广告牌有两种类型:轴对齐和任意。轴对齐(AA)广告牌始终具有一个与全局轴对齐的局部轴,并且它们围绕该轴旋转以面向用户。任意轴广告牌围绕任何轴旋转以面向用户。

http://nehe.gamedev.net/data/articles/article.asp?article=19

答案 1 :(得分:0)

您可以使用点精灵,它们总是大小相同,并且始终面向相机。 http://www.opengl.org/registry/specs/ARB/point_sprite.txt