set_range


Description:

public void set_range (float near_val, float far_val)

Sets the range to map depth values in normalized device coordinates to before writing out to a depth buffer.

After your geometry has be transformed, clipped and had perspective division applied placing it in normalized device coordinates all depth values between the near and far z clipping planes are in the range -1 to 1. Before writing any depth value to the depth buffer though the value is mapped into the range [0, 1].

With this function you can change the range which depth values are mapped too although the range must still lye within the range [0, 1].

If your driver does not support this feature (for example you are using GLES 1 drivers) then if you don't use the default range values you will get an error reported when calling cogl_pipeline_set_depth_state (). You can check ahead of time for the cogl_feature_id_depth_range feature with has_feature to know if this function will succeed.

By default normalized device coordinate depth values are mapped to the full range of depth buffer values, [0, 1].

NB: this won't directly affect the state of the GPU. You have to then set the state on a Pipeline using set_depth_state.

Parameters:

this

A DepthState object

near_val

The near component of the desired depth range which will be clamped to the range [0, 1]

far_val

The far component of the desired depth range which will be clamped to the range [0, 1]