Nehe的OpenGL的第8, 9课的笔记

混色的定义

将要绘制的物体的想色颜色, 与屏幕上相同位置的像素颜色相互混合.

 

正确的绘制透明对象的方法

首先, 绘制所有不透明对象

然后, 关闭深度测试

最后, 从远及近的绘制透明对象

 

混色方法

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值