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

Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environment

https://sites.fas.harvard.edu/~cs278/papers/prt.pdf
abstract
we present a new, real-time method for rendering diffuse and glossy 光滑的 objects in low-frequency lighting environments that capture 抓住了 软阴影,相互反射,散焦线 soft shadows, interreflections, and caustics. as a preprocess, a novel 小说 global transport simulator creates functions over the object’s surface representing transfer of arbitrary, low-frequency incident lighting into transferred radiance which includes global effects like shadows and interreflections from the object onto itself. At run-time, these transfer functions are applied to actual incident lighting. Dynamic, local 动态局部光源 lighting is handled by sampling it close to the object every frame 每帧; the object can also be rigidly rotated with respect to the lighting and vice versa. Lighting and transfer functions are represented using low-order spherical harmonics. This avoids aliasing and evaluates efficiently on graphics hardware by reducing the shading integral to a dot product of 9 to 25 element vectors for diffuse receivers. Glossy 光滑的 objects are handled using matrices rather than vectors. We further introduce functions for radiance transfer from a dynamic lighting environment through a preprocessed object to neighboring points in space. These allow soft shadows and caustics 焦散线 是什么东东 from rigidly moving objects to be cast onto arbitrary, dynamic receivers. We demonstrate real-time global lighting effects with this approach.

Keywords: Graphics Hardware, Illumination, Monte Carlo Techniques, Rendering, Shadow Algorithms.

1. introdution

lighting from area sources, soft shadows, and interreflections are important effects in realistic image synthesis. unfortunately, general methods for intergrating over large-scale lighting environments [8], including Monte Carlo ray tracing [7][21][25], radiosity [6], or multi-pass rendering that sums over multiple point sources [17][27][36], are impractical for real-time rendering. real-time, realistic global illumination encounters three difficulties——it must model the complex, spatially-varying BRDFs of real materials (BRDF complexity), it requires integration over the hemisphere of lighting directions at each point (light integration), and it must account for boucing/occlusion effects, like shadows, due to intervening matter along light paths from sources to receivers(light transport complexity). much reseach has focused on extending BRDF complexity (e.g., glossy and anisotropic reflections), solving the light integration problem by representing incident lighting as a sum of directions or points. light integration thus tractably reduces to sampling an analytic or tabulated 汇总 BRDF at a few points, but becomes intractable for large light sources. a second line of various sizes [5][14][19][24][34]. this solves the light integration problem but ignores light transport complexities like shadows since the convolution assumes the incident radiance is unoccluded and unsattered. finally, clever techniques exist to simulate more complex light transport 传输, especially shadows. light integration becomes the problem; these techniques are impractical 不切实际的 for very large light sources.

our goal is to better account for light integration and light transport complexity in real-time. our compromise is to focus on low frequency lighting environments, using a low-order spherical harmonic (SH) basis to represent such environments efficiently without aliasing. the main idea is to represent how an object scatters this light onto itself or its neighboring space.

to describe our technique, assume initially we have a convex 凸, diffuse object lit by an infinitely distant environment map. the object’s shaded “response” to its environment can be viewed as a transfer function, mapping incoming to outgoing radiance, which in this case simply performs a cosine-weighted integral. a more complex integral captures how a concave 凹 object shows itself, where the integrand 被积函数 is multiplied by an additionally transport factor representing visibility along each direction.

our approach is to precompute for a given object the expensive transport simulation required by complex transfer functions like shadowing. The resulting transfer functions are represented as a dense set of vectors or matrices over its surface. Meanwhile, incident radiance need not be precomputed. 与此同时,入射辐射度需要预计算 The graphics hardware can dynamically sample incident radiance at a number of points. 图形硬件可以动态的采样一定数量的入射辐射度 Analytic models, 分析模型 such as skylight models [33] or simple geometries like circles, can also be used.

by representing both incident radiance and transfer functions in a linear basis (in our case, SH), we exploit the linearity 线性的 of light transport to reduce the light integral to a simple dot product between their coefficient vectors (diffuse receivers) or a simple linear transform of the lighting coefficient vector through a small transfer matrix (glossy receivers). Low-frequency lighting environments require few coefficients (9-25), enabling graphics hardware to compute the result in a single pass (Figure 1, right). Unlike Monte-Carlo and multi-pass light integration methods, our run-time computation stays constant no matter how many or how big the light sources, and in fact relies on large-scale, smooth lighting to limit the number of SH coefficients necessary.

We represent complex transport effects like interreflections and caustics in the transfer function 光传输方程. Since these are simulated as a preprocess, only the transfer function’s basis coefficients are affected, not the run-time computation. Our approach handles both surface and volume-based geometry. With more SH coefficients, we can even handle glossy (but not highly specular) receivers as well as diffuse, including interreflection 相互反射. 25 coefficients suffice 足够多了 for useful glossy effects. In addition to transfer from a rigid object to itself, called self-transfer, we generalize the technique to neighborhood-transfer from a rigid object to its neighboring space, allowing cast soft shadows, glossy reflections, and caustics on dynamic receivers 动态的接收者, see Figure 7.
在这里插入图片描述
Figure 7: Neighborhood transfer captures how this hang glider 滑翔机 blocks light to a volume of points below it. This allows cast soft shadow onto a bumpy terrain as the glider moves.

overview
as a preprocess, a global illumination simulator is run over the model that captures how it shadows and scatters light onto itself. the result is recorded as a dense set of vectors (diffuse case) or matrices (glossy case) over the model. at run-time (figure 2), incident radiance is first projected to the SH basis. the model’s field of transfer vectors or matrices is then applied to the lighting’s coefficient vector. if the object is diffuse, a transfer vector at each point on the object is dotted with the lighting’s coefficients to produce correctly self-scattered shading. if the object is glossy, a transfer matrix is applied to the lighting coefficients to produce the coefficients of a spherical function representing self-scattered incident radiance at each point. this function is convolved with the object’s BRDF and then evaluated at the view-dependent reflection direction to produce the final shading.

  1. related work

scene relighting 场景的重新照明 precomputes a separate global illumination solution per light source对每个灯进行单独的进行全局光照的计算 as we do; 然后对计算的结果进行线性的叠加,这种做法只能提供有限的动态效果 linear combinations of the results then provide limited dynamic effects. early work [2][11] adjusts intensities of a fixed set of sources and is not intended to fit general lighting environments. Nimeroff, et al. [33] precompute a “steerable function” basis for general skylight illumination on a fixed view. their basis, essentially the spherical monomials, is related to the SH by a linear transformation and thus shares some of its properties (e.g., rotational invariance) but not others (e.g., orthonomality). Teo, et al. [40] generalize to non-infinite souces, using principal 主要的 component analysis to reduce the basis set. our work differs by computing to reduce the basis set. our work differs by computing a transfer field over the object’s surface in 3D rather than over a fixed 2D view to allow viewpoint changes. Dobashi, et al. 以及其他人,等人; [10] use the SH basis and transfer vector fields over surfaces to allow viewpoint change but restrict lighting changes to the directional intensity distribution of an existing set of non-area light sources in diffuse scenes. Debevec, et al. [9] relight faces using a directional light basis. Real-time rendering requires a fixed view.

  1. Review of Spherical Harmonics

Definition Spherical harmonics define an orthonormal basis 标准正交基 over the sphere, S, analogous to 类似于 the Fourier transform 傅里叶变换 over the 1D
circle. Using the parameterization
在这里插入图片描述
the basis functions are defined as
在这里插入图片描述
where Plm are the associated Legendre polynomials and Klm are the normalization constants
在这里插入图片描述
The above definition forms a complex basis; a real-valued basis is given by the simple transformation
在这里插入图片描述
Low values of l (called the band index) represent low-frequency
basis functions over the sphere. The basis functions for band l
reduce to polynomials of order l in x, y, and z. Evaluation can be
done with simple recurrence formulas [13][44].

Projection and Reconstruction Because the SH basis is orthonormal,
a scalar function f defined over S can be projected
into its coefficients via the integral
在这里插入图片描述

These coefficients provide the n-th order reconstruction function
在这里插入图片描述
which approximates f increasingly well as the number of bands n
increases. Low-frequency signals can be accurately represented
with only a few SH bands. Higher frequency signals are bandlimited
(i.e., smoothed without aliasing) with a low-order projection.
Projection to n-th order involves n2 coefficients. It is often convenient
to rewrite (2) in terms of a singly-indexed vector of
projection coefficients and basis functions, via
在这里插入图片描述
where i=l(l+1)+m+1. This formulation makes it obvious that
evaluation at s of the reconstruction function represents a simple
dot product of the n2-component coefficient vector fi with the
vector of evaluated basis functions yi(s).

Basic Properties A critical property of SH projection is its
rotational invariance; that is, given g(s) = f (Q(s)) where Q is an
arbitrary rotation over S then

在这里插入图片描述
This is analogous to the shift-invariance property of the 1D
Fourier 傅里叶 transform. Practically, this property means that SH
projection causes no aliasing artifacts when samples from f are
collected at a rotated set of sample points.
Orthonormality of the SH basis provides the useful property that
given any two functions a and b over S, their projections satisfy
在这里插入图片描述
In other words, integration of the product of bandlimited functions
reduces to a dot product of their projection coefficients.
Convolution We denote convolution of a circularly symmetric
kernel function h(z) with a function f as h * f . Note that h must
be circularly symmetric (and hence can be defined as a simple
function of z rather than s) in order for the result to be defined on
S rather than the higher-dimensional rotation group SO(3).
Projection of the convolution satisfies

在这里插入图片描述
In other words, the coefficients of the projected convolution are
simply scaled products of the separately projected functions.
Note that because h is circularly symmetric about z, its projection
coefficients are nonzero only for m=0. The convolution property
provides a fast way to convolve an environment map with a
hemispherical cosine kernel, defined as h(z) = max(z,0) , to get
an irradiance map [34], for which the 0
l
h are given by an analytic
formula. The convolution property can also be used to produce
prefiltered environment maps with narrower kernels.

Product Projection 乘机投影 Projection of the product of a pair of spherical
functions c(s) = a(s)b(s) where a is known and b unknown
can be viewed as a linear transformation of the projection coefficients
bj via a matrix ?a :
在这里插入图片描述

where summation is implied over the duplicated j and k indices.
Note that ˆ a is a symmetric matrix. The components of ˆ a can be
computed by integrating the triple product of basis functions using
recurrences derived from the well-known Clebsch-Gordan series
[13][44]. It can also be computed using numerical integration
without SH-projecting the function a beforehand. Note that the
product’s order n projection involves coefficients of the two factor
functions up to order 2n-1.

Rotation A reconstruction function rotated by Q, f (Q(s)) , can
be projected into SH using a linear transformation of f’s projection
coefficients, fi. Because of the rotation invariance property,
this linear transformation treats the coefficients in each band
independently. The most efficient implementation is achieved via
a zyz Euler angle decomposition of the rotation Q, using a fairly
complicated recurrence formula [13][44]. Because we deal only
with low-order functions, we have implemented their explicit
rotation formulas using symbolic integration.

4 radiance self-transfer

到底怎么翻译呢? 辐射度自我传输?
radiance self-transfer encapsulates how an object O shadows and scatters light onto itself. to represent it, we first parameterize incident lighting at points p 属于 O,denoted Lp(s), using the SH basis. incident lighting is therefore represented as a vector of n平方 coefficients (Lp)i. we sample the lighting dynamically and sparsely near the surface, perhap at only a single point. the assumption is that lighting variation over O not due to its own presence is small (see section 6.1). we also precompute and store densely over O transfer vectors or matrices.

a tansfer vector (Mp)i is useful for diffuse surfaces and represents a linear transformation on the lighting vector producing scalar exit radiance, denoted Lp’, via the inner product:
在这里插入图片描述

in other words, each component of (Mp)i represents the linear influence that a

相关文章:

  • Ocelot-基于.NET Core的开源网关实现
  • Real-Time Rendering——Chapter 6 Texturing
  • 边缘分析及直线和圆拟合——第5讲
  • Towards Real-Time Photorealistic Rendering: Challenges and Solutions
  • SpringBoot——定时任务+WebSocket(问题)
  • unity调试lua工具和方法——IntelliJ IDEA+EmmyLua
  • cad.net 更改高版本填充交互方式为低版本样子
  • xlua——03_UIEvent学习
  • Ant构建原理及build.xml文档描述
  • 大型网站架构系列:负载均衡详解(3)
  • 概率论第10讲——离散型随机变量
  • error LNK1169 找到一个或多个多重定义的符号的解决方法
  • Simulation of Wrinkled Surfaces Revisited
  • 结构体内存对齐规则
  • 概率论第11讲——分布函数
  • “大数据应用场景”之隔壁老王(连载四)
  • 【Leetcode】104. 二叉树的最大深度
  • codis proxy处理流程
  • eclipse(luna)创建web工程
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • python学习笔记 - ThreadLocal
  • ReactNative开发常用的三方模块
  • 今年的LC3大会没了?
  • 前端工程化(Gulp、Webpack)-webpack
  • 浅谈web中前端模板引擎的使用
  • 区块链技术特点之去中心化特性
  • 人脸识别最新开发经验demo
  • 如何选择开源的机器学习框架?
  • 深入浅出Node.js
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 我看到的前端
  • 项目管理碎碎念系列之一:干系人管理
  • 用jquery写贪吃蛇
  • scrapy中间件源码分析及常用中间件大全
  • 函数计算新功能-----支持C#函数
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 移动端高清、多屏适配方案
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #pragma 指令
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (BFS)hdoj2377-Bus Pass
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)docker:Dockerfile构建容器运行jar包
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core 版本不支持的问题
  • .Net MVC + EF搭建学生管理系统
  • .Net7 环境安装配置
  • .net流程开发平台的一些难点(1)