Class Shader

java.lang.Object
org.jmol.util.Shader

public class Shader extends Object

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 Details

    • 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:
    • sphereShadeIndexes

      public byte[] sphereShadeIndexes
      /////////////////////////////////////////////////////////////
    • 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

    • setLastColix

      public void setLastColix(int argb, boolean asGrey)
    • 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)
    • getShadeN

      public byte getShadeN(float x, float y, float z, float r)
    • 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, M4 mDeriv)
    • createEllipsoidShades

      public void createEllipsoidShades()