【OpenGL编程】虚化模糊场景(类似摄像机的人像效果)

OpenGL摄像机 参考:https://learnopenglcn.github.io/01%20Getting%20started/09%20Camera/ 摄像机 在很多游戏引擎中,都有摄像机的概念,而OpenGL本身没有摄像机,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。 … … 摄像机位置 设置摄像机位置 由于是右手坐标系,z轴正方形朝向屏... 阅读详情

说在开头

最近研究了一个基于高斯函数的模糊效果的Demo,主要是为了完成场景的虚化效果,也就是距离摄像机较近的地方比较清楚,距离较远的地方比较模糊。

当然我这里使用的开发环境时Java和SDK(因为这是我一个早期开发的案例,当时还没有接触C++)本人知识有限,如果有不合理的地方还请多多指出。

作者:尹豆(憨豆酒),联系我yindou97@163.com,熟悉图形学,图像处理领域,本章代码: https://github.com/douysu/computer-graphics-notes

运行效果

这里写图片描述
这里写图片描述
近处场景比较清晰,远处场景比较模糊。

原理部分

构造场景的代码就不说了,只不过是将3ds Max当中场景导出并加载了而已。
此Demo有两个比较重要的点:

  • 首先使用了OpenGL ES 的FBO技术(Frame Buffer Object)。将场景渲染到缓冲中,可以想象成是一幅纹理,然后把这幅纹理渲染到了一个纹理矩形上面
OpenGL中实现运动模糊 在本文中,我们介绍了如何使用OpenGL来实现基于帧缓冲区的运动模糊效果。同时,我们也学习了如何加载3D模型和纹理,并且掌握了一些基本的OpenGL渲染技巧。在上述代码中,我们首先使用帧缓冲区来渲染场景,然后将渲染结果保存到纹理中。在OpenGL中,我们可以通过创建自定义着色器程序来实现运动模糊效果。在这个着色器程序中,我们将通过计算每个像素的平均颜色值来实现模糊效果。本文将介绍如何使用OpenGL实现基于帧缓冲区的运动模糊效果,实现一个简单的模糊效果预览程序。OpenGL中实现运动模糊。 阅读详情

相关推荐

ShaderJoy —— 三种“径向模糊”的实现 【GLSL】

原理参考: http://blog.youkuaiyun.com/yangtrees/article/details/9103935 http://blog.youkuaiyun.com/yangtrees/article/details/9114283 效果1 GLSL 代码: const float PI = 3.14159265; uniform sampler2D uImageUnit...

ShaderJoy 的兴趣技术杂货铺 6007

人像抠图 + OpenGL ES 还能这样玩?没想到吧(附带源码)

OpenGL ES 利用抠图算法实现人像留色。

字节流动 3万+

《OpenGL实现景深特效》

接下来,我们需要在着色器程序中使用这些信息来计算景深效果。在计算机图形学中,景深是一种广泛使用的特效技术,可以模拟现实相机的景深效果。通过在场景中选择一个焦点来模拟成像,这样可以使场景中某些物体清晰而其他物体模糊,从而达到更真实的效果。首先,我们需要计算每个像素到焦点的距离,以此来模拟相机的景深。例如,我们可以在绘制场景之前进行渲染,并将结果存储在纹理中,然后在渲染场景时将此纹理与深度信息一起使用。我们将使用GLSL(OpenGL着色器语言)来计算景深,并使用Framebuffer和纹理来存储深度信息。

CyberSphinx的博客 378

C++实现基于OpenGL的三维空间模型仿真

在Linux平台上,你可以使用GCC编译器,并且可以通过包管理器安装OpenGL库。通过调用OpenGL的函数和命令,可以实现各种视觉效果和图形应用。在计算机图形学和计算机模拟领域,OpenGL是一种常用的图形库,广泛用于实现各种视觉效果和图形应用。你可以尝试修改顶点的坐标和颜色,以及添加其他图形和效果,来创建更复杂的三维空间模型。我们将创建一个简单的三维空间模型,其中包含一个立方体和一些基本的光照效果。在上述代码中,我们使用了OpenGL的一些基本函数和命令来创建一个窗口,并在窗口中绘制一个立方体。

YkDjango的博客 976

OpenGL摄像头内容显示技术指南

GLSL(OpenGL Shading Language)是一种用于编写着色器的高级语言,它允许开发者在图形管线的各个阶段插入自定义的代码来控制渲染行为。GLSL语法类似于C语言,包含变量、函数、控制结构和注释等基本元素。每个着色器都由一系列的函数组成,最核心的函数包括main(),它在渲染每个图元时被调用。在GLSL中,着色器的主要数据类型包括标量、向量、矩阵、结构体以及采样器等。标量类型有intfloat等,而向量类型如vec2vec3vec4表示二维、三维和四维向量。

weixin_31419153的博客 859

openGL实现光柱效果

使用opengl着色器(低级着色语言)实现的光柱效果,效果还是挺好的,转来的,值得学习

大话西游2经典单机版V8:一键架设+GM全功能+仙玉自由修改

本文详细介绍大话西游2经典单机版V8的一键架设教程和GM全功能使用指南,包括仙玉自由修改技巧。该版本无需虚拟机,解压即玩,完美还原官服经典玩法,支持离线运行,是老玩家重温经典和新玩家体验游戏的理想选择。

weixin_27303545的博客 1130

COMSOL电磁仿真-网格剖分-边界层

介绍COMSOL在低频电磁场中边界层网格的剖分方法。

奇妙水果的技术博客,欢迎交流技术~ 4471

完整内、外期货量化交易系统源码可售

支持客户登录校验,支持所有的实时行情和汇总报价功能、实时资讯(报价,列表,分时,分钟成交明晰,),多线程支持盘后收盘作业下载(日线,5分钟线,15分钟, 30分钟,60分钟线,),支持从服务器下载相关运行配置(来自服务器动态配置信息,如收盘日期等),实现状态条显示。收盘作业包括日线、5分钟线、15分钟线、30分钟、60分钟线、2小时线、4小时线每日分时走势。综合信息栏显示用户账户信息、合约信息、当日委托单记录、当日成交记录、当日平仓记录、当日跟单记录、当日(月/周)排行榜、下单栏、持仓信息;

qq_35600909的博客 1805

【架构师面试-缓存与搜索-1】-缓存与缓存置换策略源码实现

1:什么是缓存 缓存:加速数据访问的存储,降低延迟(latency),提升吞吐量(Throughput)的利器。 1:缓存演进历史 1. 查库 2. ConcurrentHashMap 3. LRU 4. Guava Cache 5. 分布式缓存(redis,MemCache) 6. 多级缓存 2:在什么地方加缓存 缓存对于每个开发者来说是相当熟悉了,为了提高程序的性能我们会去加缓存,但是在什么地方加缓存,如何加缓存呢? 举个栗子:假设一个网站,需要提高性能,缓存可以放在浏览器,可以放

chongfa2008的博客 6437

出现 Error:Unable to access jarfile xxxx\target\nacos-server.jar 解决方法

Nacos中的 2.x执行步骤如上,如果需要安装下载1.x版本,执行该步骤之后 自动更新下载的是2.x版本 对此如果需要下载安装1.x的版本,可通过如下连接(windows版本)

码农研究僧的博客 5697

092、Python在芯片验证中的应用:从脚本小子到验证架构师

Python在芯片验证中的高效应用 本文通过实际案例展示了Python在芯片验证中的关键作用。凌晨三点的调试场景揭示了传统方法的局限,Python脚本能在20分钟内分析80GB波形数据定位FIFO指针问题。文章重点介绍了两个核心工具: 智能日志分析系统:通过正则表达式和上下文分析,自动分类百万行验证日志中的错误,生成可视化报告,效率远超传统grep方法。 寄存器模型生成器:将Excel表格自动转换为UVM寄存器模型代码,将原本需要两周的手工工作缩短至两小时,同时保证零错误。 文章还展示了Python与Sys

z534437748的博客 71

端侧 AI 落地避坑指南(中):为什么 QAT 救不了精度?——对齐“融合后算子“的硬件物理约束

在上一篇文章中,我们深入探讨了量化的本质,并得出结论:QAT(量化感知训练)是保持精度的关键。明明做了 QAT,精度还是崩塌了!让我们看一个真实的案例:✅ 使用了✅ 配置了量化✅ 训练了 50 个 epoch,学习率降为原来的 1/10✅ 冻结了 BN 统计量FP32 模型:mAP = 0.85QAT 后 FP32:mAP = 0.84(正常)工具量化后:mAP = 0.68(崩塌!问题出在哪里?层融合(Layer Fusion)机制。

weixin_51988935的博客 55

论文阅读:Universal and Transferable Adversarial Attacks on Aligned Language Models. LLM Attacks

因为“即开即用”的大型语言模型能够生成大量令人反感的内容,近期的工作集中在对这些模型进行对齐,以防止不受欢迎的生成。尽管在规避这些措施方面取得了一些成功——即所谓的针对大型语言模型(LLMs)的“越狱”——这些攻击需要大量的人类智慧,并且在实践中很脆弱。自动对抗性提示生成的尝试也取得了有限的成功。在本文中,我们提出了一种简单有效的攻击方法,可以导致对齐的语言模型生成令人反感的行为。

CSPhD-winston的博客 1414

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 【OpenGL编程】拖尾、刀光、剑光、尾焰效果的开发
下一篇: 【高质量C++/C总结3】泛型编程——Template模板
尹豆(douysu)
博客等级 码龄9年 151粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值