Package org.jmol.util
Class Shader
java.lang.Object
org.jmol.util.Shader
All functions. Implements the shading of RGB values to support shadow and lighting highlights.
Each RGB value has 64 shades. shade[0] represents ambient lighting. shade[63] is white ... a full specular highlight.
- Author:
- Miguel, miguel@jmol.org, Bob Hanson, hansonr@stolaf.edu, N David Brown -- cel shading
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) float(package private) intprivate int[][]private int[][](package private) boolean(package private) intprivate intprivate float(package private) float(package private) intbyte[][][](package private) float(package private) javajs.util.V3static final intintint(package private) intprivate static final intprivate intstatic final intprivate static final intstatic final bytestatic final byteprivate static final int(package private) int(package private) float(package private) boolean(package private) int(package private) intbyte[]int[][]private boolean(package private) booleanprivate floatprivate floatprivate float -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidprivate voidcheckShades(int n) void(package private) voidintgetEllipsoidShade(float x, float y, float z, int radius, javajs.util.M4 mDeriv) bytegetShadeB(float x, float y, float z) private floatgetShadeF(float x, float y, float z) intgetShadeFp8(float x, float y, float z) intgetShadeIndex(float x, float y, float z) bytegetShadeN(float x, float y, float z, float r) (package private) int[]getShades(short colix) private int[]getShades2(int rgb, boolean greyScale) (package private) int[]getShadesG(short colix) intImplements RANDU algorithm for random noise in lighting/shading.(package private) voidsetCel(boolean celShading, int celShadingPower, int argb) voidsetLastColix(int argb, boolean asGrey) private voidsetLightSource(float x, float y, float z)
-
Field Details
-
SHADE_INDEX_MAX
private static final int SHADE_INDEX_MAX- See Also:
-
SHADE_INDEX_LAST
public static final int SHADE_INDEX_LAST- See Also:
-
SHADE_INDEX_NORMAL
public static final byte SHADE_INDEX_NORMAL- See Also:
-
SHADE_INDEX_NOISY_LIMIT
public static final byte SHADE_INDEX_NOISY_LIMIT- See Also:
-
xLight
private float xLight -
yLight
private float yLight -
zLight
private float zLight -
lightSource
javajs.util.V3 lightSource -
specularOn
boolean specularOn -
usePhongExponent
boolean usePhongExponent -
ambientPercent
int ambientPercent -
diffusePercent
int diffusePercent -
specularExponent
int specularExponent -
specularPercent
int specularPercent -
specularPower
int specularPower -
phongExponent
int phongExponent -
ambientFraction
float ambientFraction -
diffuseFactor
float diffuseFactor -
intenseFraction
float intenseFraction -
specularFactor
float specularFactor -
ashades
private int[][] ashades -
ashadesGreyscale
private int[][] ashadesGreyscale -
celOn
boolean celOn -
celPower
int celPower -
celRGB
private int celRGB -
celZ
private float celZ -
useLight
private boolean useLight -
sphereShadeIndexes
public byte[] sphereShadeIndexes -
seed
private int seed -
SLIM
private static final int SLIM- See Also:
-
SDIM
private static final int SDIM- See Also:
-
maxSphereCache
public static final int maxSphereCache- See Also:
-
sphereShapeCache
public int[][] sphereShapeCache -
ellipsoidShades
public byte[][][] ellipsoidShades -
nOut
public int nOut -
nIn
public int nIn
-
-
Constructor Details
-
Shader
public Shader()
-
-
Method Details
-
setLightSource
private void setLightSource(float x, float y, float z) -
setCel
void setCel(boolean celShading, int celShadingPower, int argb) -
flushCaches
void flushCaches() -
setLastColix
public void setLastColix(int argb, boolean asGrey) -
getShades
int[] getShades(short colix) -
getShadesG
int[] getShadesG(short colix) -
checkShades
private void checkShades(int n) -
getShades2
private int[] getShades2(int rgb, boolean greyScale) -
getShadeIndex
public int getShadeIndex(float x, float y, float z) -
getShadeB
public byte getShadeB(float x, float y, float z) -
getShadeFp8
public int getShadeFp8(float x, float y, float z) -
getShadeF
private float getShadeF(float x, float y, float z) -
getShadeN
public byte getShadeN(float x, float y, float z, float r) -
calcSphereShading
private void calcSphereShading() -
nextRandom8Bit
public int nextRandom8Bit()Implements RANDU algorithm for random noise in lighting/shading.
RANDU is the classic example of a poor random number generator. But it is very cheap to calculate and is good enough for our purposes.
- Returns:
- Next random
-
getEllipsoidShade
public int getEllipsoidShade(float x, float y, float z, int radius, javajs.util.M4 mDeriv) -
createEllipsoidShades
public void createEllipsoidShades()
-