First steps

Getting started with light simulation in GroIMP. Some of this content should be moved to the wiki part and linked here.

–> This content should be moved to “FSP Modelling” as modelling of light is a prerequisite for modelling of photosynthesis.

General Introduction

First steps on light modelling

This tutorial we show you the basics on how to do light modelling in GroIMP.

→ Read more...

Light Sources

Regarding light sources, GroIMP provides a complete set of possible implementations. They all implement the Light and LightBase interfaces, which makes them easy to handle and exchange. The standard light sources are: PointLight, SpotLight, and DirectionalLight.

→ Read more...

Local illumination - Shader

To set the optical properties of an object, in computer graphics the so-called local illumination model is used. It defines so-called shaders, that are define the amount of absorption, reflection and transmission and how the light rays are scattered. The values for absorption are obtained as the 'remaining radiation', i.e., the difference between reflectance and transmission, when we subtract the reflectance and transmission from the total of incoming radiation: Absorption = Total - Reflectance - Transmission.

→ Read more...

Sensors

Sensors or sensor nodes are invisible objects that can be used to monitor light distributions with a scene without interfering with the rest of the scene or the light modelling. For this, GroIMP provides the SensorNode class, a spherical object that can be placed arbitrarily within the scene. To obtain the sensed spectrum, the function getSensedIrradiance() for the Twilight and the getSensedIrradianceMeasurement() function for the GPUFlux light model needs to be called.

→ Read more...

Visualizing light rays

Sometimes it is interesting to see the traces of light rays emitted by a light source when they travel through a scene. In GroIMP, this can be done using the integrated LightModelVisualizer.

→ Read more...

More light model functions... beyond getAbsorbedPower

So far, we only used the light model to obtain the amount of absorbed power for the objects within our scene, but there is more :)

Note: The following is only implemented for the CPU-based twilight light model of GroIMP and NOT implemented for the GPU-based Flux light model.

The twilight light model offers further functions, e.g., to obtain the received and transmitted power.

→ Read more...

Sensor Grids and Areal Sensors

Light distributions, micro-light climate, light above canopy, light extinction coefficients, etc. are key parameters for any canopy simulations. To obtain these, areal or gird like sensor arrangements are required. Both can be generated within GroIMP by only a few lines of code.

For an introduction to SensorNnodes have a look at the Sensors tutorial.

→ Read more...

Spectral Light Modelling

These three core aspects of light simulation—global and local illumination models, and light sources—are the base for any light simulation. When it comes to spectral light simulations, specialized implementations of the aforementioned aspects are required, capable of simulating not only one or three light channels, as is typical for common light models, but also the entire light spectrum for different wavelengths.

→ Read more...

Effect of spectral light on morphogenesis

Open SpectralLight.gsz and explore the four files it consists of: Main.rgg, Modules.rgg, Parameters.rgg, and KL.java. The names already suggest that in Main.rgg you will find the main parts of the model, notably the methods init() and grow(), but also methods to create and update the graphical output on charts (initChart() and updateChart()); in Modules.rgg the definition of all modules used in the model; in Parameters.rgg all parameters; and finally we have again the photosynthesis model KL.java.

→ Read more...

Differences between the CPU and GPU light model

1. Interpretation of specular and shininess reflection

→ Read more...

Flux Light Model

In this tutorial we will see how to get started with a FluxModel in GroIMP.

→ Read more...