|
static bool | filter_resolve_material_callback (const CtxEval &eval_ctx, const GeometryRaytraceCtx &raytrace_ctx, const unsigned int &ray_index, GeometryIntersection &intersection, GeometryRaytraceCtx::FilterData &data) |
|
static ModuleMaterial * | resolve_material_switch (const CtxEval &eval_ctx, GeometryIntersection &intersection) |
|
static ModuleMaterial * | resolve_material (const CtxEval &eval_ctx, GeometryIntersection &intersection, const DefaultMaterialConfig &default_materials) |
|
static void | shade (const CtxEval &eval_ctx, CtxShader &shader_ctx, GMathVec3f &color, GMathVec3f &opacity, const bool &aovs_only=false, const bool &disable_clamping=false) |
| Shade the current fragment set in the shader context.
|
|
static void | shade (GMathVec3f &color, GMathVec3f &opacity, const CtxEval &eval_ctx, CtxShader &shader_ctx, const CtxRaytrace &ray_ctx, const unsigned int &path_index, const bool &disable_clamping=false) |
| Shade a path of intersections and composite them.
|
|
static void | shade_opacity (GMathVec3f &opacity, const CtxEval &eval_ctx, CtxShader &shader_ctx, const CtxRaytrace &ray_ctx, const unsigned int &path_index, const bool &shade_transparency=true) |
| Compute the composited opacity of a path of intersections.
|
|
static bool | raytrace (GMathVec3f &color, GMathVec3f &opacity, const CtxEval &eval_ctx, CtxShader &shader_ctx, const GMathRay<> &ray, const double &tnear=gmath_epsilon, const double &tfar=gmath_infinity, const bool &disable_clamping=false) |
| Raytrace the current scene with full shading/illumination evaluation.
|
|
static bool | raytrace_opacity (GMathVec3f &opacity, const CtxEval &eval_ctx, CtxShader &ctx, const GMathRay<> &ray, const double &tnear=gmath_epsilon, const double &tfar=gmath_infinity, const bool &shade_transparency=true) |
| Raytrace the current scene and compute only the resulting opacity.
|
|
static void | raytrace (GMathVec3f *colors, GMathVec3f *opacities, const CtxEval &eval_ctx, CtxShader &shader_ctx, CtxRaytrace &ray_ctx, const bool &disable_clamping=false, const bool &use_packet=true) |
| Raytrace the current scene with full shading/illumination evaluation.
|
|
static void | raytrace_opacity (GMathVec3f *opacities, const CtxEval &eval_ctx, CtxShader &shader_ctx, CtxRaytrace &ray_ctx, const bool &shade_transparency=true, const bool &use_packet=true) |
| Raytrace the current scene and compute only the resulting opacities.
|
|
static void | clip (GMathVec3d &direction, const GMathVec3d &clip_plane_normal) |
|
static double | reflect (const GMathVec3d &i, const GMathVec3d &n, GMathVec3d &r) |
|
static double | refract (const GMathVec3d &i, const GMathVec3d &n, const double &ior, GMathVec3d &t) |
|
static double | refract (const GMathVec3d &i, const GMathVec3d &n, const double &eta_i, const double &eta_t, GMathVec3d &t) |
|
static void | reflect_and_refract (const GMathVec3d &i, const GMathVec3d &n, const double &ior, GMathVec3d &r, GMathVec3d &t, double &cos_i, double &cos_t) |
|
static double | fresnel_dielectric (const double &cos_i, const double &cos_t, const double &eta_i, const double &eta_t) |
|
static double | fresnel_dielectric (const double &cos_i, const double &cos_t, const double &ior) |
|
static double | fresnel_dielectric (const GMathVec3d &wi, const GMathVec3d &normal, const double &ior) |
|
static double | fresnel_conductor (const double &cos_i, const double &eta, const double &k) |
|
static float | luminance (const GMathVec3f &rgb) |
|
static float | luminance (const GMathVec4f &rgba) |
|
static double | luminance (const GMathVec3d &rgb) |
|
static double | luminance (const GMathVec4d &rgba) |
|
static double | compute_reflection_ray (const CtxEval &eval_ctx, const CtxShader &ctx, GMathRay<> &r_ray) |
| Compute the reflection ray using fragment information from the input CtxShader.
|
|
static double | compute_refraction_ray (const CtxEval &eval_ctx, const CtxShader &ctx, const double &ior, GMathRay<> &t_ray) |
| Compute the refraction ray using fragment information from the input CtxShader.
|
|
static void | compute_reflection_and_refraction_rays (const CtxEval &eval_ctx, const CtxShader &ctx, const double &ior, GMathRay<> &r_ray, GMathRay<> &t_ray, double &cos_i, double &cos_t) |
| Compute both reflection and refraction rays using fragment information from the input CtxShader.
|
|
static bool | create_shader_ctx (const CtxEval &eval_ctx, CtxShader &ctx, const ModuleLayerScene &layer) |
| Creates a minimal valid shader context. Once you are done using the ctx, you MUST call a cleanup_shader_ctx otherwise, you will get memory leaks. Assume the camera is of class CameraPerspective.
|
|
static bool | create_shader_ctx (const CtxEval &eval_ctx, CtxShader &ctx, const ModuleRenderScene &render_scene) |
| Creates a minimal valid shader context. Once you are done using the ctx, you MUST call a cleanup_shader_ctx otherwise, you will get memory leaks. Assume the camera is of class CameraPerspective.
|
|
static void | cleanup_shader_ctx (CtxShader &ctx) |
| Cleanup a valid shader context.
|
|
static bool | raycast (GeometryIntersection &intersection, GMathRay<> &ray, const CtxEval &eval_ctx, CtxShader &ctx, const double &x, const double &y, const unsigned int &width, const unsigned int &height, float alpha_threshold=0, const CoreVector< ModuleSceneItem * > *items=0, bool exclude=true, bool filter_unpickable=false, bool raycast_light=false) |
| Cast a ray for the specified pixel and return the intersection if any.
|
|
static void | compute_bump_normal (GMathVec3d &normal, const CtxEval &eval_ctx, CtxShader &ctx, const ModuleTexture &texture, const bool &smoothed=true, const double &factor=1.0, const bool &use_texture_space=true) |
| Compute bump normal from a texture.
|
|
static void | compute_normal_from_map (GMathVec3d &normal, const CtxEval &eval_ctx, CtxShader &ctx, const ModuleTexture &texture, const bool &smoothed=true, const double &factor=1.0, const bool &use_tangent_space=true) |
| Compute normal from a normal map texture.
|
|
static bool | ray_hit (const CtxEval &eval_ctx, CtxShader &shader_ctx, const GMathRay<> &ray, const double &tnear=gmath_epsilon, const double &tfar=gmath_infinity) |
| Cast a ray and test if it hits something.
|
|
static void | ray_hit (const CtxEval &eval_ctx, CtxShader &shader_ctx, CtxRaytrace &ray_ctx, const bool &use_packet=true) |
| Cast rays and test if they hit something.
|
|
static void | ray_hit_nearest (const CtxEval &eval_ctx, CtxShader &shader_ctx, CtxRaytrace &ray_ctx, const bool &use_packet=true) |
| Cast rays and and search for the nearest intersection.
|
|
static void | decimate_points (OfObjectFactory &factory, CoreVector< GMathVec3d > &points, const double &decimate_value, ModuleTexture *decimate_texture=0, const unsigned int &decimate_seed=0) |
|
static void | merge_fragments (float &cm, float &am, const float &c1, const float &a1, const float &c2, const float &a2) |
|
static void | merge_fragments (GMathVec3f &cm, GMathVec3f &am, const GMathVec3f &c1, const GMathVec3f &a1, const GMathVec3f &c2, const GMathVec3f &a2) |
|
static void | merge_fragments (GMathVec3f &c1, GMathVec3f &a1, const GMathVec3f &c2, const GMathVec3f &a2) |
|
static bool | evaluate_support_material (const GeometryPointCloud &point_cloud, const ModuleMaterial &material, CoreBasicArray< GMathVec3f > &colors, CoreBasicArray< GMathVec3f > &opacities, ModuleLayer3d *layer=nullptr, AppProgressBar *progress_bar=nullptr) |
|
static bool | evaluate_support_texture (const GeometryPointCloud &point_cloud, const ModuleTexture &texture, CoreBasicArray< GMathVec4f > &colors, ModuleLayer3d *layer=nullptr, AppProgressBar *progress_bar=nullptr) |
|
static bool | evaluate_vertices_texture (ModuleGeometry &geometry, const CoreBasicArray< unsigned int > &vertex_indices, const ModuleTexture &texture, CoreBasicArray< GMathVec4f > &colors, ModuleLayer3d *layer=nullptr, AppProgressBar *progress_bar=nullptr) |
|
static void | gas_leaf_ray_hit_nearest (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryRaytraceCtx &raytrace_ctx, LeafRayHitNearestSceneObjectCallback leaf_callback, const GMathMatrix4x4d &m, const GMathMatrix4x4d &inv_m, const unsigned int &leaf_index, ModuleSceneObject *leaf_module, GeometryOverride *leaf_override=0) |
|
static void | gas_leaf_ray_hit_nearest_motion (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryRaytraceCtx &raytrace_ctx, LeafRayHitNearestSceneObjectCallback leaf_callback, const CoreBasicArray< GMathMatrix4x4d > &matrices, const unsigned int &leaf_index, ModuleSceneObject *leaf_module, GeometryOverride *leaf_override=0) |
|
static void | gas_leaf_ray_hit_nearest (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryRaytraceCtx &raytrace_ctx, LeafRayHitNearestLightCallback leaf_callback, const GMathMatrix4x4d &m, const GMathMatrix4x4d &inv_m, const unsigned int &leaf_index, ModuleLight *leaf_module) |
|
static void | gas_leaf_ray_hit_nearest_motion (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryRaytraceCtx &raytrace_ctx, LeafRayHitNearestLightCallback leaf_callback, const CoreBasicArray< GMathMatrix4x4d > &matrices, const unsigned int &leaf_index, ModuleLight *leaf_module) |
|
Helper class for rasterization, illumination and shading and raytracing.
Useful shading static method collection.