混色的定义
将要绘制的物体的想色颜色, 与屏幕上相同位置的像素颜色相互混合.
正确的绘制透明对象的方法
首先, 绘制所有不透明对象
然后, 关闭深度测试
最后, 从远及近的绘制透明对象
混色方法
glColor4f(1.0f, 1.0f, 1.0f, 0.5f)
以全亮度绘制此物体, 并对其进行50%的alpha混合
glBlendFunc(GL_SRC_ALPHA, GL_ONE)
设置采用的混合类型
glEnable(GL_BLEND)
启用混合
glDisable(GL_DEPTH_TEST)
关闭深度测试
纹理贴图的Alpha混合
用于纹理贴图的alpha参数, 可以像颜色一样从纹理贴图中读取
在载入所需的材质时, 取得去alpha参数, 然后在调用glTexImage2D时, 使用GL_RGBA的颜色搭配格式
星星旋转着接近圆心
重置模型观察矩阵
glLoadIdentity
移入屏幕15.0f
glTranslatef(0.0f, 0.0f, -15.0f);
倾斜视角(修改视线与xy平面的夹角)
glRotatef(view, 1.0f, 0.0f, 0.0f)
计算星星的位置(先旋转, 再移动, 实现旋转中接近圆心的效果)
glRotatef(angle, 0.0f, 1.0f, 0,0f)(绕旋转旋转)
glTranslatef(dist, 0.0f, 0.0f)(接近圆心)
将坐标系方向, 恢复为标准状态(逆序反方向操作)
glRotatef(-angle, 0.0f, 1.0f, 0.0f)
glRotatef(-view, 1.0f, 0.0, 0.0f)
旋转星星
glRotatef(spin, 0.0f, 0.0f, 1.0f)
绘制星星
glBindTexture(GL_TEXTURE_2D, texture)
glColor4ub(r, g, b, 255)
glBegin(GL_QUADS)
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f)
...
glEnd()