Package org.jmol.util

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()