documentation updates for the height field class

metadata
Wenzel Jakob 2013-11-04 23:22:30 +01:00
parent 60ee5ad6cf
commit 55c8726dbd
4 changed files with 78 additions and 13 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

View File

@ -63,7 +63,7 @@
pages = {171--178},
publisher = {ACM},
address = {New York, NY, USA}
}
}
@article{Phong1975Illumination,
number = {6},
@ -122,7 +122,7 @@
year = {2005},
organization = {Eurographics Association}
}
@phdthesis{IrawanThesis,
author = {Irawan, Piti},
title = {Appearance of woven cloth},
@ -141,7 +141,7 @@
pages = {286--292},
publisher = {ACM},
address = {New York, NY, USA},
}
}
@inproceedings{Hanrahan1993Reflection,
author = {Hanrahan, Pat and Krueger, Wolfgang},
@ -152,7 +152,7 @@
pages = {165--174},
publisher = {ACM},
address = {New York, NY, USA},
}
}
@article{Jakob2010Radiative,
title={A radiative transfer framework for rendering materials with anisotropic structure},
@ -213,6 +213,7 @@
pages = {54--59},
publisher = {}
}
@article{Reinhard2002Photographic,
title={Photographic tone reproduction for digital images},
author={Reinhard, E. and Stark, M. and Shirley, P. and Ferwerda, J.},
@ -222,6 +223,7 @@
pages={267--276},
year={2002}
}
@inproceedings{Cook2007Stochastic,
author = {Cook, Robert L. and Halstead, John and Planck, Maxwell and Ryu, David},
title = {Stochastic simplification of aggregate detail},
@ -294,7 +296,7 @@
pages = {221--228},
publisher = {ACM},
address = {New York, NY, USA},
}
}
@article{Saito2008SIMD,
title={SIMD-oriented fast Mersenne Twister: a 128-bit pseudorandom number generator},
@ -395,7 +397,7 @@
pages = {85--92},
publisher = {ACM},
address = {New York, NY, USA}
}
}
@inproceedings{Jensen1996Global,
author = {Jensen, Henrik Wann},
@ -445,7 +447,7 @@
year = {2005},
publisher = {ACM},
address = {New York, NY, USA}
}
}
@inproceedings{Jensen2001Practical,
author = {Jensen, Henrik Wann and Marschner, Stephen R. and Levoy, Marc and Hanrahan, Pat},
@ -469,7 +471,7 @@
pages = {166:1--166:10},
publisher = {ACM},
address = {New York, NY, USA}
}
}
@article{Yuksel2012Stitch,
author = {Yuksel, Cem and Kaldor, Jonathan M. and James, Doug L. and Marschner, Steve},
@ -504,7 +506,7 @@
pages = {49--56},
publisher = {ACM Press/Addison-Wesley Publishing Co.},
address = {New York, NY, USA}
}
}
@inproceedings{Kelemen2002Simple,
title={A simple and robust mutation strategy for the metropolis light transport algorithm},
@ -527,7 +529,7 @@
pages = {58:1--58:13},
publisher = {ACM},
address = {New York, NY, USA}
}
}
@article{Cline2005Energy,
author = {Cline, David and Talbot, Justin and Egbert, Parris},
@ -540,7 +542,7 @@
pages = {1186--1195},
publisher = {ACM},
address = {New York, NY, USA},
}
}
@article{Narasimhan2006Acquiring,
author = {Narasimhan, Srinivasa G. and Gupta, Mohit and Donner, Craig and Ramamoorthi, Ravi and Nayar, Shree K. and Jensen, Henrik Wann},
@ -554,3 +556,11 @@
publisher = {ACM},
address = {New York, NY, USA}
}
@inproceedings{Tevs2008Maximum,
author = {Art Tevs and Ivo Ihrke and Hans-Peter Seidel},
title = {Maximum Mipmaps for Fast, Accurate, and Scalable Dynamic Height Field Rendering},
booktitle = {Symposium on Interactive 3D Graphics and Games (i3D'08)},
year = 2008,
pages = {183--190}
}

View File

@ -87,7 +87,7 @@ MTS_NAMESPACE_BEGIN
* camera whose distortion is known. When \code{kc=0, 0}, the model
* turns into a standard pinhole camera. The reason for creating a separate
* plugin for this feature is that distortion involves extra overheads per ray that
* users may not be willing to pay for if their scene doesn't use distortion.
* users may not be willing to pay for if their scene doesn't use it.
* The MATLAB Camera Calibration Toolbox by Jean-Yves Bouguet
* (\url{http://www.vision.caltech.edu/bouguetj/calib_doc/}) can be used to
* obtain a distortion model, and the first entries of the \code{kc} variable

View File

@ -60,6 +60,61 @@ namespace {
};
};
/*!\plugin{heightfield}{Height field intersection shape}
* \order{11}
* \parameters{
* \parameter{shadingNormals}{\Boolean}{
* Use linearly interpolated shading normals over the height
* field as opposed to discontinuous normals from the underlying
* bilinear patches? \default{\code{true}, i.e. interpolate smoothly varying normals}
* }
* \parameter{flipNormals}{\Boolean}{
* Optional flag to flip all normals. \default{\code{false}, i.e.
* the normals are left unchanged}.
* }
* \parameter{toWorld}{\Transform}{
* Specifies an optional linear object-to-world transformation.
* \default{none, i.e. object space $=$ world space}
* }
* \parameter{width, height}{\Integer}{
* When the nexted texture is procedural (see below),
* this parameter specifies the resolution at which it should
* be rasterized to create a height field made of bilinear patches.
* }
* \parameter{\Unnamed}{\Texture}{
* A nested texture that specifies the height field values. This
* could be a bitmap-backed texture or one that is procedurally defined.
* In the latter case, it will be rasterized using the resolution specified
* by the \code{width} and \code{height} arguments.
* }
* }
*\vspace{-2mm}
* \renderings{
* \rendering{Heigh field rendering of a mountain, see \lstref{heightfield-bitmap}}
* {shape_heightfield}
* }
* This plugin implements an efficient height field intersection shape, i.e.
* a two-dimensional plane that is vertically displaced using height values
* loaded from a texture.
* Internally, the height field is represented as a min-max mipmap
* \cite{Tevs2008Maximum}, allowing cheap storage and efficient ray
* intersection queries. It is generally preferable to represent
* height fields using this specialized plugin rather than converting
* them into triangle meshes.
*
* \begin{xml}[caption={Declaring a height field from a monochromatic scaled bitmap texture}, label=lst:heightfield-bitmap]
* <shape type="heightfield">
* <texture type="scale">
* <float name="scale" value="0.5"/>
* <texture type="bitmap">
* <float name="gamma" value="1"/>
* <string name="filename" value="mountain_profile.png"/>
* </texture>
* </texture>
* </shape>
* \end{xml}
*/
class Heightfield : public Shape {
public:
Heightfield(const Properties &props) : Shape(props), m_data(NULL), m_normals(NULL), m_minmax(NULL) {
@ -674,6 +729,6 @@ private:
};
MTS_IMPLEMENT_CLASS_S(Heightfield, false, Shape)
MTS_EXPORT_PLUGIN(Heightfield, "Height field intersection primitive");
MTS_EXPORT_PLUGIN(Heightfield, "Height field intersection shape");
MTS_NAMESPACE_END