Merge branch 'blender-v4.2-release'

This commit is contained in:
Miguel Pozo 2024-06-17 19:39:13 +02:00
commit 0a38a8d56a
5 changed files with 16 additions and 7 deletions

@ -6,7 +6,7 @@
#if BLI_SUBPROCESS_SUPPORT
/* Based on https://github.com/jarikomppa/ipc (Unlicensed) */
/* Based on https://github.com/jarikomppa/ipc (Unlicense) */
# include "BLI_assert.h"
# include "BLI_path_util.h"

@ -712,8 +712,14 @@ void ShaderModule::material_create_info_ammend(GPUMaterial *gpumat, GPUCodegenOu
if (info.additional_infos_.first_index_of_try("draw_object_infos_new") == -1) {
info.additional_info("draw_object_infos_new");
}
/* TODO(fclem): Should use `to_scale` but the gpu_shader_math_matrix_lib.glsl isn't
* included everywhere yet. */
frag_gen << "vec3 ob_scale;\n";
frag_gen << "ob_scale.x = length(ModelMatrix[0].xyz);\n";
frag_gen << "ob_scale.y = length(ModelMatrix[1].xyz);\n";
frag_gen << "ob_scale.z = length(ModelMatrix[2].xyz);\n";
frag_gen << "vec3 ls_dimensions = safe_rcp(abs(OrcoTexCoFactors[1].xyz));\n";
frag_gen << "vec3 ws_dimensions = mat3x3(ModelMatrix) * ls_dimensions;\n";
frag_gen << "vec3 ws_dimensions = ob_scale * ls_dimensions;\n";
/* Choose the minimum axis so that cuboids are better represented. */
frag_gen << "return reduce_min(ws_dimensions);\n";
}

@ -6,7 +6,7 @@
#include "BLI_subprocess.hh"
#if defined(WITH_OPENGL_BACKEND) && defined(BLI_SUBPROCESS_SUPPORT)
#if defined(WITH_OPENGL_BACKEND) && BLI_SUBPROCESS_SUPPORT
void GPU_compilation_subprocess_run(const char *subprocess_name);

@ -21,9 +21,12 @@ void node_output_material_displacement(vec3 displacement, out vec3 out_displacem
void node_output_material_thickness(float thickness, out float out_thickness)
{
vec3 thickness_vec;
direction_transform_object_to_world(vec3(max(thickness, 0.0)), thickness_vec);
thickness_vec = abs(thickness_vec);
vec3 ob_scale;
ob_scale.x = length(ModelMatrix[0].xyz);
ob_scale.y = length(ModelMatrix[1].xyz);
ob_scale.z = length(ModelMatrix[2].xyz);
vec3 thickness_vec = abs(max(thickness, 0.0) * ob_scale);
/* Contrary to displacement we need to output a scalar quantity.
* We arbitrarily choose to output the axis with the minimum extent since it is the axis along
* which the object is usually viewed at. */

@ -330,7 +330,7 @@ int main(int argc,
# endif /* USE_WIN32_UNICODE_ARGS */
#endif /* WIN32 */
#if defined(WITH_OPENGL_BACKEND) && defined(BLI_SUBPROCESS_SUPPORT)
#if defined(WITH_OPENGL_BACKEND) && BLI_SUBPROCESS_SUPPORT
if (STREQ(argv[0], "--compilation-subprocess")) {
BLI_assert(argc == 2);
GPU_compilation_subprocess_run(argv[1]);