Class Scene

java.lang.Object
org.sunflow.core.Scene

public class Scene extends Object
Represents a entire scene, defined as a collection of instances viewed by a camera.
  • Constructor Details

    • Scene

      public Scene()
      Creates an empty scene.
  • Method Details

    • getThreads

      public int getThreads()
      Get number of allowed threads for multi-threaded operations.
      Returns:
      number of threads that can be started
    • getThreadPriority

      public int getThreadPriority()
      Get the priority level to assign to multi-threaded operations.
      Returns:
      thread priority
    • setCamera

      public void setCamera(Camera camera)
      Sets the current camera (no support for multiple cameras yet).
      Parameters:
      camera - camera to be used as the viewpoint for the scene
    • setInstanceLists

      public void setInstanceLists(Instance[] instances, Instance[] infinite)
      Update the instance lists for this scene.
      Parameters:
      instances - regular instances
      infinite - infinite instances (no bounds)
    • setLightList

      public void setLightList(LightSource[] lights)
      Update the light list for this scene.
      Parameters:
      lights - array of light source objects
    • setShaderOverride

      public void setShaderOverride(Shader shader, boolean photonOverride)
      Enables shader overiding (set null to disable). The specified shader will be used to shade all surfaces
      Parameters:
      shader - shader to run over all surfaces, or null to disable overriding
      photonOverride - true to override photon scattering with this shader or false to run the regular shaders
    • setBakingInstance

      public void setBakingInstance(Instance instance)
      The provided instance will be considered for lightmap baking. If the specified instance is null, lightmap baking will be disabled and normal rendering will occur.
      Parameters:
      instance - instance to bake
    • getRadiance

      public ShadingState getRadiance(IntersectionState istate, float rx, float ry, double lensU, double lensV, double time, int instance, int dim, ShadingCache cache)
      Get the radiance seen through a particular pixel
      Parameters:
      istate - intersection state for ray tracing
      rx - pixel x coordinate
      ry - pixel y coordinate
      lensU - DOF sampling variable
      lensV - DOF sampling variable
      time - motion blur sampling variable
      instance - QMC instance seed
      Returns:
      a shading state for the intersected primitive, or null if nothing is seen through the specifieFd point
    • getBounds

      public BoundingBox getBounds()
      Get scene world space bounding box.
      Returns:
      scene bounding box
    • accumulateStats

      public void accumulateStats(IntersectionState state)
    • accumulateStats

      public void accumulateStats(ShadingCache cache)
    • render

      public void render(Options options, ImageSampler sampler, Display display)
      Render the scene using the specified options, image sampler and display.
      Parameters:
      options - rendering options object
      sampler - image sampler
      display - display to send the final image to, a default display will be created if null
    • calculatePhotons

      public boolean calculatePhotons(PhotonStore map, String type, int seed, Options options)
      Create a photon map as prescribed by the given PhotonStore.
      Parameters:
      map - object that will recieve shot photons
      type - type of photons being shot
      seed - QMC seed parameter
      Returns:
      true upon success