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

lens flare:镜头光晕

最近的又一个工作是给游戏添加镜头光晕,google一下,gamedev上就有一个很好的教程,最简单的方法是:将太阳位置投影到屏幕空间,如果不在屏 幕内就不画,否则从太阳位置向屏幕中心画出一系列的光晕贴图,混合方法还是src:srcalpha,dest:one。可完全当做2d图片进行绘制。

我 使用irrlicht引擎,就有一个小问题了,如果当做2d图片绘制就必须改变camera,设置一个平行透视的camera,这样也不是不行,但是为了 统一,我给lens flare写了一个custom scene node,这样就必须用3d方法绘制,其实就是一个billboard而以,参考下irrlicht中的billboard实现,计算出hor和ver偏 移向量,即可从中心位置构造四边形的边。至于flare的3d位置的获得,首先是计算出屏幕坐标(根据在序列上的位置),然后利用irr提供的射线方法从 屏幕空间反投影到3d空间,z值的确定我根据太阳的位置求出一个缩放值,这样保证反投影后太阳还是在原来的3d位置上。这么搞貌似比直接用2d的方法有些 麻烦了,不过省去切换camera的麻烦了。实际使用时,太阳得设置远些,否则会跟着镜头动得太明显了,光晕的绘制可实际调节位置,大小和使用的纹理,达 到满意效果。

另外网上还有复杂的方法,我没有试过,可能适用情况不同。对于我们的游戏,场景有限,把太阳放在固定位置即可,如果是很大的场景,可能需要其他方法。

相关文章:

  • SQL批处理 导入excel数据到表
  • opengl粒子系统的渲染方式
  • html5 canvas上传图片后预览
  • ZBuffer裁剪planar shadow
  • 3D几何流水线之模型变换
  • html5 canvas 加载图片错误 SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement'
  • RGBA模式人物换色的实现
  • javascript实现QR code扫描
  • android webview旋转屏幕导致页面重新加载问题
  • FLEX实践—自创相册
  • Nebula3的渲染线程插件(Render Thread Plugin)
  • android webview 遇到android.os.FileUriExposedException错误
  • Ucweb的发展趋势
  • Asp.net MVC scheduler实现
  • 一幅图对比软件开发框架
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Angularjs之国际化
  • Apache Zeppelin在Apache Trafodion上的可视化
  • canvas绘制圆角头像
  • go语言学习初探(一)
  • Java方法详解
  • js
  • linux安装openssl、swoole等扩展的具体步骤
  • Python socket服务器端、客户端传送信息
  • Python打包系统简单入门
  • rabbitmq延迟消息示例
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 飞驰在Mesos的涡轮引擎上
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 回顾2016
  • 解决iview多表头动态更改列元素发生的错误
  • 微信小程序开发问题汇总
  • 我建了一个叫Hello World的项目
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • $().each和$.each的区别
  • (2022 CVPR) Unbiased Teacher v2
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (二)linux使用docker容器运行mysql
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (转)fock函数详解
  • (转载)Google Chrome调试JS
  • (转载)深入super,看Python如何解决钻石继承难题
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET DataGridView数据绑定说明
  • .Net mvc总结
  • .Net 路由处理厉害了
  • .net 托管代码与非托管代码
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [Android 13]Input系列--获取触摸窗口
  • [Android] Android ActivityManager