当前位置: 首页 > news >正文

OGL(教程41)——物体运动模糊

原文地址:http://ogldev.atspace.co.uk/www/tutorial41/tutorial41.html
背景知识:
运行模糊是高速3D游戏中常用的技术,它的目的是在运动的物体上加入模糊效果。这个增加了玩家的真实体验感。运动模糊可以使用多种方式实现。基于模糊的摄像机,它的焦点在移动的摄像机,还有一种方式是基于模糊的物体。本节我们使用一种技术来实现后者。
运动模糊背后的原理是,我们可以计算一个运动的向量,叫做为运动向量,它是在两帧之间对渲染的像素进行运动。从当前的颜色缓冲中沿着这个向量采样,然后对结果进行平均,结果就会得到像素,它代表了潜在的运动的物体。这就是运动模糊的全部。让我们详细的介绍下。下面就是介绍需要的步骤,介绍这个之后,将会重新回顾下代码。
1、技术被分为两个部分-渲染通道和运动模糊通道。
2、在渲染通道中,我们渲染两个缓冲-正常的颜色缓冲和一个运动向量缓冲。颜色缓冲包含了原始图片,他是没有运动模糊的渲染原始图片。运动向量包含了一个向量,针对的是每个像素,它代表了当前帧和之前帧的屏幕移动方向。
3、运动向量的计算是提供前一帧的WVP矩阵给vs。我们使用当前的WVP矩阵对局部坐标空间的每个顶点进行变换,然后利用前一帧的WVP矩阵用于裁剪空间,然后把两个结果传给FS。在FS中对裁剪空间的位置进行插值,然后除以W坐标得到NDC坐标。这就完成了把坐标映射到屏幕,所以我们可以用当前点位置减去前一阵的位置而得到运动向量。这个运动向量存储于一个纹理。
4、

相关文章:

  • Django rest_framework 总结
  • Docker在Linux上运行NetCore系列(三)在Linux上使用Docker运行Asp.NetCore
  • vs打开unity里的vs文件,但是无法正确加载项目的其他文件
  • java多线程-基础
  • wordpress在撰写新文章界面的显示选项按钮点击无反应的解决办法
  • opengl——贴图
  • learnopengl——Framebuffers
  • learnopengl——纹理
  • [转帖]Application Request Route实现IIS Server Farms集群负载详解
  • learnopengl——三角形
  • songho——OpenGL的帧缓冲
  • while 循环 及 and or not
  • songho——OpenGL的顶点缓冲对象
  • OGL(教程35)——延迟渲染1——代码结构梳理
  • 安装MySQL_安装Navicat_启动数据库服务
  • 【Leetcode】101. 对称二叉树
  • Android 控件背景颜色处理
  • android图片蒙层
  • angular组件开发
  • AWS实战 - 利用IAM对S3做访问控制
  • Consul Config 使用Git做版本控制的实现
  • CSS魔法堂:Absolute Positioning就这个样
  • exif信息对照
  • IDEA常用插件整理
  • jdbc就是这么简单
  • Linux链接文件
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 百度地图API标注+时间轴组件
  • 大整数乘法-表格法
  • 代理模式
  • 前端js -- this指向总结。
  • 试着探索高并发下的系统架构面貌
  • 微信小程序:实现悬浮返回和分享按钮
  • 阿里云移动端播放器高级功能介绍
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • # 数据结构
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (3)nginx 配置(nginx.conf)
  • (4) PIVOT 和 UPIVOT 的使用
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)为什么要选择C++
  • (已解决)什么是vue导航守卫
  • (转)C#调用WebService 基础
  • (转)memcache、redis缓存
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET 设计模式初探
  • .NET连接MongoDB数据库实例教程
  • .pop ----remove 删除