1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
\name{rgl.material}
\alias{rgl.material}
\alias{material3d}
\title{Generic Appearance setup}
\description{
Set material properties for geometry appearance.
}
\usage{
rgl.material(
color = c("white"),
alpha = c(1.0),
lit = TRUE,
ambient = "black",
specular = "white",
emission = "black",
shininess = 50.0,
smooth = TRUE,
texture = NULL,
textype = "rgb",
texmipmap = FALSE,
texminfilter = "linear",
texmagfilter = "linear",
texenvmap = FALSE,
front = "fill",
back = "fill",
size = 1.0,
fog = TRUE,
...
)
material3d(...)
}
\arguments{
\item{color}{
vector of R color characters. Represents the diffuse component in case of lighting calculation (lit = TRUE),
otherwise it describes the solid color characteristics.
}
\item{lit}{
logical, specifying if lighting calculation should take place on geometry
}
\item{ambient, specular, emission, shininess}{
properties for lighting calculation. ambient, specular, emission are R color character string values; shininess represents a
numerical.
}
\item{alpha}{
vector of alpha values between 0.0 (fully transparent) .. 1.0 (opaque).
}
\item{smooth}{
logical, specifying whether gourad shading (smooth) or flat shading should be used.
}
\item{texture}{
path to a texture image file. Supported formats: png.
}
\item{textype}{
specifies what is defined with the pixmap
\describe{
\item{"alpha"}{alpha values}
\item{"luminance"}{luminance}
\item{"luminance.alpha"}{luminance and alpha}
\item{"rgb"}{color}
\item{"rgba"}{color and alpha texture}
}
}
\item{texmipmap}{
Logical, specifies if the texture should be mipmapped.
}
\item{texmagfilter}{
specifies the magnification filtering type (sorted by ascending quality):
\describe{
\item{"nearest"}{texel nearest to the center of the pixel}
\item{"linear"}{weighted linear average of a 2x2 array of texels}
}
}
\item{texminfilter}{
specifies the minification filtering type (sorted by ascending quality):
\describe{
\item{"nearest"}{texel nearest to the center of the pixel}
\item{"linear"}{weighted linear average of a 2x2 array of texels}
\item{"nearest.mipmap.nearest"}{low quality mipmapping}
\item{"nearest.mipmap.linear"}{medium quality mipmapping}
\item{"linear.mipmap.nearest"}{medium quality mipmapping}
\item{"linear.mipmap.linear"}{high quality mipmapping}
}
}
\item{texenvmap}{
logical, specifies if auto-generated texture coordinates for environment-mapping
should be performed on geometry.
}
\item{front, back}{
Determines the polygon mode for the specified side:
\describe{
\item{"fill"}{filled polygon}
\item{"line"}{wireframed polygon}
\item{"points"}{point polygon}
\item{"cull"}{culled (hidden) polygon}
}
}
\item{size}{
numeric, specifying the line and point size.
}
\item{fog}{logical, specifying if fog effect should be applied on the corresponding shape}
\item{...}{Any of the arguments above; see Details below.}
}
\details{
Only one side at a time can be culled.
\code{material3d} is an alternate interface to the material properties, modelled after
\code{\link{par3d}}: rather than setting defaults for parameters that are not specified,
they will be left unchanged. \code{material3d} may also be used to query the material
properties; see the examples below.
The current implementation does not return parameters for textures.
The \code{...} parameter to \code{rgl.material} is ignored.
}
\value{
\code{rgl.material()} is called for the side effect of setting the material properties.
It returns a value invisibly which is not intended for use by the user.
Users should use \code{material3d()} to query material properties. It returns values similarly
to \code{\link{par3d}} as follows:
When setting properties, it returns the previous values in a named list. A named list is also
returned when more than one value is queried. When a single value is queried it is returned
directly.
}
\seealso{
\code{\link{rgl.primitive}},
\code{\link{rgl.bbox}},
\code{\link{rgl.bg}},
\code{\link{rgl.light}}
}
\examples{
save <- material3d("color")
material3d(color="red")
material3d("color")
material3d(color=save)
}
\keyword{dynamic}
|