每天进步一点3

发布时间:2019-09-14 09:27:22编辑:auto阅读(1575)

    蒙板就好像隔着雕花墙往里面看的效果一样
    具体步骤: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)贴原图


关键字