每天进步一点3

2020-01-07 10:43:32 浏览数 (2)

蒙板就好像隔着雕花墙往里面看的效果一样

具体步骤: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)贴原图

0 人点赞