Jump to content

Caustic (optics): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
See also: Rm irrelevant links.
Fix incorrect reference to Dartmouth College as "Dartmouth University"
 
(30 intermediate revisions by 23 users not shown)
Line 1: Line 1:
{{Short description|Envelope of light rays reflected or refracted by a curved surface/object}}
{{technical|date=April 2020}}
{{Other uses|Caustic (disambiguation)}}
{{Other uses|Caustic (disambiguation)}}
[[File:Kaustik.jpg|thumb|right|Caustics produced by a glass of water]]
[[File:Kaustik.jpg|thumb|right|Caustics produced by a glass of water, visible as patches of light]]
[[File:Caustic00.jpg|thumb|right|[[Nephroid]] caustic at the bottom of a teacup]]
In [[optics]], a '''caustic''' or '''caustic network'''<ref>{{cite book|last1=Lynch|first1=DK|last2=Livingston|first2=W|year=2001|title=Color and Light in Nature|publisher=Cambridge University Press|isbn=978-0-521-77504-5|chapter=The caustic network}}</ref> is the [[Envelope (mathematics)|envelope]] of [[Ray (optics)|light rays]] [[Reflection (physics)|reflected]] or [[refraction|refracted]] by a curved surface or object, or the [[Projection (mathematics)|projection]] of that envelope of rays on another surface.<ref name=WEI69>{{cite book|last=Weinstein|first=Lev Albertovich|title=Open Resonators and Open Waveguides|year=1969|publisher=The Golem Press|location=Boulder, Colorado}}</ref> The caustic is a [[curve]] or [[Surface (mathematics)|surface]] to which each of the light rays is [[tangent]], defining a boundary of an envelope of rays as a curve of concentrated light.<ref name="WEI69"/> Therefore, in the photo on the side, caustics can be seen as patches of light or their bright edges. These shapes often have [[cusp (singularity)|cusp singularities]].

[[File:Caustic00.jpg|thumb|right|[[Nephroid]] caustic at bottom of tea cup]]
[[File:Great Barracuda, corals, sea urchin and Caustic (optics) in Kona, Hawaii 2009.jpg|thumb|right|Caustics made by the surface of water]]
[[File:Great Barracuda, corals, sea urchin and Caustic (optics) in Kona, Hawaii 2009.jpg|thumb|right|Caustics made by the surface of water]]
[[File:Caustic Shallow Water.webm|thumb|Caustics in shallow water]]

In [[optics]], a '''caustic''' or '''caustic network'''<ref>{{cite book|last1=Lynch|first1=DK|last2=Livingston|first2=W|year=2001|title=Color and Light in Nature|publisher=Cambridge University Press|isbn=978-0-521-77504-5|chapter=The caustic network}}</ref> is the [[Envelope (mathematics)|envelope]] of [[Ray (optics)|light rays]] which have been [[Reflection (physics)|reflected]] or [[refraction|refracted]] by a curved surface or object, or the [[Projection (mathematics)|projection]] of that envelope of rays on another surface.<ref name=WEI69>{{cite book|last=Weinstein|first=Lev Albertovich|title=Open Resonators and Open Waveguides|year=1969|publisher=The Golem Press|location=Boulder, Colorado}}</ref> The caustic is a [[curve]] or [[Surface (mathematics)|surface]] to which each of the light rays is [[tangent]], defining a boundary of an envelope of rays as a curve of concentrated light.<ref name="WEI69"/> In some cases caustics can be seen as patches of light or their bright edges, shapes which often have [[cusp (singularity)|cusp singularities]].


==Explanation==
==Explanation==
[[File:Caustics.gif|250px|thumb|right|The rays refracted by a non-flat surface form caustics where many of them cross.]]
[[File:Caustics.gif|250px|thumb|right|The rays refracted by a non-flat surface form caustics where many of them cross.]]
Concentration of light, especially [[sunlight]], can burn. The word ''caustic'', in fact, comes from the Greek καυστός, burnt, via the Latin ''causticus'', burning. A common situation where caustics are visible is when light shines on a drinking glass. The glass casts a shadow, but also produces a curved region of bright light. In ideal circumstances (including perfectly parallel rays, as if from a point source at infinity), a [[nephroid]]-shaped patch of light can be produced.<ref>[http://mathworld.wolfram.com/CircleCatacaustic.html Circle Catacaustic]. Wolfram [[MathWorld]]. Retrieved 2009-07-17.</ref><ref>{{Cite web|url=https://sinews.siam.org/Details-Page/focusing-on-nephroids|title=Focusing on Nephroids|last=Levi|first=Mark|date=2018-04-02|website=SIAM News|access-date=2018-06-01}}</ref> Rippling caustics are commonly formed when light shines through waves on a body of water.
Concentration of light, especially [[sunlight]], can burn. The word ''caustic'', in fact, comes from the Greek καυστός, burnt, via the Latin ''causticus'', burning.
A common situation where caustics are visible is when light shines on a drinking glass. The glass casts a shadow, but also produces a curved region of bright light. In ideal circumstances (including perfectly parallel rays, as if from a point source at infinity), a [[nephroid]]-shaped patch of light can be produced.<ref>[http://mathworld.wolfram.com/CircleCatacaustic.html Circle Catacaustic]. Wolfram [[MathWorld]]. Retrieved 2009-07-17.</ref><ref>{{Cite web|url=https://sinews.siam.org/Details-Page/focusing-on-nephroids|title=Focusing on Nephroids|last=Levi|first=Mark|date=2018-04-02|website=SIAM News|access-date=2018-06-01|archive-date=2023-06-27|archive-url=https://web.archive.org/web/20230627231225/https://sinews.siam.org/Details-Page/focusing-on-nephroids|url-status=dead}}</ref> Rippling caustics are commonly formed when light shines through waves on a body of water.


Another familiar caustic is the [[rainbow]].<ref>[http://atoptics.co.uk/fz552.htm Rainbow caustics]</ref><ref>[http://atoptics.co.uk/fz564.htm Caustic fringes]</ref> Scattering of light by raindrops causes different [[wavelength]]s of light to be refracted into arcs of differing radius, producing the bow.
Another familiar caustic is the [[rainbow]].<ref>[http://atoptics.co.uk/fz552.htm Rainbow caustics]</ref><ref>[http://atoptics.co.uk/fz564.htm Caustic fringes]</ref> Scattering of light by raindrops causes different [[wavelength]]s of light to be refracted into arcs of differing radius, producing the bow.
Line 16: Line 19:
[[File:Wine_glass_caustic_example.jpg|thumb|upright|right|Photograph of a typical wine glass caustic]]
[[File:Wine_glass_caustic_example.jpg|thumb|upright|right|Photograph of a typical wine glass caustic]]
[[File:Computer_rendering_of_a_wine_glass_caustic.png|thumb|right|Computer rendering of a wine glass caustic]]
[[File:Computer_rendering_of_a_wine_glass_caustic.png|thumb|right|Computer rendering of a wine glass caustic]]
In computer graphics, most modern [[rendering system]]s support caustics. Some of them even support volumetric caustics. This is accomplished by [[Ray tracing (graphics)|raytracing]] the possible paths of a light beam, accounting for the refraction and reflection. [[Photon mapping]] is one implementation of this. Volumetric caustics can also be achieved by [[volumetric path tracing]]. Some computer graphic systems work by "forward ray tracing" wherein photons are modeled as coming from a light source and bouncing around the environment according to rules. Caustics are formed in the regions where sufficient photons strike a surface causing it to be brighter than the average area in the scene. “Backward ray tracing” works in the reverse manner beginning at the surface and determining if there is a direct path to the light source.<ref>{{cite book |title=GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics |date=2004 |editor-first=Randima |editor-last=Fernando |publisher=Addison-Wesley |isbn=978-0321228321 |chapter=Chapter 2. Rendering Water Caustics |first=Juan |last=Guardado |chapter-url=https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch02.html}}</ref> Some examples of 3D ray-traced caustics can be found [http://www.theeshadow.com/h/caustic/ here].
In computer graphics, most modern [[rendering system]]s support caustics. Some of them even support [[Volume rendering|volumetric]] caustics. This is accomplished by [[Ray tracing (graphics)|raytracing]] the possible paths of a light beam, accounting for the refraction and reflection. [[Photon mapping]] is one implementation of this. Volumetric caustics can also be achieved by [[volumetric path tracing]]. Some computer graphic systems work by "forward ray tracing" wherein photons are modeled as coming from a light source and bouncing around the environment according to rules. Caustics are formed in the regions where sufficient photons strike a surface causing it to be brighter than the average area in the scene. “Backward ray tracing” works in the reverse manner beginning at the surface and determining if there is a direct path to the light source.<ref>{{cite book |title=GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics |date=2004 |editor-first=Randima |editor-last=Fernando |publisher=Addison-Wesley |isbn=978-0321228321 |chapter=Chapter 2. Rendering Water Caustics |first=Juan |last=Guardado |chapter-url=https://developer.nvidia.com/gpugems/GPUGems/gpugems_ch02.html}}</ref> Some examples of 3D ray-traced caustics can be found [http://www.theeshadow.com/h/caustic/ here].


The focus of most computer graphics systems is aesthetics rather than [[physically based rendering|physical accuracy]]. This is especially true when it comes to real-time graphics in computer games<ref>{{cite web |url=http://www.dualheights.se/caustics/caustics-water-texturing-using-unity3d.shtml |title=Caustics water texturing using Unity 3D |publisher= Dual Heights Software |access-date=May 28, 2017}}</ref> where generic pre-calculated [[Texture mapping|textures]] are mostly used instead of physically correct calculations.
The focus of most computer graphics systems is aesthetics rather than [[physically based rendering|physical accuracy]]. This is especially true when it comes to real-time graphics in computer games<ref>{{cite web |url=http://www.dualheights.se/caustics/caustics-water-texturing-using-unity3d.shtml |title=Caustics water texturing using Unity 3D |publisher= Dual Heights Software |access-date=May 28, 2017}}</ref> where generic pre-calculated [[Texture mapping|textures]] are mostly used instead of physically correct calculations.


==Caustic engineering==
==Caustic engineering==
{{split section|Caustic engineering|date=May 2020}}
Caustic engineering describes the process of solving the [[inverse problem]] to [[computer graphics]]. That is, given a specific image, to determine a surface whose refracted or reflected light forms this image.
Caustic engineering describes the process of solving the [[inverse problem]] to [[computer graphics]]. That is, given a specific image, to determine a surface whose refracted or reflected light forms this image.


In the discrete version of this problem, the surface is divided into several micro-surfaces which are assumed smooth, i.e. the light reflected/refracted by each micro-surface forms a Gaussian caustic. Gaussian caustic means that each micro-surface obey [[gaussian distribution]]. The position and orientation of each of the micro-surfaces is then obtained using a combination of [[Poisson distribution|Poisson integration]] and [[simulated annealing]].<ref>{{cite journal|author=Marios Papas|title=Goal Based Caustics|journal=Computer Graphics Forum (Proc. Eurographics)|volume=30|number=2|date=April 2011}}</ref>
In the discrete version of this problem, the surface is divided into several micro-surfaces which are assumed smooth, i.e. the light reflected/refracted by each micro-surface forms a Gaussian caustic. Gaussian caustic means that each micro-surface obey [[Gaussian distribution]]. The position and orientation of each of the micro-surfaces are then obtained using a combination of [[Poisson distribution|Poisson integration]] and [[simulated annealing]].<ref>{{cite journal|author=Marios Papas|title=Goal Based Caustics|journal=Computer Graphics Forum (Proc. Eurographics)|volume=30|number=2|date=April 2011|pages=503–511 |doi=10.1111/j.1467-8659.2011.01876.x
|url=https://cs.dartmouth.edu/wjarosz/publications/papas11goal.pdf|url-status=live|archiveurl=https://web.archive.org/web/20210511124545/https://cs.dartmouth.edu/wjarosz/publications/papas11goal.pdf|archivedate=May 11, 2021}} (Additional resources at [https://cs.dartmouth.edu/wjarosz/publications/papas11goal.html Wojciech Jarosz's Dartmouth College site])</ref>


There have been many different approaches to address the continuous problem. One approach uses an idea from [[transportation theory (mathematics)|transportation theory]] called ''[[Transportation theory (mathematics)|optimal transport]]''<ref>{{cite book |last=Villani |first=Cedric |date=2009 |title=Optimal Transport - Old and New |publisher=Springer-Verlag Berlin Heidelberg |isbn=978-3-540-71049-3 }}</ref> to find a mapping between incoming light rays and the target surface. After obtaining such a mapping, the surface is optimized by adapting it iteratively using [[Snell's law]] of refraction.<ref>{{cite journal|author=Philip Ball|title=Light tamers|journal=New Scientist|volume=217|number=2902| date=February 2013 |pages=40–43|doi=10.1016/S0262-4079(13)60310-3|bibcode=2013NewSc.217...40B}}</ref><ref>[http://phys.org/news/2012-11-choreographing-algorithm-patterns-caustics-coherent.html Choreographing light: New algorithm controls light patterns called 'caustics', organizes them into coherent images]</ref>
There have been many different approaches to address the continuous problem. One approach uses an idea from [[transportation theory (mathematics)|transportation theory]] called ''[[Transportation theory (mathematics)|optimal transport]]''<ref>{{cite book |last=Villani |first=Cedric |date=2009 |title=Optimal Transport - Old and New |publisher=Springer-Verlag Berlin Heidelberg |isbn=978-3-540-71049-3 }}</ref> to find a mapping between incoming light rays and the target surface. After obtaining such a mapping, the surface is optimized by adapting it iteratively using [[Snell's law]] of refraction.<ref>{{cite journal|author=Philip Ball|title=Light tamers|journal=New Scientist|volume=217|number=2902| date=February 2013 |pages=40–43|doi=10.1016/S0262-4079(13)60310-3|bibcode=2013NewSc.217...40B}}</ref><ref>[http://phys.org/news/2012-11-choreographing-algorithm-patterns-caustics-coherent.html Choreographing light: New algorithm controls light patterns called 'caustics', organizes them into coherent images]</ref>


=== Optimal-transport-based caustic pattern design===
=== Optimal-transport-based caustic pattern design ===


==== Basic principle ====
==== Basic principle ====
Controlling caustic pattern is rather a challenging problem as very minor changes of the surface will significantly affect the quality of the pattern since light ray directions might be interfered by other light rays as they intersect with and refract through the material. This will lead to a scattered, discontinuous pattern. To tackle this problem, optimal-transport-based is one of the existing proposed methods to control caustic pattern by redirecting light's directions as it propagates through the surface of a certain [[Transparency and translucency|transparent material]]. This is done by solving an inverse optimization problem based on [[Transportation theory (mathematics)|optimal transport]].<ref name=":0">{{Cite web|url=https://lgg.epfl.ch/publications/2014/Caustics/paper.pdf|title=High-contrast Computational Caustic Design|last=Yuliy Schwartzburg, Romain Testuz, Andrea Tagliasacchi, Mark Pauly (2014)}}</ref><ref>{{Cite book|title=Optimal Transport, Old and New|last=Cédric|first=Villani|publisher=Springer|year=2009|isbn=978-3-540-71050-9}}</ref> Given a reference image of an object/pattern, the target is to formulate the mathematical description of the material surface through which light refracts and converges to the similar pattern of the reference image. This is done by rearranging/recomputing the initial light intensity until the minimum of the optimization problem is reached.
Controlling caustic pattern is rather a challenging problem as very minor changes of the surface will significantly affect the quality of the pattern since light ray directions might be interfered by other light rays as they intersect with and refract through the material. This will lead to a scattered, discontinuous pattern. To tackle this problem, optimal-transport-based is one of the existing proposed methods to control caustic pattern by redirecting light's directions as it propagates through the surface of a certain [[Transparency and translucency|transparent material]]. This is done by solving an inverse optimization problem based on [[Transportation theory (mathematics)|optimal transport]].<ref name=":0">{{cite journal |last1=Schwartzburg |first1=Yuliy |last2=Testuz |first2=Romain |last3=Tagliasacchi |first3=Andrea |last4=Pauly |first4=Mark |title=High-contrast computational caustic design |journal=ACM Transactions on Graphics |date=27 July 2014 |volume=33 |issue=4 |pages=1–11 |doi=10.1145/2601097.2601200 |url=https://infoscience.epfl.ch/record/201509}}</ref><ref>{{Cite book|title=Optimal Transport, Old and New|last=Cédric|first=Villani|publisher=Springer|year=2009|isbn=978-3-540-71050-9}}</ref> Given a reference image of an object/pattern, the target is to formulate the mathematical description of the material surface through which light refracts and converges to the similar pattern of the reference image. This is done by rearranging/recomputing the initial light intensity until the minimum of the optimization problem is reached.

==== Design pipeline ====
Here considering only refractive caustic, the objective can be determined as follows (similar principle for reflective caustic with different output):

''<u>Input:</u>'' image of pattern to be obtained after propagating lights through the material, given the light source position.

<u>''Output:''</u> caustic geometry on the receiver (flat solid surface, e.g.: floor, wall, etc...)

In order to achieve the target pattern, the surface where light refracts through and exits to the outer environment must be manufactured into certain shape to achieve desired pattern on the other side of the material.

As mentioned, given an input image, this process will produce the similar caustic pattern as the output. In principle, there are two core stages with each includes two sub-stages:

*[[File:CausOptim.png|thumb|381x381px|Optimal-transport-based caustic design]]Solving Optimal Transport Problem
*# Compute Target Light Distribution
*#Compute Mapping from Initial Distribution to Target Distribution
* Optimizing Target Surface
*# Compute Normal Representation of Surface
*# Surface Refinement

==== Solving optimal transport problem ====
As the case refraction occurs through a transparent surface, for instance the patterns appearing under clear water surface, 3 main phenomena can be observed:

* Very bright (condensed light intensity) points (so-called [[Singularity (mathematics)|singularity]])
* Curve-like objects that connect the points
* Regions with low light intensity

To perform computation, the following 3 quantities are being respectively introduced to describe the geometric characteristics of the pattern: point singularity <math>\Phi_{p}</math> (measuring light intensity at certain highly concentrated light-point), curve singularity <math>\Phi_{c}</math> (measuring light intensity at/around a light-curve), and [[Irradiance|irradiance measure]] <math>\Phi_{I}</math> (measuring intensity in a certain poorly concentrated light-area). Putting them altogether, the following function defines the total [[Radiant flux|radiant flux measure]] <math>\Phi_T</math> at a certain section Ω on the target surface:

:<math>\Phi_T(\Omega) = \textstyle \sum_{i=1}^{N_\delta} \Phi_{p}^i(\Omega) + \sum_{j=1}^{N_\gamma} \Phi_{c}^j(\Omega) + \Phi_I(\Omega)\displaystyle</math>

After this step, there are two existing measures of the radiant flux measures of the source <math>\Phi_{S}</math> (uniform distribution, by initialization) and the target <math>\Phi_{T}</math> (computed in previous step). What remains to compute is the mapping from the source to target. In order to do this, there are several quantities to be defined. Firstly, two light intensities evaluated by probabilities: <math>\mu_S</math> (light intensity evaluated by dividing <math>\Phi_{S}</math> by the [[flux]] of the union region between <math>\Phi_{S}</math> and <math>\Phi_{T}</math>), <math>\mu_T</math> (light intensity evaluated by dividing <math>\Phi_{T}</math> by the [[flux]] of the union region between <math>\Phi_{S}</math> and <math>\Phi_{T}</math>) are defined. Secondly, the source mesh is generated as multiple sites <math>s_i \in (\Phi_S \cup \Phi_T)</math>, which is later being deformed. Next, a [[power diagram]] <math>P_w</math> (a set of <math>C_i^w</math> power cells) is defined on this set of sites <math>s_i</math> weighted by a weight vector <math>\omega</math>. Finally, the goal is to decide whether which power cells are going to be move. Considering all <math>x</math> vertices on the surface, finding the minimizer <math>\omega_{min}</math> of the following [[convex function]] will produce the matched power diagram for the target:

:<math>f(\omega) = \sum_{s_i \in S} (\omega_i.\mu_S(C_i^0) - \int\limits_{C_i^{\omega}} (\|x - s_i\|^2 - \omega_i)d\mu_T(x))</math>

==== Optimizing target surface ====
[[File:TarOptim.png|thumb|436x436px|Computation Process]]
After solving optimal transport problem, the vertices are achieved. However, this gives no information about what the final surface should look like. To achieve the desired target surface given the incoming light ray <math>d_I</math>, outgoing light ray <math>d_O</math> and power diagram from the step above, the surface normals representation can be computed according to [[Snell's law]] as:

:<math>n = d_I + {\eta x \over \lVert d_I + \eta d_T \rVert} = d_I + {\eta x \over \lVert d_I + \eta {(x_R - x) \over || x_R - x ||}\rVert}</math>

where,

:<math>\eta</math>: [[Refractive index|refraction coefficient]]

:<math>x_R</math>: target position obtained from solving above optimal transport problem

As the normal representation is obtained, surface refinement is then achieved by minimizing the following [[Energy function|compound energy function]]:

:<math>\underset{x}{\operatorname{arg\,max}} \, \omega \, \cdot[
E_{int}, \,
E_{dir},\,
E_{flux}, \,
E_{reg}, \,
E_{bar}
]</math>

where,

:<math>
E_{int} = \sum_{v \in M_T} \lVert n_o - n\rVert_2^2</math> is the integration energy that aligns the vertex normals <math>n_o</math> obtained from the Optimal Transport with the target normals <math>n</math> obtained from the Snell's law computation above.

:<math>E_{dir} = \sum_{v \in M_T} \lVert x - \textbf{proj}_{(x_S, \,d_I)}(x)\rVert_2^2</math> as mesh generated in step Solving Optimal Transport cannot adapt to the sharp instances from the discontinuities, this energy is to penalize the vertices to not change significantly from the incoming light ray.

:<math>
E_{flux} = \sum_{t \in M_T} \lVert \Phi_T(t) - \Phi_S(t_s)\rVert_2^2
</math> is the energy measuring the flux over the triangle <math>t</math> in the mesh.

:<math>
E_{reg} = \lVert \textbf{L}\textbf{X}\rVert_2^2</math> is the energy that regularizes the shape of the triangles to maintain its well-shapedness.

:<math>
E_{bar} = \sum_{v \in M_T} \lVert max(0, -log((1 - n_R.(x - x_R)) + d_{TH})\rVert^2</math> is barrier energy to ensure that surface does not deform beyond a certain distance threshold <math>d_{TH}</math>.

=== Differentiable inverse rendering caustic pattern design ===

==== Basic principle ====
[[Inverse rendering|Inverse graphics]] is a method of observing the data from an image and inferring all possible properties including 3D geometry, lighting, materials, and motion in order to generate a realistic image.<ref>{{Citation|last=Loper|first=Matthew M.|title=OpenDR: An Approximate Differentiable Renderer|date=2014|work=Computer Vision – ECCV 2014|pages=154–169|publisher=Springer International Publishing|isbn=978-3-319-10583-3|last2=Black|first2=Michael J.|doi=10.1007/978-3-319-10584-0_11}}</ref> In conventional computer graphics, to render an image with desired appearance and effects, it is given all the relevant properties/characteristics. This could be described as the forward method. On the contrary, in caustic design, the properties and characteristics of objects (especially the material surface) are not trivial. The given constraint is the target image to obtain. Therefore, the goal is to obtain its properties and characteristics by observing and inferring the target image. This can be considered the inverse/backward method.

The following is the basic [[loss function]] explaining how to optimize the parameters:

:<math>L(c) = \lVert f(c)-I \rVert^2</math>

where,

:{{math|<var>L</var>(<var>c</var>)}}: loss function, mean square error of the rendered image and the target

:{{mvar|c}}: contains elements which can influence the generated image

:{{mvar|I}}: target image

==== Designed pipeline ====
[[File:Cam-geo-app.png|thumb|546x546px|Differentiable inverse rendering caustic design]]
At first, the target pattern is designed and the forward pass computed to get the synthetic pattern. It's compared to the target pattern and get the loss.
The objection is to let the synthetic pattern is similar to the target pattern as much as possible. And then do the back propagation to get the optimized properties need to use in caustic manufacturing.

==== Elements contributing to generated image ====

* Appearance (<math>A</math>): per-pixel surface appearance is modeled as product of [[Mipmap|mipmapped]] texture and per-pixel brightness.
* Geometry (<math>V</math>): assume a 3D scene to be approximated by triangles, parameterized by vertices <math>V</math>.
* Camera (<math>C</math>): focal length, the point of view, the center of the camera.

There could be more elements, for example [[albedo]] and [[Refractive index|refraction coefficient]].

==== General differentiable framework ====
Introduce U as an intermediate variable indicating 2D projected vertex coordinate positions. The gradient of these properties can be derived by chain rule indirectly.

: <math>\frac{\partial f}{\partial V} = \frac{\partial f}{\partial U} \times \frac{\partial U}{\partial V}</math>
: <math>\frac{\partial f}{\partial V} = \frac{\partial f}{\partial A} \times \frac{\partial A}{\partial V}</math>
: <math>\frac{\partial f}{\partial C} = \frac{\partial f}{\partial U} \times \frac{\partial U}{\partial C}</math>

After applying the [[stochastic gradient descent]], the optimal <math>A</math>, <math>V</math> and <math>C</math> could be achieved. Subsequently, these quantities are used to carve or mill the material to generate the target pattern.

==== Implementation ====
One common approach is to utilize the ability to perform differential operations in various [[deep learning]] auto-differentiation frameworks/libraries such as: [[TensorFlow|Tensorflow]], [[PyTorch]], [[Theano (software)|Theano]].

One more approach is to make use of the OpenDR<ref>{{Citation|last=Loper|first=Matthew M.|title=OpenDR: An Approximate Differentiable Renderer|date=2014|work=Computer Vision – ECCV 2014|pages=154–169|publisher=Springer International Publishing|isbn=978-3-319-10583-3|last2=Black|first2=Michael J.|doi=10.1007/978-3-319-10584-0_11}}</ref> framework to build a forward graphics model and to automatically obtain derivatives with respect to the model parameters for optimization. As optimization properties are obtained, the target image can be generated. OpenDR provides a local optimization method that can be incorporated into probabilistic programming frameworks. This can be used to solve the problem of caustic.


=== Manufacturing ===
=== Manufacturing ===
Line 155: Line 42:


Various materials can be used depending on the desired quality, the effort it takes to manufacture, and the available manufacturing method.
Various materials can be used depending on the desired quality, the effort it takes to manufacture, and the available manufacturing method.
* Common refractive materials: [[Poly(methyl methacrylate)|Acrylic]], [[Polycarbonate]], [[Polyethylene]], [[Glass]], [[Diamond]]
* Common refractive materials: [[Poly(methyl methacrylate)|acrylic]], [[polycarbonate]], [[polyethylene]], [[glass]], [[diamond]]
* Common reflective materials: [[Steel]], [[Iron]], [[Aluminium|Aluminum]], [[Gold]], [[Silver]], [[Titanium]], [[Nickel]]
* Common reflective materials: [[steel]], [[iron]], [[Aluminium|aluminum]], [[gold]], [[silver]], [[titanium]], [[nickel]]


[[File:Screenshot from 2020-01-29 13-57-56.png|thumb|Architecture|231x231px]]
[[File:Screenshot from 2020-01-29 13-57-56.png|thumb|Architecture|231x231px]]

Latest revision as of 05:20, 26 October 2024

Caustics produced by a glass of water, visible as patches of light
Nephroid caustic at the bottom of a teacup
Caustics made by the surface of water
Caustics in shallow water

In optics, a caustic or caustic network[1] is the envelope of light rays which have been reflected or refracted by a curved surface or object, or the projection of that envelope of rays on another surface.[2] The caustic is a curve or surface to which each of the light rays is tangent, defining a boundary of an envelope of rays as a curve of concentrated light.[2] In some cases caustics can be seen as patches of light or their bright edges, shapes which often have cusp singularities.

Explanation

[edit]
The rays refracted by a non-flat surface form caustics where many of them cross.

Concentration of light, especially sunlight, can burn. The word caustic, in fact, comes from the Greek καυστός, burnt, via the Latin causticus, burning.

A common situation where caustics are visible is when light shines on a drinking glass. The glass casts a shadow, but also produces a curved region of bright light. In ideal circumstances (including perfectly parallel rays, as if from a point source at infinity), a nephroid-shaped patch of light can be produced.[3][4] Rippling caustics are commonly formed when light shines through waves on a body of water.

Another familiar caustic is the rainbow.[5][6] Scattering of light by raindrops causes different wavelengths of light to be refracted into arcs of differing radius, producing the bow.

Computer graphics

[edit]
Photograph of a typical wine glass caustic
Computer rendering of a wine glass caustic

In computer graphics, most modern rendering systems support caustics. Some of them even support volumetric caustics. This is accomplished by raytracing the possible paths of a light beam, accounting for the refraction and reflection. Photon mapping is one implementation of this. Volumetric caustics can also be achieved by volumetric path tracing. Some computer graphic systems work by "forward ray tracing" wherein photons are modeled as coming from a light source and bouncing around the environment according to rules. Caustics are formed in the regions where sufficient photons strike a surface causing it to be brighter than the average area in the scene. “Backward ray tracing” works in the reverse manner beginning at the surface and determining if there is a direct path to the light source.[7] Some examples of 3D ray-traced caustics can be found here.

The focus of most computer graphics systems is aesthetics rather than physical accuracy. This is especially true when it comes to real-time graphics in computer games[8] where generic pre-calculated textures are mostly used instead of physically correct calculations.

Caustic engineering

[edit]

Caustic engineering describes the process of solving the inverse problem to computer graphics. That is, given a specific image, to determine a surface whose refracted or reflected light forms this image.

In the discrete version of this problem, the surface is divided into several micro-surfaces which are assumed smooth, i.e. the light reflected/refracted by each micro-surface forms a Gaussian caustic. Gaussian caustic means that each micro-surface obey Gaussian distribution. The position and orientation of each of the micro-surfaces are then obtained using a combination of Poisson integration and simulated annealing.[9]

There have been many different approaches to address the continuous problem. One approach uses an idea from transportation theory called optimal transport[10] to find a mapping between incoming light rays and the target surface. After obtaining such a mapping, the surface is optimized by adapting it iteratively using Snell's law of refraction.[11][12]

Optimal-transport-based caustic pattern design

[edit]

Basic principle

[edit]

Controlling caustic pattern is rather a challenging problem as very minor changes of the surface will significantly affect the quality of the pattern since light ray directions might be interfered by other light rays as they intersect with and refract through the material. This will lead to a scattered, discontinuous pattern. To tackle this problem, optimal-transport-based is one of the existing proposed methods to control caustic pattern by redirecting light's directions as it propagates through the surface of a certain transparent material. This is done by solving an inverse optimization problem based on optimal transport.[13][14] Given a reference image of an object/pattern, the target is to formulate the mathematical description of the material surface through which light refracts and converges to the similar pattern of the reference image. This is done by rearranging/recomputing the initial light intensity until the minimum of the optimization problem is reached.

Manufacturing

[edit]
Design and manufacturing process

Once the caustic pattern has been designed computationally, the processed data will be then sent to the manufacturing stage to get the final product. The most common approach is subtractive manufacturing (machining).

Various materials can be used depending on the desired quality, the effort it takes to manufacture, and the available manufacturing method.

Architecture

Caustic pattern design has many real-world applications, for example in:

  • Luminaires
  • Jewelry
  • Architecture
  • Decorative glass production

See also

[edit]

References

[edit]
  1. ^ Lynch, DK; Livingston, W (2001). "The caustic network". Color and Light in Nature. Cambridge University Press. ISBN 978-0-521-77504-5.
  2. ^ a b Weinstein, Lev Albertovich (1969). Open Resonators and Open Waveguides. Boulder, Colorado: The Golem Press.
  3. ^ Circle Catacaustic. Wolfram MathWorld. Retrieved 2009-07-17.
  4. ^ Levi, Mark (2018-04-02). "Focusing on Nephroids". SIAM News. Archived from the original on 2023-06-27. Retrieved 2018-06-01.
  5. ^ Rainbow caustics
  6. ^ Caustic fringes
  7. ^ Guardado, Juan (2004). "Chapter 2. Rendering Water Caustics". In Fernando, Randima (ed.). GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics. Addison-Wesley. ISBN 978-0321228321.
  8. ^ "Caustics water texturing using Unity 3D". Dual Heights Software. Retrieved May 28, 2017.
  9. ^ Marios Papas (April 2011). "Goal Based Caustics" (PDF). Computer Graphics Forum (Proc. Eurographics). 30 (2): 503–511. doi:10.1111/j.1467-8659.2011.01876.x. Archived (PDF) from the original on May 11, 2021. (Additional resources at Wojciech Jarosz's Dartmouth College site)
  10. ^ Villani, Cedric (2009). Optimal Transport - Old and New. Springer-Verlag Berlin Heidelberg. ISBN 978-3-540-71049-3.
  11. ^ Philip Ball (February 2013). "Light tamers". New Scientist. 217 (2902): 40–43. Bibcode:2013NewSc.217...40B. doi:10.1016/S0262-4079(13)60310-3.
  12. ^ Choreographing light: New algorithm controls light patterns called 'caustics', organizes them into coherent images
  13. ^ Schwartzburg, Yuliy; Testuz, Romain; Tagliasacchi, Andrea; Pauly, Mark (27 July 2014). "High-contrast computational caustic design". ACM Transactions on Graphics. 33 (4): 1–11. doi:10.1145/2601097.2601200.
  14. ^ Cédric, Villani (2009). Optimal Transport, Old and New. Springer. ISBN 978-3-540-71050-9.

Further reading

[edit]
  • Ferraro, Pietro (1996). "What a caustic!". The Physics Teacher. 34 (9): 572–573. Bibcode:1996PhTea..34..572F. doi:10.1119/1.2344572.
  • Dachsbacher, Carsten; Liktor, Gábor (February 2011). "Real-time volume caustics with adaptive beam tracing". Symposium on Interactive 3D Graphics and Games. ACM: 47–54.