opengl之blend and ...
来源:互联网 发布:千牛和淘宝助理哪个好 编辑:程序博客网 时间:2024/05/14 08:32
1.蒙板
蒙板就好像隔着雕花墙往里面看的效果一样
具体步骤:
1)雕花墙是一个纹理,墙体为彩色,镂空地方为黑色,预先给它生成一个一样的黑白纹理,使镂空的地方为白色,墙体为黑色
2)画墙内的景色
3 )glBlendFunc(GL_DST_COLOR,GL_ZERO);画黑白纹理
其中GL_DST_COLOR 对应的混合因子为(Rd, Gd, Bd, Ad),也就是帧缓存中原像素的颜色。把黑白纹理与GL_DST_COLOR 相乘。墙体为黑色,则结果为黑色,镂空为白色,则结果为原像素中颜色。
4) glBlendFunc(GL_ONE, GL_ONE); 画雕花墙的纹理
画雕花墙镂空的地方为黑色,则使用原想色颜色,上步渲染中,镂空地方为原墙内景色。墙体部分 = 现颜色 + 第3步后的颜色。第3步墙体为黑色,即值为0,则墙体部分 = 现颜色 + 0 = 现颜色
凹凸贴图:采用纹理映射的方法,模拟凹凸不平的表面。
具体步骤:
1)原图像生成黑白图,黑白图生成黑白相反的逆转图。
2 )贴黑白图
3 )偏移逆转图,计算纹理偏移量时,主要用到切空间的概念
a 由灯的位置减去当前顶点的位置,结果归一化得向量v,
b 把向量v投影到切空间
c 按向量v在切空间的投影偏移纹理坐标
4) glBlendFunc(GL_ONE,GL_ONE)贴逆转图
5) glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR)贴原图
2. glNormal3f
该函数指向前面的法线,指定向光的方向,比如绘制箱子 如果进入箱子里面 那么将是一片漆黑 在外面则是明亮的。
3.glListBase
base
An integer offset that will be added to glCallLists offsets to generate display list names.
if base equals -32 , then when we use glCallLists to printf string "0" , change character '0' to ascii '0'=46.
now we find 46-32=14 int t
4.glutIdleFunc(void(*func)(void));
this function will be called when program has free time.
5.glutDisplayFunc(void(*func)(void));
the function will be called when the window is redrawed. like funciton OnDraw() in MFC.
- opengl之blend and ...
- OpenGL Blend
- OpenGL中的混合 (blend)
- OpenGL中的Blend
- [OpenGL]混合 Blend
- OpenGL中的混合 (blend)
- OpenGL中的混合 (blend)
- OpenGL ES混合Blend
- OpenGL中的Blend
- opengl blend选项
- OpenGL Blend的高级教程
- OpenGL Blend 的一些坑
- Alpha Blend and some Optimizition
- Alpha Blend and some Optimizition
- OpenGL编程指南14:混合半透明Blend
- OpenGL Blend 和OpenGL中alpha测试GL_ALPHA_TEST
- BLEND
- 使用OpenGL开发时Blend混合的参数选择技巧
- 规模化产品开发方法-产品线工程.pdf
- 最近用C#终于写好了记事本
- Struts2.1.8+Spring3.0+Ibatis2.3.4集成(二)
- JavaScript confirm prompt 跳转 刷新
- 应 csdn.net 要求,删去此篇博客内容
- opengl之blend and ...
- mysql主从数据库同步和字符集问题
- 《潜伏》中谢若琳的经典台词
- [转]任意分频的verilog语言实现
- 多域控制器环境下Active Directory灾难恢复
- Struts2.1.8+Spring3.0+Ibatis2.3.4集成(三)
- 不能抛弃的analyze
- 寻觅伙伴创业
- C学习群