OpenGL实现雾化效果
文章目录
- 前言
- 一、雾化效果是什么?
- 二、着色器源码
- 1.先上着色器源码
- 2.解析源码内容
前言
最近想要实现雾化效果,但是百度了下基本是使用了glut工具包的文章。确实使用glut能很快的实现对应的效果,但是也有缺点。
- 使用了glut就不能使用glfw了
- 使用了glut去实现只是调用一个API,很难知道对应的原理是什么
一、雾化效果是什么?
如图显示
二、着色器源码
1.先上着色器源码
代码如下(示例):
float dist = abs( fs_in.FragPos.z - viewPos.z);float fogFactor = (maxDist - dist) / (maxDist - minDist) * isFog;fogFactor = clamp( fogFactor, 0.0, 1.0 );lighting = mix(vec3(fogColor), lighting, fogFactor);
2.解析源码内容
计算顶点的深度到摄像机深度的绝对位置差距
float dist = abs( fs_in.FragPos.z - viewPos.z);
可配置参数maxDist、minDist
maxDist代表最远的距离,此时茶壶会完全消失不见。
minDist代表最近的距离,此时茶壶会显示原有的色彩
float fogFactor = (maxDist - dist) / (maxDist - minDist) * isFog;
OpenGL实现雾化效果相关推荐
- android opengl es 雾化效果实例
雾相关: 三种雾的计算方法,怎么设置雾的颜色和雾的范围 设置雾的背景颜色:gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); 设置雾气的模式:gl.glFogf(GL10 ...
- 万字长文详解如何用Python玩转OpenGL | CSDN 博文精选
作者 | 天元浪子 来源 | CSDN博文精选 [编者按]OpenGL(开放式图形库),用于渲染 2D.3D 矢量图形的跨语言.跨平台的应用程序编程接口,C.C++.Python.Java等语言都能支 ...
- 转贴: OpenGL开发库的组成
OpenGL开发库的组成 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenG ...
- [转]OpenGL库介绍
原帖地址:http://blog.csdn.net/yyyuhan/archive/2008/01/15/2045009.aspx 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采 ...
- OpenGL 库 简介
OpenGL 库 简介 OpenGL库函数的命名方式为:<库前缀><根命令><可选的参数个数><可选的参数类型>. 库前缀有gl.glu.aux.glu ...
- OpenGL开发库的详细介绍
OpenGL开发库的组成 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenG ...
- 万字长文详解如何用 Python 玩转 OpenGL | CSDN 博文精选
作者 | 天元浪子 责编 | 伍杏玲 出品 | CSDN 博客 [CSDN 编者按]OpenGL(开放式图形库),用于渲染 2D.3D 矢量图形的跨语言.跨平台的应用程序编程接口,C.C++.Pyth ...
- 转-基于OpenGL的3D天空仿真
在进行3D场景渲染时,天空是必不可少的因素.对于3D天空的模拟在视景仿真系统.计算机游戏.三维动画中有着广泛的应用.但是,目前对于天空的仿真还存在很多不足,一些模拟方法中存在实现复杂.计算耗时.图像分 ...
- 基于OpenGL的3D天空仿真
From:http://www.c-cnc.com/dz/news/news.asp?id=18622 在进行3D场景渲染时,天空是必不可少的因素.对于3D天空的模拟在视景仿真系统.计算机游戏.三维动 ...
最新文章
- c语言名字程序,c语言获得程序位数和操作系统位数和名称
- Ubuntu下eclipse indigo版在线安装hibernate插件
- 硬盘参数你都懂吗?(上)-从案例引发的讨论
- php获取网络文件的几种方式,PHP如何实现获取网络上的文件?
- 浅谈Normalize.css
- springcache使用笔记002_注释驱动的 Spring cache 按条件查询
- 整理几个有想法的面试题
- 关于vim的误删除经历
- ORM框架之Mybatis(六)mybatis通用mapper
- centos7升级内核
- 转:java工程师成神之路
- IDEA提交git代码,配置文件乱码
- python根据词向量计算相似度_如何使用gensim的word2vec模型和python计算句子相似度...
- 关于C语言中的宏的一点点讨论
- 服务器空间满了造成的麻烦
- 浅谈非类型模板参数、模板的特化
- 爱奇艺海量数据实时分析架构的演进
- Postgresql 常用命令合集-建议收藏
- 7-27 从身份证号码中提取出出生年月 (12point(s))
- Android实现点击跳转本地浏览器打开网页的精简方式