Package ca.eandb.jmist.framework

Examples of ca.eandb.jmist.framework.Material


        generateImportanceSampledSurfacePoint(primitive, x, context, rng.next(), rng.next(), rng.next());
        context.getModifier().modify(context);

        Point3 p = context.getPosition();
        Material mat = context.getMaterial();
        Vector3 v = x.getPosition().unitVectorFrom(p);
        Vector3 n = context.getShadingNormal();
        double d2 = x.getPosition().squaredDistanceTo(p);
        double atten = Math.max(n.dot(v), 0.0) * totalWeight
            / (4.0 * Math.PI * d2);
        Color ri = mat.emission(context, v, lambda).times(atten);
        LightSample sample = new PointLightSample(x, p, ri);

        target.addLightSample(sample);
      }

View Full Code Here


  /**
   * @param context
   */
  private void applyMaterial(ShadingContext context) {
    int primIndex = context.getPrimitiveIndex();
    Material mat = lookup(primIndex);
    if (mat != null) {
      context.setMaterial(mat);
    }
  }
View Full Code Here

  /* (non-Javadoc)
   * @see ca.eandb.jmist.framework.Shader#shade(ca.eandb.jmist.framework.ShadingContext)
   */
  public Color shade(ShadingContext sc) {
    WavelengthPacket lambda = sc.getWavelengthPacket();
    Material mat = sc.getMaterial();
    if (mat.isEmissive()) {
      return mat.emission(sc, sc.getIncident().opposite(), lambda);
    } else {
      return sc.getColorModel().getBlack(lambda);
    }
  }
View Full Code Here

  public Color shade(ShadingContext sc) {

    WavelengthPacket lambda = sc.getWavelengthPacket();

    if (sc.getPathDepth() == sc.getPathDepthByType(ScatteredRay.Type.SPECULAR)) {
      Material mat = sc.getMaterial();
      if (mat.isEmissive()) {
        return mat.emission(sc, sc.getIncident().opposite(), lambda);
      }
    }

    return sc.getColorModel().getBlack(lambda);
View Full Code Here

  /* (non-Javadoc)
   * @see ca.eandb.jmist.framework.Shader#shade(ca.eandb.jmist.framework.ShadingContext)
   */
  public Color shade(ShadingContext sc) {
    Material mat = sc.getMaterial();
    WavelengthPacket lambda = sc.getWavelengthPacket();
    Vector3 normal = sc.getShadingNormal();
    Color sum = sc.getColorModel().getBlack(lambda);
    for (LightSample sample : sc.getLightSamples()) {
      if (!sample.castShadowRay(sc)) {
        Vector3 in = sample.getDirToLight().opposite();
        Vector3 out = sc.getIncident().opposite();
        Color bsdf = mat.bsdf(sc, in, out, lambda);
        double dot = Math.abs(in.dot(normal));
        sum = sum.plus(sample.getRadiantIntensity().times(bsdf.times(dot)));
      }
    }
    return sum;
View Full Code Here

      }
    }

    private void visitMaterial() throws IOException {
      if (currentMaterialName != null) {
        Material material = Material.BLACK; // FIXME
        Shader shader = null;
        Painter ka, kd, ks, tf;

        switch (illum) {
        case 0:
View Full Code Here

  /**
   * Creates a new <code>CornellBoxModel</code>.
   */
  public CornellBoxScene(ColorModel colorModel) {
    Material matteWhite = new LambertianMaterial(colorModel.getContinuous(white));
    Material matteGreen = new LambertianMaterial(colorModel.getContinuous(green));
    Material matteRed = new LambertianMaterial(colorModel.getContinuous(red));
    Material matteEmissive = new LambertianMaterial(colorModel.getGray(0.78), colorModel.getContinuous(emission));

    SceneElement materialMap = new MaterialMapSceneElement(geometry)
        .addMaterial("white", matteWhite)
        .addMaterial("red", matteRed)
        .addMaterial("green", matteGreen)
View Full Code Here

  /**
   * Creates a new <code>CornellBoxModel</code>.
   */
  public CornellBoxScene(ColorModel colorModel, ScatteringStrategy strategy, double weight) {
    Material matteWhite = new LambertianMaterial(colorModel.getContinuous(white));
    Material matteGreen = new LambertianMaterial(colorModel.getContinuous(green));
    Material matteRed = new LambertianMaterial(colorModel.getContinuous(red));
    Material matteEmissive = new LambertianMaterial(colorModel.getGray(0.78), colorModel.getContinuous(emission));

    matteWhite = new ScatteringAdapterMaterial(matteWhite, strategy, weight);
    matteGreen = new ScatteringAdapterMaterial(matteGreen, strategy, weight);
    matteRed = new ScatteringAdapterMaterial(matteRed, strategy, weight);
    matteEmissive = new ScatteringAdapterMaterial(matteEmissive, strategy, weight);
View Full Code Here

    ScatteredRay sr;
    Color col = lambda.getColorModel().getWhite(lambda);

    do  {

      Material layer = layers.get(depth);
      sr = layer.scatter(x, v, adjoint, lambda, rnd.next(), rnd.next(), rnd.next());

      if (sr == null) return null;
      v = sr.getRay().direction();

      dir = (v.dot(N) > 0.0) ? -1 : 1;
View Full Code Here

        ShadingContext context = new MinimalShadingContext(rng);
        generateImportanceSampledSurfacePoint(x, context, rng.next(), rng.next(), rng.next());
        context.getModifier().modify(context);

        Point3 p = context.getPosition();
        Material mat = material;//context.getMaterial();
        Vector3 v = x.getPosition().unitVectorFrom(p);
        Vector3 n = context.getShadingNormal();
        double d2 = x.getPosition().squaredDistanceTo(p);
        double atten = Math.max(n.dot(v), 0.0) * surfaceArea / (4.0 * Math.PI * d2);
        Color ri = mat.emission(context, v, lambda).times(atten);

        LightSample sample = new PointLightSample(x, p, ri);

        target.addLightSample(sample);

View Full Code Here

TOP

Related Classes of ca.eandb.jmist.framework.Material

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.