Package org.sunflow.core
Class Scene
java.lang.Object
org.sunflow.core.Scene
Represents a entire scene, defined as a collection of instances viewed by a
camera.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
accumulateStats
(IntersectionState state) void
accumulateStats
(ShadingCache cache) boolean
calculatePhotons
(PhotonStore map, String type, int seed, Options options) Create a photon map as prescribed by the givenPhotonStore
.Get scene world space bounding box.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 pixelint
Get the priority level to assign to multi-threaded operations.int
Get number of allowed threads for multi-threaded operations.void
render
(Options options, ImageSampler sampler, Display display) Render the scene using the specified options, image sampler and display.void
setBakingInstance
(Instance instance) The provided instance will be considered for lightmap baking.void
Sets the current camera (no support for multiple cameras yet).void
setInstanceLists
(Instance[] instances, Instance[] infinite) Update the instance lists for this scene.void
setLightList
(LightSource[] lights) Update the light list for this scene.void
setShaderOverride
(Shader shader, boolean photonOverride) Enables shader overiding (set null to disable).
-
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
Sets the current camera (no support for multiple cameras yet).- Parameters:
camera
- camera to be used as the viewpoint for the scene
-
setInstanceLists
Update the instance lists for this scene.- Parameters:
instances
- regular instancesinfinite
- infinite instances (no bounds)
-
setLightList
Update the light list for this scene.- Parameters:
lights
- array of light source objects
-
setShaderOverride
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, ornull
to disable overridingphotonOverride
-true
to override photon scattering with this shader orfalse
to run the regular shaders
-
setBakingInstance
The provided instance will be considered for lightmap baking. If the specified instance isnull
, 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 tracingrx
- pixel x coordinatery
- pixel y coordinatelensU
- DOF sampling variablelensV
- DOF sampling variabletime
- motion blur sampling variableinstance
- QMC instance seed- Returns:
- a shading state for the intersected primitive, or
null
if nothing is seen through the specifieFd point
-
getBounds
Get scene world space bounding box.- Returns:
- scene bounding box
-
accumulateStats
-
accumulateStats
-
render
Render the scene using the specified options, image sampler and display.- Parameters:
options
- rendering options objectsampler
- image samplerdisplay
- display to send the final image to, a default display will be created ifnull
-
calculatePhotons
Create a photon map as prescribed by the givenPhotonStore
.- Parameters:
map
- object that will recieve shot photonstype
- type of photons being shotseed
- QMC seed parameter- Returns:
true
upon success
-