gl.h库函数glBlendFunc()使用说明

blend是混合的意思,正如名字一样,这个函数的作用就是处理在不同的模型的颜色叠加的问题,即把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。

该函数有两个参数

第一个参数表示的含义是在源位置的alpha的取值计算方法,第二个参数指出目标处的alpha的计算方法 表示的效果就是表示源颜色以及目标颜色的叠加

两个参数的取值都可以是如下常量之一:
GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, and GL_SRC_ALPHA_SATURATE
比如

GL_ZERO:     表示使用0.0作为因子,实际上相当于不使用这种颜色参与混合运算。
GL_ONE:      表示使用1.0作为因子,实际上相当于完全的使用了这种颜色参与混合运算。
GL_SRC_ALPHA:表示使用源颜色的alpha值来作为因子。
GL_DST_ALPHA:表示使用目标颜色的alpha值来作为因子。
GL_ONE_MINUS_SRC_ALPHA:表示用1.0减去源颜色的alpha值来作为因子。
GL_ONE_MINUS_DST_ALPHA:表示用1.0减去目标颜色的alpha值来作为因子。
除 此以外,还有GL_SRC_COLOR(把源颜色的四个分量分别作为因子的四个分量)、GL_ONE_MINUS_SRC_COLOR、 GL_DST_COLOR、GL_ONE_MINUS_DST_COLOR等,前两个在OpenGL旧版本中只能用于设置目标因子,后两个在OpenGL 旧版本中只能用于设置源因子。新版本的OpenGL则没有这个限制,并且支持新的GL_CONST_COLOR(设定一种常数颜色,将其四个分量分别作为 因子的四个分量)、GL_ONE_MINUS_CONST_COLOR、GL_CONST_ALPHA、 GL_ONE_MINUS_CONST_ALPHA。另外还有GL_SRC_ALPHA_SATURATE。新版本的OpenGL还允许颜色的alpha 值和RGB值采用不同的混合因子。但这些都不是我们现在所需要了解的。


例如:

glBlendFunc(GL_SRC_ALPHA, GL_ONE);
表示把渲染的图像叠加到目标区域,也就是说源的每一个像素的alpha都等于自己的alpha,目标的每一个像素的alpha等于1。这样叠加次数越多,叠加的图元的alpha越高,得到的结果就越亮。因此这种融合用于表达光亮效果。

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
表示把渲染的图像融合到目标区域。也就是说源的每一个像素的alpha都等于自己的alpha,目标的每一个像素的alpha等于1减去该位置源像素的alpha。 因此不论叠加多少次,亮度是不变的。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 您可以在Microsoft官方网站查找并下载Windows SDK(软件开发工具包),其中包含了所有Windows.h库函数的文档和示例。此外,您也可以参考MSDN(微软开发者网络)提供的Windows API文档,以获取更详细的信息。 ### 回答2: 要详细了解Windows.h库函数,可以参考以下几个途径: 1. Microsoft官方文档:Microsoft官方提供了详细的Windows API文档,其中包括了Windows.h库函数的详细说明。您可以访问Microsoft官方文档网站(https://docs.microsoft.com/zh-cn/windows/win32/apiindex/windows-api-list)搜索您需要了解的函数,查阅相关文档以获取详细信息。 2. MSDN技术社区:MSDN技术社区是一个专注于Microsoft开发技术的社区平台,其中有许多专家分享了关于Windows开发的经验和知识。在MSDN技术社区的Windows开发板块中,您可以找到有关Windows.h库函数的讨论、文章和示例代码,这些都能帮助您更好地理解和使用库函数。 3. 在线教程和课程:有许多在线教程和课程专门面向Windows开发,其中会涉及到Windows.h库函数使用。您可以通过搜索引擎,找到适合自己的在线课程,学习其中的内容,深入了解Windows.h库函数的具体用法和细节。 4. 编程书籍:有关Windows开发的书籍中通常会有相应章节来介绍Windows.h库函数。您可以选择权威的Windows开发书籍,参考其中的章节来学习库函数使用。 最后,了解Windows.h库函数不仅需要具备一定的编程基础,还需要实际的实践和项目经验。因此,建议您在学习的过程中结合实际项目来应用和练习,这样能更好地理解和掌握库函数使用。 ### 回答3: 要详细了解所有Windows.h库函数,您可以从以下几个途径获取信息: 1. Microsoft官方文档:Microsoft官方提供了详细的Windows API文档,您可以在其官方网站上找到。访问官方文档,您可以查找特定函数并获取其详细说明、参数、返回值和示例代码等信息。 2. 在线教程和博客:有很多在线教程和博客专门介绍Windows.h库函数使用。您可以通过搜索引擎查找这些资源,并根据自己的需求选择适合的文章进行阅读学习。 3. 开发者社区和论坛:与其他开发者交流是了解Windows.h库函数的另一个途径。有许多开发者社区和论坛,如Stack Overflow、CSDN等,您可以在这些平台上提问或搜索相关问题,与其他开发者讨论和交流经验。 4. 书籍和视频教程:有很多书籍和在线视频教程涵盖了Windows.h库函数的详细内容。您可以选择一本适合自己水平和需求的书籍或在线视频教程,系统性地学习Windows.h库函数使用。 需要注意的是,Windows.h库函数非常庞大,无法在短时间内完全掌握。为了更好地理解和应用其中的函数,建议您通过实践和项目开发等方式结合学习,将理论与实际结合起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化橙同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值