Skip to content
Andrea Pizzetti edited this page Dec 10, 2025 · 7 revisions

Installation

Unknown operating system

Your system is not supported (yet). Please write to me at andrea.pizzetti@polimi.it

Missing files or function

Make sure to have cloned and updated all the submodules. Go to the ABRAM repository folder and run abram_install(). These two steps must be repeated also when you update ABRAM to a new version.

User Interface

Failed to load maps

Check the paths to the texture map provided. Maps must be stored in the inputs/maps folder, under the corresponding type folder (albedo, displacement, normal, horizon, etc...). In the YML file the user shall input only the relative filepath location. For example, if the map "albedo.tif" is located in the albedo folder, the user shall only write albedo.tif in the filename entry.

Runtime

Out of memory

Out of memory error is raised because the RAM gets saturated during the loading of the maps, a too large number of discretization points is processed or the image resolution requested is too large. Try to crop the maps to the region of interest, reduce the number of discretization points ('rend.setting.discretization.np') or the level of discretization accuracy (rend.setting.discretization.accuracy) or reduce the detector resolution ('rend.camera.res_px').

Camera is inside the body

If you used a displacement map, check that the scaling factor is correct. If it is, check that the body radius is correct and the distance of the camera is not too close by evaluating: rend.body.maps.displacement.F.max + rend.body.Rbody < rend.scene.d_body2cam


Rendering Output

The image generated is completely black

The object is not in the field of view or not enough light is detected by the camera. If a warning message appears during runtime on the command window stating "There are no illuminated points on the target. A black image will be rendered." the cause is the first one. Set the camera offpointing angles to zero with rend.scene.rpy_CAMI2CAM = zeros(3,1);. If the problem is the second one, first check if the object emits a signal by visualizing its electron count rate matrix with figure(), imagesc(rend.ecr). If something is visible, it means the camera parameters must be corrected. Either increase the exposure time or the analog-to-digital gain.

The image generated is completely saturated

This is likely a problem of inconsistency between the full well capacity of the detector, the analog-to-digital gain of the camera and the saving depth of the image. For a full well capacity of X electrons, if the saving depth is of N bits, the ideal analog-to-digital gain is (2^N - 1)/X.

The image is pixelated or defocused

There may be a problem with the low resolution of the texture map(s) you are providing, especially if you are pointing nadir. Check that the texture maps have the same resolution. Check that the ground sampling distance of the camera is at least the double of the map resolution in meters per pixel. For example, to check the displacement map resolution: rend.gsd > 2 * rend.body.maps.displacement.res_lonlat * rend.body.Rbody.

The image is filled with lined artifacts

Likely there is an inconsistency in unit of measures used for the inputs or on the scaling factor of the displacement map.

The shadows are discontinued on the surface

Increase the occlusion rays number in rend.setting.sampling.occlusion_rays.

The shadows are too crisp

Consider using soft shadows by setting a number between 0 (no diffuse reflection) and 1 (complete diffuse reflection) in rend.setting.integration.soft_shadows. Consider switching off shadows caused by occlusions by setting rend.setting.sampling.ignore_occluded to false (note that shadows due to normals will still be preserved).

Clone this wiki locally