38 nassertv(distance > 0.0 && distance < 100000.0);
39 _pssm_distance = distance;
57 nassertv(distance > 0.0 && distance < 100000.0);
58 _sun_distance = distance;
78 nassertv(factor > 0.0);
79 _logarithmic_factor = factor;
94 _use_fixed_film_size = flag;
109 nassertv(resolution >= 0 && resolution < 65535);
110 _resolution = resolution;
123 _use_stable_csm = flag;
139 nassertv(bias >= 0.0);
157 for (
size_t i = 0; i < _max_film_sizes.size(); ++i) {
158 _max_film_sizes[i].fill(0);
179 nassertr(index >= 0 && index < _cam_nodes.size(),
NodePath());
180 return _cam_nodes[index];
196 inline float PSSMCameraRig::get_split_start(
size_t split_index) {
197 float x = (float)split_index / (
float)_cam_nodes.size();
198 return (exp(_logarithmic_factor*x)-1) / (exp(_logarithmic_factor)-1);
212 inline LPoint3 PSSMCameraRig::get_interpolated_point(CoordinateOrigin origin,
float depth) {
213 nassertr(depth >= 0.0 && depth <= 1.0, LPoint3());
214 return _curr_near_points[origin] * (1.0 - depth) + _curr_far_points[origin] * depth;
242 return _camera_nearfar;
void set_border_bias(float bias)
Sets the border bias for each split.
void set_use_fixed_film_size(bool flag)
Sets whether to use a fixed film size.
void set_pssm_distance(float distance)
RenderPipeline.
const PTA_LVecBase2 & get_nearfar_array()
Returns a handle to the near and far planes array.
NodePath get_camera(size_t index)
Returns the n-th camera.
void set_sun_distance(float distance)
Sets the suns distance.
const PTA_LMatrix4 & get_mvp_array()
Returns a handle to the MVP array.
void set_resolution(size_t resolution)
Sets the resolution of each split.
void set_logarithmic_factor(float factor)
Sets the logarithmic factor.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
void set_use_stable_csm(bool flag)
Sets whether to use stable CSM snapping.
void reset_film_size_cache()
Resets the film size cache.