Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-88103

baseColor/diffuse maps are sampled twice

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Done
    • Affects Version/s: 6.0.0 Beta2
    • Fix Version/s: 6.0.0
    • Component/s: Quick: 3D
    • Labels:
      None
    • Commits:
      252014115f6492712f49514edbcb59a7631b07c5 (qt/qtquick3d/dev)
    • Sprint:
      Qt Quick 3D - Week 45/46

      Description

      Any mesh with a Default/PrincipledMaterial on it with a base or diffuse map set will sample the texture twice.

      This is unacceptable from a performance point of view.

      void main()
      {
          float qt_objectOpacity = _111.qt_material_properties.w;
          vec4 qt_vertColor = vec4(1.0);
          vec3 qt_view_vector = normalize(_111.qt_cameraPosition - qt_varWorldPos);
          vec3 qt_world_normal = normalize(qt_varNormal);
          vec3 qt_org_normal = qt_world_normal;
          vec4 qt_diffuseColor = _111.qt_material_base_color * qt_vertColor;
          float qt_facing = (step(0.0, dot(qt_view_vector, qt_org_normal)) * 2.0) - 1.0;
          qt_org_normal *= qt_facing;
          vec3 qt_specularTint = _111.qt_material_specular.xyz;
      
      
          vec4 param = texture(qt_DiffuseMap_sampler, qt_DiffuseMap_uv_coords1);
      
      
      
          vec4 qt_base_texture_color = qt_sRGBToLinear(param);
          qt_diffuseColor *= qt_base_texture_color;
          float qt_metalnessAmount = _111.qt_material_properties.z;
          vec4 global_diffuse_light = vec4((_111.qt_light_ambient_total * (1.0 - qt_metalnessAmount)) * qt_diffuseColor.xyz, 0.0);
          vec3 global_specular_light = vec3(0.0);
          float qt_shadow_map_occl = 1.0;
          float qt_lightAttenuation = 1.0;
          float qt_aoFactor = 1.0;
          float qt_roughnessAmount = _111.qt_material_properties.y;
          qt_lightAttenuation = 1.0;
          qt_shadow_map_occl = 1.0;
          vec3 tmp_light_color = ubLights.lights[0].diffuse.xyz * (1.0 - qt_metalnessAmount);
          vec3 param_1 = qt_world_normal;
          vec3 param_2 = -ubLights.lights[0].direction.xyz;
          vec3 param_3 = tmp_light_color;
          vec3 _234 = global_diffuse_light.xyz + ((qt_diffuseColor.xyz * qt_shadow_map_occl) * qt_diffuseReflectionBSDF(param_1, param_2, param_3).xyz);
          global_diffuse_light = vec4(_234.x, _234.y, _234.z, global_diffuse_light.w);
          global_diffuse_light = vec4(global_diffuse_light.xyz * qt_aoFactor, qt_objectOpacity * qt_diffuseColor.w);
          vec3 _257 = global_diffuse_light.xyz + (qt_diffuseColor.xyz * _111.qt_material_emissive_color);
          global_diffuse_light = vec4(_257.x, _257.y, _257.z, global_diffuse_light.w);
      
      
      
      
          vec4 qt_texture_color = texture(qt_DiffuseMap_sampler, qt_DiffuseMap_uv_coords1);
      
      
      
      
          global_diffuse_light.w *= (_111.qt_material_base_color.w * qt_texture_color.w);
          vec3 param_4 = global_diffuse_light.xyz + global_specular_light;
          fragOutput = vec4(qt_tonemap(param_4), global_diffuse_light.w);
      }
       

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            lagocs Laszlo Agocs
            Reporter:
            lagocs Laszlo Agocs
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes