zoukankan      html  css  js  c++  java
  • glBlendFunc的几种常用情况

    先Mark一下,后面有时间补上DEMO

    1.画航母大灯,手电筒(效果为:透过黑色半透明层可看到下面的背景图,仅圆圈部分)

       1)先画圆圈

       2)再画背景图(大背景)

       大背景设置  glBlendFunc bf = { GL_ONE_MINUS_DST_ALPHA, GL_ZERO };

    2.给蛋糕涂奶油(效果为:仅刷子部分可看到想要画上去的部分,刷子叠加可看到涂上了一片奶油)

       1)先画刷子

       2)再画蛋糕(想要涂在原来蛋糕上的图层)

       蛋糕设置  glBlendFunc bf = { GL_DST_ALPHA, GL_ZERO };


    3.放大镜效果(效果为:透过放大镜可以看到较大底下的效果)

       1)首先你有一个放大镜圆圈图片

       2)然后你需要构建两个RenderTexture(大小均为放大镜圆圈大小),

            the first 用来绘制放大后的背景效果(先绘制,后缩放为1.5倍) ,此部分绘制方法为先将RenderTexture坐标转换到你绘制的位置(glTranslatef(-x, -y, 0);,x,y为放大镜圆圈世界坐标)然后叠加背景图;

            the second 用来显示到你的场景当中(此RenderTexture为圆圈和the first的差值,即放大后的效果),此部分绘制方法圆圈和first叠加(抽象出的两者坐标一定要转换到同一个坐标系当中)   second部分 两个差值设置  glBlendFunc bf = { GL_DST_ALPHA, GL_ZERO };

             show the second,good luck!

    4.常用  glBlendFunc bf = { GL_ZERO, GL_ONE_MINUS_SRC_ALPHA};

     

  • 相关阅读:
    谦卑
    自尊和自我效能
    二手时间读书笔记
    vim学习4
    vim学习3
    hdu 5122 K.Bro Sorting
    hdu 5113 Black And White
    poj 2479 Maximum sum
    poj 2392 Space Elevator
    poj 3666 Making the Grade
  • 原文地址:https://www.cnblogs.com/huazaizai/p/3498246.html
Copyright © 2011-2022 走看看