GPU Gems1 - 21 实时辉光(Real-Time Glow)

这章浅墨的文章讲的很细了,这里基本照扒一遍加深印象,原文链接:https://zhuanlan.zhihu.com/p/36499291

【章节概览】

这章讲到2D光照效果中的辉光(Glow)和光晕(Halo),展示了如何通过图像处理方法完全地改善画面及3D人物的渲染感官。

光源的辉光(Glow)和光晕(Halo)是自然界到处可见的现象,他们提供了亮度和气氛强烈的视觉信息。

 

给强化后的武器加上Glow效果,该武器显得更加强力 @TERA

在观看计算机图形、胶片和印刷品时,到达眼睛的光强度是有限的,因此,辨别光源强度的唯一方法是通过它们周围产生的辉光(Glow)和光晕(Halo),具体可以参考[Nakamae et al.1990]。这些辉光可以再现强烈光线的视觉效果,并使观察者感知非常明亮的光源。即使物体周围的微妙光晕也会让人觉得它比没有光辉的物体更亮。

在日常生活中,这些发光和光晕是由大气中或我们眼中的光散射引起的(Spencer 1995)。使用现代图形硬件,可以通过几个简单的渲染操作来再现这些效果。这使得我们可以使用明亮而有趣的物体来填满实时渲染的场景,物体会显得更为逼真或更具表现力,并且这是克服图形渲染中传统的低动态范围图形过于平庸的优雅手段之一。

preview
有辉光和没有辉光的一个Tron 2.0中的角色对比

 

有几种方法可以创建场景中的辉光。对于小的类似的点,可以把一个平滑的“辉光”纹理应用到公告牌几何体上,而让公告板几何体在屏幕范围内跟随物体运动。

对于大的辉光源或复杂的辉光形状,要创建辉光,最好对2D场景的渲染进行后处理。这章重点讲到了后处理的实时辉光处理方法。如下图。

preview
场景实时辉光的步骤 (a)正常地渲染场景(b)涂抹所渲染的辉光源,以产生(c)中的一个辉光纹理,将其加到正常的场景画面中,以产生(d)中最终的辉光效果。

渲染后处理辉光的步骤:

Step 1、辉光的指定和渲染(Specifying and Rendering the Sources of Glow)

Step 2、模糊辉光源(Blurring the Glow Sources)

Step 3、适配分步卷积(Adapting the Separable Convolution)

Step 4、在GPU上进行卷积(Convolution on the GPU)

preview
图 有效地创建模糊的两步分解法

 上图展示了如何有效地创建模糊的两步分解法:首先,在一根轴上模糊于(a)中的辉光源的点,产生(b)中所示的中间结果,然后在另一个轴上模糊这个结果,产生显示在(c)中的最终模糊。

preview
(a)用标准方法渲染3D模型(b)为一个由美术同学创建的辉光源纹理的渲染,目的是指定辉光面积的图案和强度(c)为将辉光应用到标准的渲染结果后,得到的富有表现力的英雄角色效果。

 

另外,在辉光中使用的这个卷积和模糊方法还可以用于多种其他效果。它能用来计算景深效果的不同聚焦度,景深的信息可以用来控制模糊度。它也能用来模糊投影的纹理阴影的边缘,并且累积深度阴影映射的接近百分比过滤(percentage-closer filtering )结果。

而大面积的卷积能被应用于一个环境映射,以创建一个近似的辐照度映射,从而得到更逼真的场景照明(Ramamoorthi和Hanrahan 2001有相关论述)。用大面积的卷积也可以实现许多非真实感渲染技术和其他的特别效果。其中包括镀着霜的玻璃、模拟衍射的透镜摇曳,以及渲染皮肤时用的近似次表面散射。

大片的模糊和卷积能有效地在多种图像硬件上实时地计算,而处理和创建这些效果的代码可以容易地封装成几个C++类或一个小库。

总之,屏幕辉光是一种很赞的效果,能够容易地扩展到几乎每一种情形,并且变化多端,通过其还够延伸创建出很多其他的效果。最终的效果虽然细微但却有张力,值得在各种游戏中采用。

【关键词提炼】

  • 实时辉光(Real-Time Glow)
  • 光晕(Halo)
  • 后处理(Post-Processing)
  • 图像处理(Image Processing)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Catlike Coding网站文章解析 -- 2.Procedural Grid

本章内容 创建一个闭合的cube mesh给cube添加带弧度平滑的边缘定义法线使用sub-meshes(子mesh)创建一个常规shader合并碰撞体1.合成一个cube 上一章https://mp.csdn.net/postedit/89474068我们已经实现了一个平面mesh。一个cube由6个平面组成&#xff…

GPU Gems1 - 23 景深技术综述

本章主要介绍如何使用GPU创建实时的景深(Depth of Field)效果。参考浅墨总结文章的链接https://zhuanlan.zhihu.com/p/36499291 聚焦在枪上,背景模糊【核心要点】 物体在距离镜头的一个范围之内能够清晰成像(经过聚焦&#xff09…

GPU Gems1 - 22 颜色控制(Color Controls)

这章将在游戏中图像处理的讨论,扩展到技术和艺术上控制颜色的方法和应用,包括将图像从一些的色彩空间中移入移出,以及快速地给任何2D或3D场景加上精美的色调。 色彩校正(Color Correction)是几乎所有印刷和胶片成像应…

GPU Gems1 - 25 用纹理贴图进行快速过滤宽度的计算

这章介绍在片元shader中计算导数近似值的技术。这个技术把特别的值载入纹理mipmap的每个级别,以特殊的方式使用纹理映射硬件,计算出导数的结果,给出在屏幕上的像素间某个量的变化率。 Cg标准程序库提供ddx和ddy函数,计算任意关于…

c#基础知识(1)

简介:C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。 程序结构:引用命名空间、命名空间、类、方法、属性、语句。 数据类型:bool、byt…

GPU Gems1 - 24 高质量的过滤

在一些应用中,高质量的过滤是至关重要的,可以用像素shader代码执行任何过滤。GPU着色程序不用于CPU的主要之处在于:一般来说,CPU数学操作比纹理访问更快,而在GPU中恰恰相反。图像过滤的目的很简单:对于给你…

2021-04-05

见缝插针小游戏 结束动画 我们的结束动画很简单,就是把画面放大,把背景改成红色,再有一个停顿就可以了 1、对于放大画面和修改背景颜色的操作,在这里可以直接修改相机设置 我们要获取到Hierarchy窗口中的Main Camera,…

GPU Gems1 - 26 OpenEXR图像文件格式与HDR(The OpenEXR Image File Format and HDR)

【章节概览】 这章中,大名鼎鼎的工业光魔公司的Florian Kainz、Rod Bogart和DrweHess介绍了OpenEXR标准,这是一种当时新的高动态范围图像(HDRI)格式,在计算机成像的顶级电影中正在快速推广。对于基于图像照明的开发者…

2021-04-08

unity入门教程 创建开始界面 在场景中创建画布Canvas,然后制作开始界面。 首先在Canvas下新建一个空物体,命名为StartWnd。然后在StartWnd下新建一个Image,命名为imgTitle,SourceImage使用main图片。然后在StartWnd下新建一个Butt…

ID Tech 5 中Megatexture针对地形的D3D9 基本实现原理

看GPU Gems2中的 使用基于GPU几何体裁剪图的地形渲染(Terrain Rendering Using GPU-Based Geometry Clipmaps)一文,对Clipmap技术不是理解很好,所以上网搜索一番,发现了这篇文章,实在是太棒的文章&#xff…

2021-04-12

异步传输(Asynchronous Transmission):异步传输模式(Asynchronous Transfer Mode,缩略语为ATM) 异步传输一般以字符为单位, 起始位:先发出一个逻辑”0”信号,表示传输字符的开始。 空闲位:处于逻…

[知乎] 开放世界游戏中的大地图背后有哪些实现技术?

今天看到的一篇关于大世界的技术文章,写的太好了,膜拜大佬。各位如果有时间一定要看看 原文:http://gulu-dev.com/post/2014-11-16-open-world#toc_10 一、程序技术篇:算法和架构(Programming Algorithms & Arch…

角色控制器

一、简介 角色控制器(Character Controller)主要用于对第三人称或第一人称游戏主角的控制。 二、基本概念 第三人称游戏中的这些控制器由于无规律可循,所以无法遵守固定的物理规则,例如,让某辆车每小时跑 90 英里,但是它可能会突…

unity声音组件AudioSource的使用

一、AudioSource组件 AudioSource是音频源组件,其作用就是用于播放音频剪辑(AudioClip)资源。组件属性 (1)AudioClip(音频剪辑):指定播放的音频文件。 (2)O…

GPU Gems2 - 2 使用基于GPU几何体裁剪图的地形渲染(Terrain Rendering Using GPU-Based Geometry Clipmaps)

【章节概览】 本章描述了一种通过顶点纹理实现的,基于GPU的几何体裁剪图(Geometry Clipmaps)技术。通过把地形几何体当做一组图像来处理,可以在GPU上执行几乎所有的计算,因此可以减少CPU的负载。且该技术较为容易实现…

协程

协程介绍 协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈,局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。线程与协同程序的主要区别在于,一个具有多线程的程序可以同时运行几个…

球谐光照

一.原理 球谐光照实际上是一种对光照的简化,对于空间上的一点,受到的光照在各个方向上是不同的,也即各向异性,所以空间上一点如果要完全还原光照情况,那就需要记录周围球面上所有方向的光照。注意这里考虑的周围环境往…

overload、override、new解释

重载、重写、覆写,分别指的是overload、override、new。 一、override重写,是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同。用于扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟…

图像色调,饱和度,对比度等相关定义

RGB颜色模型 RGB颜色模型也就是我们最常用的三原色,红绿蓝。RGB颜色模型在混色时属于加法混色,RGB中每种颜色数值越高,色彩越明亮。RBG为(0,0,0)时为黑色,RGB为(255,255,255)时为白…

各Rendering Path技术以及其在Unity中的实现

Rendering Path其实指的就是渲染场景中光照的方式。由于场景中的光源可能很多,甚至是动态的光源。所以怎么在速度和效果上达到一个最好的结果确实很困难。以当今的显卡发展为契机,人们才衍生出了这么多的Rendering Path来处理各种光照。 一. 正向渲染Fo…