Package org.sunflow.core
Class Scene
- java.lang.Object
-
- org.sunflow.core.Scene
-
public class Scene extends java.lang.ObjectRepresents a entire scene, defined as a collection of instances viewed by a camera.
-
-
Constructor Summary
Constructors Constructor Description Scene()Creates an empty scene.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccumulateStats(IntersectionState state)voidaccumulateStats(ShadingCache cache)booleancalculatePhotons(PhotonStore map, java.lang.String type, int seed, Options options)Create a photon map as prescribed by the givenPhotonStore.BoundingBoxgetBounds()Get scene world space bounding box.ShadingStategetRadiance(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 pixelintgetThreadPriority()Get the priority level to assign to multi-threaded operations.intgetThreads()Get number of allowed threads for multi-threaded operations.voidrender(Options options, ImageSampler sampler, Display display)Render the scene using the specified options, image sampler and display.voidsetBakingInstance(Instance instance)The provided instance will be considered for lightmap baking.voidsetCamera(Camera camera)Sets the current camera (no support for multiple cameras yet).voidsetInstanceLists(Instance[] instances, Instance[] infinite)Update the instance lists for this scene.voidsetLightList(LightSource[] lights)Update the light list for this scene.voidsetShaderOverride(Shader shader, boolean photonOverride)Enables shader overiding (set null to disable).
-
-
-
Method Detail
-
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 instancesinfinite- 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, ornullto disable overridingphotonOverride-trueto override photon scattering with this shader orfalseto run the regular shaders
-
setBakingInstance
public void setBakingInstance(Instance instance)
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
nullif 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 objectsampler- image samplerdisplay- display to send the final image to, a default display will be created ifnull
-
calculatePhotons
public boolean calculatePhotons(PhotonStore map, java.lang.String type, int seed, Options options)
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:
trueupon success
-
-