Merge "Ensure BaseHandle class move noexcept (toolkit public-api)" into devel/master
authorEunki Hong <eunkiki.hong@samsung.com>
Fri, 24 Mar 2023 04:42:38 +0000 (04:42 +0000)
committerGerrit Code Review <gerrit@review>
Fri, 24 Mar 2023 04:42:38 +0000 (04:42 +0000)
dali-scene3d/internal/graphics/shaders/default-physically-based-shader.frag
dali-scene3d/public-api/loader/environment-map-data.cpp
dali-scene3d/public-api/loader/environment-map-loader.cpp

index edfb1d8..022e21b 100644 (file)
@@ -189,7 +189,7 @@ void main()
   mediump vec3 v = normalize(vPositionToCamera); // Vector from surface point to camera
   mediump float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);
   mediump vec3 reflection = -normalize(reflect(v, n));
-  lowp vec3 brdf = linear(texture(sbrdfLUT, vec2(NdotV, 1.0 - perceptualRoughness)).rgb);
+  lowp vec3 brdf = texture(sbrdfLUT, vec2(NdotV, 1.0 - perceptualRoughness)).rgb;
   vec3 Fr = max(vec3(1.0 - perceptualRoughness), f0) - f0;
   vec3 k_S = f0 + Fr * pow(1.0 - NdotV, 5.0);
   vec3 FssEss = specularWeight * (k_S * brdf.x + brdf.y);
index cca2952..7766487 100644 (file)
@@ -46,19 +46,19 @@ Texture EnvironmentMapData::GetTexture()
           mEnvironmentMapTexture.Upload(side[iMipLevel], CubeMapLayer::POSITIVE_X + iSide, iMipLevel, 0u, 0u, side[iMipLevel].GetWidth(), side[iMipLevel].GetHeight());
         }
       }
-
-      // If mipmap is not defined explicitly, use GenerateMipmaps.
-      // TODO: Maybe we can use better way to know it already has mipmap or not.
-      if(mPixelData.size() > 0u && mPixelData[0].size() == 1u)
-      {
-        mEnvironmentMapTexture.GenerateMipmaps();
-      }
     }
     else
     {
       mEnvironmentMapTexture = Texture::New(TextureType::TEXTURE_2D, mPixelData[0][0].GetPixelFormat(), mPixelData[0][0].GetWidth(), mPixelData[0][0].GetHeight());
       mEnvironmentMapTexture.Upload(mPixelData[0][0], 0, 0, 0, 0, mPixelData[0][0].GetWidth(), mPixelData[0][0].GetHeight());
     }
+
+    // If mipmap is not defined explicitly, use GenerateMipmaps.
+    // TODO: Maybe we can use better way to know it already has mipmap or not.
+    if(mPixelData.size() > 0u && mPixelData[0].size() == 1u)
+    {
+      mEnvironmentMapTexture.GenerateMipmaps();
+    }
   }
   return mEnvironmentMapTexture;
 }
index 306d3b2..bbfe829 100644 (file)
@@ -169,8 +169,6 @@ bool LoadEnvironmentMapData(const std::string& environmentMapUrl, Scene3D::Loade
       {
         environmentMapData.mPixelData[i][0] = GetCubeFace(pixelBuffer, i, cubeType, faceWidth, faceHeight);
       }
-      uint32_t mipmap = static_cast<uint32_t>(1 + std::floor(std::log2(std::max(environmentMapData.mPixelData[0][0].GetWidth(), environmentMapData.mPixelData[0][0].GetHeight()))));
-      environmentMapData.SetMipmapLevels(mipmap);
       environmentMapData.SetEnvironmentMapType(Scene3D::EnvironmentMapType::CUBEMAP);
     }
     else
@@ -180,6 +178,18 @@ bool LoadEnvironmentMapData(const std::string& environmentMapUrl, Scene3D::Loade
       environmentMapData.mPixelData[0][0] = Devel::PixelBuffer::Convert(pixelBuffer);
       environmentMapData.SetEnvironmentMapType(Scene3D::EnvironmentMapType::EQUIRECTANGULAR);
     }
+
+    if(!environmentMapData.mPixelData.empty() && !environmentMapData.mPixelData[0].empty() && environmentMapData.mPixelData[0][0])
+    {
+      const uint32_t pixelDataWidth  = environmentMapData.mPixelData[0][0].GetWidth();
+      const uint32_t pixelDataHeight = environmentMapData.mPixelData[0][0].GetHeight();
+
+      if(pixelDataWidth > 0u && pixelDataHeight > 0u)
+      {
+        uint32_t mipmap = static_cast<uint32_t>(1 + std::floor(std::log2(std::min(pixelDataWidth, pixelDataHeight))));
+        environmentMapData.SetMipmapLevels(mipmap);
+      }
+    }
     return true;
   }
   return false;