Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Specular highlight

From Wikipedia, the free encyclopedia
(Redirected fromSpecular highlights)
Bright spot of light that appears on shiny objects when illuminated
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Specular highlight" – news ·newspapers ·books ·scholar ·JSTOR
(February 2008) (Learn how and when to remove this message)
Specular highlights on a pair of spheres

Aspecular highlight is the bright spot oflight that appears on shiny objects when illuminated (for example, see image on right). Specular highlights are important in3D computer graphics, as they provide a strong visual cue for the shape of an object and its location with respect to light sources in the scene.

Microfacets

[edit]
This sectiondoes notcite anysources. Please helpimprove this section byadding citations to reliable sources. Unsourced material may be challenged andremoved.(June 2015) (Learn how and when to remove this message)

The termspecular means that light isperfectly reflected in a mirror-like way from the light source to the viewer. Specular reflection is visible only where thesurface normal is oriented precisely halfway between the direction of incoming light and the direction of the viewer; this is called thehalf-angle direction because it bisects (divides into halves) the angle between the incoming light and the viewer. Thus, a specularly reflecting surface would show a specular highlight as the perfectly sharp reflected image of a light source. However, many shiny objects show blurred specular highlights.

This can be explained by the existence ofmicrofacets. We assume that surfaces that are not perfectly smooth are composed of many very tiny facets, each of which is a perfect specular reflector. These microfacets have normals that are distributed about the normal of the approximating smooth surface. The degree to which microfacet normals differ from the smooth surface normal is determined by the roughness of the surface. At points on the object where the smooth normal is close to the half-angle direction, many of the microfacets point in the half-angle direction and so the specular highlight is bright. As one moves away from the center of the highlight, the smooth normal and the half-angle direction get farther apart; the number of microfacets oriented in the half-angle direction falls, and so the intensity of the highlight falls off to zero.

The specular highlight often reflects the color of the light source, not the color of the reflecting object. This is because many materials have a thin layer of clear material above the surface of the pigmented material. For example, plastic is made up of tiny beads of color suspended in a clear polymer and human skin often has a thin layer of oil or sweat above the pigmented cells. Such materials will show specular highlights in which all parts of the color spectrum are reflected equally. On metallic materials such as gold the color of the specular highlight will reflect the color of the material.

Models

[edit]

A number of different models exist to predict the distribution of microfacets. Most assume that the microfacet normals are distributed evenly around the normal; these models are calledisotropic. If microfacets are distributed with a preference for a certain direction along the surface, the distribution isanisotropic.

NOTE: In most equations, when it says(A^B^){\displaystyle ({\hat {A}}\cdot {\hat {B}})} it meansmax(0,(A^B^)){\displaystyle \max(0,({\hat {A}}\cdot {\hat {B}}))}

Phong distribution

[edit]

In thePhong reflection model, the intensity of the specular highlight is calculated as:

kspec=RVcosnβ=(R^V^)n{\displaystyle k_{\mathrm {spec} }=\|R\|\|V\|\cos ^{n}\beta =({\hat {R}}\cdot {\hat {V}})^{n}}

WhereR is the mirror reflection of the light vector off the surface, andV is the viewpoint vector.

In theBlinn–Phong shading model, the intensity of a specular highlight is calculated as:

kspec=NHcosnβ=(N^H^)n{\displaystyle k_{\mathrm {spec} }=\|N\|\|H\|\cos ^{n}\beta =({\hat {N}}\cdot {\hat {H}})^{n}}

WhereN is the smooth surface normal andH is the half-angle direction (the direction vector midway betweenL, the vector to the light, andV, the viewpoint vector).

The numbern is called the Phong exponent, and is a user-chosen value that controls the apparent smoothness of the surface. These equations imply that the distribution of microfacet normals is an approximatelyGaussian distribution (for largen{\displaystyle n}), or approximatelyPearson type II distribution, of the corresponding angle.[1] While this is a usefulheuristic and produces believable results, it is not aphysically based model.

Another similar formula, but only calculated differently:
k=(LR)n=[L(E2N(NE))]n,{\displaystyle k=({\vec {L}}\cdot {\vec {R}})^{n}=[{\vec {L}}\cdot ({\vec {E}}-2{\vec {N}}({\vec {N}}\cdot {\vec {E}}))]^{n},}
whereR is an eye reflection vector,E is an eye vector (view vector),N issurface normal vector. All vectors are normalized (E=N=1{\displaystyle \|{\vec {E}}\|=\|{\vec {N}}\|=1}).L is a light vector. For example,N={0;1;0};E={32;12;0};L={0.6;0.8;0};n=3{\displaystyle {\vec {N}}=\{0;\;1;\;0\};\;\;{\vec {E}}=\{{\frac {\sqrt {3}}{2}};\;{\frac {1}{2}};\;0\};\;\;{\vec {L}}=\{-0.6;\;0.8;\;0\};\;\;n=3} then:
k=[L(E2N(NE))]n=[L(E2N(032+10.5+00))]3={\displaystyle k=[{\vec {L}}\cdot ({\vec {E}}-2{\vec {N}}({\vec {N}}\cdot {\vec {E}}))]^{n}=[{\vec {L}}\cdot ({\vec {E}}-2{\vec {N}}(0\cdot {\frac {\sqrt {3}}{2}}+1\cdot 0.5+0\cdot 0))]^{3}=}
=[L(EN)]3=[L({320;121;00})]3=[0.632+0.8(0.5)+00]3=(0.51960.4)3=0.91963=0.7777.{\displaystyle =[{\vec {L}}\cdot ({\vec {E}}-{\vec {N}})]^{3}=[{\vec {L}}\cdot (\{{\frac {\sqrt {3}}{2}}-0;\;{\frac {1}{2}}-1;\;0-0\})]^{3}=[-0.6\cdot {\frac {\sqrt {3}}{2}}+0.8\cdot (-0.5)+0\cdot 0]^{3}=(-0.5196-0.4)^{3}=0.9196^{3}=0.7777.}
Approximate formula is this:
k=(NH)n=(N((L+E)/2))n=(N(({0.6+32;0.8+0.5;0+0})/2))3=(N(({0.266;1.3;0})/2))3={\displaystyle k=({\vec {N}}\cdot {\vec {H}})^{n}=({\vec {N}}\cdot (({\vec {L}}+{\vec {E}})/2))^{n}=({\vec {N}}\cdot ((\{-0.6+{\frac {\sqrt {3}}{2}};\;0.8+0.5;\;0+0\})/2))^{3}=({\vec {N}}\cdot ((\{0.266;\;1.3;\;0\})/2))^{3}=}
=(N({0.133;0.65;0}))3=(00.133+10.65+0)3=0.653=0.274625.{\displaystyle =({\vec {N}}\cdot (\{0.133;\;0.65;\;0\}))^{3}=(0\cdot 0.133+1\cdot 0.65+0)^{3}=0.65^{3}=0.274625.}
If vectorH is normalizedH{0.133;0.65;0}H=H{0.133;0.65;0}0.1332+0.652=H{0.133;0.65;0}0.668={0.20048;0.979701;0},{\displaystyle {\frac {{\vec {H}}\{0.133;\;0.65;\;0\}}{\|{\vec {H}}\|}}={\frac {{\vec {H}}\{0.133;\;0.65;\;0\}}{\sqrt {0.133^{2}+0.65^{2}}}}={\frac {{\vec {H}}\{0.133;\;0.65;\;0\}}{0.668}}=\{0.20048;0.979701;0\},} then
k=(NH)n=(00.2+10.9797+00)3=0.9797013=0.940332.{\displaystyle k=({\vec {N}}\cdot {\vec {H}})^{n}=(0\cdot 0.2+1\cdot 0.9797+0\cdot 0)^{3}=0.979701^{3}=0.940332.}

Gaussian distribution

[edit]

A slightly better model of microfacet distribution can be created using aGaussian distribution.[citation needed] The usual function calculates specular highlight intensity as:

kspec=e((N,H)m)2{\displaystyle k_{\mathrm {spec} }=e^{-\left({\frac {\angle (N,H)}{m}}\right)^{2}}}

wherem is a constant between 0 and 1 that controls the apparent smoothness of the surface.[2]

Beckmann distribution

[edit]

A physically based model of microfacet distribution is the Beckmann distribution:[3]

kspec=exp(tan2(α)/m2)πm2cos4(α), α=arccos(NH){\displaystyle k_{\mathrm {spec} }={\frac {\exp {\left(-\tan ^{2}(\alpha )/m^{2}\right)}}{\pi m^{2}\cos ^{4}(\alpha )}},~\alpha =\arccos(N\cdot H)}

wherem is therms slope of the surface microfacets (the roughness of the material).[4] Compared to the empirical models above, this function "gives the absolute magnitude of the reflectance without introducing arbitrary constants; the disadvantage is that it requires more computation".[5]However, this model can be simplified sincetan2(α)/m2=1cos2(α)cos2(α)m2{\displaystyle \tan ^{2}(\alpha )/m^{2}={\frac {1-\cos ^{2}(\alpha )}{\cos ^{2}(\alpha )m^{2}}}}.Also note that the product ofcos(α){\displaystyle \cos(\alpha )} and a surface distribution function is normalized over the half-sphere whichis obeyed by this function.

Heidrich–Seidel anisotropic distribution

[edit]

The Heidrich–Seidel.[6] distribution is a simple anisotropic distribution, based on the Phong model. It can be used to model surfaces that have small parallel grooves or fibers, such asbrushed metal, satin, and hair.

Parameters

[edit]

Input parameters:

  • D = Thread direction ( In original papers this appears asT )
  • s = Shininess exponent. Values are between 0 and infinity
  • N = Real surface normal
  • L = Vector from point to light
  • V = Vector from point to viewer
  • T = Thread direction based on real surface normal.
  • P = Projection of vector L onto plane with normal T ( in original paper this appears asN' ).
  • R = Reflected incoming light ray againstT. Incoming light ray is equal to negativeL.

All vectors are unit.

Conditions

[edit]

If some of the conditions are not satisfied from the list then the color is zero

Note: This list is not optimized.

Formula

[edit]

First we need to correct original direction of fiberD to be perpendicular to real surface normalN.This can be done by projection fiber direction on to plane with normalN:

T=D+(DN)ND+(DN)N{\displaystyle T={\frac {D+(-D\cdot N)*N}{\|D+(-D\cdot N)*N\|}}}

It is expected that fiber is cylindrical. Note the fact that normal of fiber depends on light position. Normal of fiber at given point is:

P=L+(LT)TL+(LT)T{\displaystyle P={\frac {L+(-L\cdot T)*T}{\|L+(-L\cdot T)*T\|}}}

Reflected ray needed for specular calculation:

R=L+2(LP)PL+2(LP)P{\displaystyle R={\frac {-L+2*(L\cdot P)*P}{\|-L+2*(L\cdot P)*P\|}}}
Final calculation
[edit]
kdiff=LP{\displaystyle k_{\mathrm {diff} }=L\cdot P}
kspec=(VR)s{\displaystyle k_{\mathrm {spec} }=(V\cdot R)^{s}}

Optimization

[edit]

Calculation ofR andP are expensive operation. To avoid their calculation original formula can be rewritten in next form:

Diffuse
[edit]
kdiff=LP=LL+(LT)TL+(LT)T=...=1(LT)2{\displaystyle k_{\mathrm {diff} }=L\cdot P=L\cdot {\frac {L+(-L\cdot T)*T}{\|L+(-L\cdot T)*T\|}}=...={\sqrt {1-(L\cdot T)^{2}}}}
Specular
[edit]
kspec=(VR)s=(1(LT)21(VT)2(LT)(VT))s=[sin((L,T))sin((V,T))cos((L,T))cos((V,T))]s=(cos((L,T)+(V,T)))s{\displaystyle {\begin{aligned}k_{\mathrm {spec} }&{}=(V\cdot R)^{s}\\&{}=({\sqrt {1-(L\cdot T)^{2}}}*{\sqrt {1-(V\cdot T)^{2}}}-(L\cdot T)*(V\cdot T))^{s}\\&{}=\left[\sin(\angle (L,T))\sin(\angle (V,T))-\cos(\angle (L,T))\cos(\angle (V,T))\right]^{s}\\&{}=(-\cos(\angle (L,T)+\angle (V,T)))^{s}\end{aligned}}}

Comments

[edit]

T can be observed as bump normal and after that it is possible to apply other BRDF than Phong. The anisotropickspec{\displaystyle k_{\mathrm {spec} }} should be used in conjunction with an isotropic distribution like a Phong distribution to produce the correct specular highlight

Ward anisotropic distribution

[edit]

The Ward anisotropic distribution[1] uses two user-controllable parametersαx andαy to control the anisotropy. If the two parameters are equal, then an isotropic highlight results. The specular term in the distribution is:

kspec=ρs(NL)(NV)NL4παxαyexp[2(HXαx)2+(HYαy)21+(HN)]{\displaystyle k_{\mathrm {spec} }={\frac {\rho _{s}}{\sqrt {(N\cdot L)(N\cdot V)}}}{\frac {N\cdot L}{4\pi \alpha _{x}\alpha _{y}}}\exp \left[-2{\frac {\left({\frac {H\cdot X}{\alpha _{x}}}\right)^{2}+\left({\frac {H\cdot Y}{\alpha _{y}}}\right)^{2}}{1+(H\cdot N)}}\right]}

The specular term is zero ifN·L < 0 orN·V < 0. All vectors are unit vectors. The vectorV is the viewing direction,L is the direction from the surface point to the light,H is the half-angle direction betweenV andL,N is the surface normal, andX andY are two orthogonal vectors in the normal plane which specify the anisotropic directions.

Cook–Torrance model

[edit]

The Cook–Torrance model[5] uses a specular term of the form

kspec=FπDG(VN)(NL){\displaystyle k_{\mathrm {spec} }={\frac {F}{\pi }}{\frac {DG}{(V\cdot N)(N\cdot L)}}}.

Here D is theBeckmann distribution factor as above and F is theFresnel term. For performance reasons, in real-time 3D graphicsSchlick's approximation is often used to approximate the Fresnel term.

G is the geometric attenuation term, describing selfshadowing due to the microfacets, and is of the form

G=min(1,2(HN)(VN)VH,2(HN)(LN)VH){\displaystyle G=\min {\left(1,{\frac {2(H\cdot N)(V\cdot N)}{V\cdot H}},{\frac {2(H\cdot N)(L\cdot N)}{V\cdot H}}\right)}}.

In these formulas V is the vector to the camera or eye, H is the half-angle vector, L is the vector to the light source and N is the normal vector, and α is the angle between H and N.

Using multiple distributions

[edit]

If desired, different distributions (usually, using the same distribution function with different values ofm orn) can be combined using a weighted average. This is useful for modelling, for example, surfaces that have small smooth and rough patches rather than uniform roughness.

See also

[edit]

References

[edit]
  1. ^Richard Lyon, "Phong Shading Reformulation for Hardware Renderer Simplification", Apple Technical Report #43, Apple Computer, Inc. 1993PDF
  2. ^Glassner, Andrew S. (ed). An Introduction to Ray Tracing. San Diego: Academic Press Ltd, 1989. p. 148.
  3. ^Petr Beckmann, André Spizzichino, The scattering of electromagnetic waves from rough surfaces, Pergamon Press, 1963, 503 pp (Republished by Artech House, 1987,ISBN 978-0-89006-238-8).
  4. ^Foley et al.Computer Graphics: Principles and Practice. Menlo Park: Addison-Wesley, 1997. p. 764.
  5. ^abR. Cook and K. Torrance. "A reflectance model for computer graphics". Computer Graphics (SIGGRAPH '81 Proceedings), Vol. 15, No. 3, July 1981, pp. 301–316.
  6. ^Heidrich, Wolfgang; Seidel, Hans-Peter."Efficient rendering of anisotropic surfaces using computer graphics hardware"(PDF). Computer Graphics Group,University of Erlangen. Archived fromthe original(PDF) on 1 November 2011.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Specular_highlight&oldid=1248112617"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp