diff --git a/python/mujoco/experimental/studio/web/index.html b/python/mujoco/experimental/studio/web/index.html index 26b1ca31..44013b07 100644 --- a/python/mujoco/experimental/studio/web/index.html +++ b/python/mujoco/experimental/studio/web/index.html @@ -228,7 +228,6 @@ limitations under the License. "pbr_packed_transparent.filamat", "phong_2d.filamat", "phong_2d_fade.filamat", - "phong_2d_reflect.filamat", "phong_2d_uv.filamat", "phong_2d_uv_fade.filamat", "phong_2d_uv_reflect.filamat", diff --git a/src/experimental/studio/live.js b/src/experimental/studio/live.js index 1e219b55..9e3c64cd 100644 --- a/src/experimental/studio/live.js +++ b/src/experimental/studio/live.js @@ -151,7 +151,6 @@ var Module = { "assets/pbr_packed_transparent.filamat", "assets/phong_2d_fade.filamat", "assets/phong_2d.filamat", - "assets/phong_2d_reflect.filamat", "assets/phong_2d_uv_fade.filamat", "assets/phong_2d_uv.filamat", "assets/phong_2d_uv_reflect.filamat", diff --git a/src/render/filament/assets/phong_2d_reflect.mat b/src/render/filament/assets/phong_2d_reflect.mat deleted file mode 100644 index f37e8966..00000000 --- a/src/render/filament/assets/phong_2d_reflect.mat +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2025 DeepMind Technologies Limited -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -material { - name : phong_2d_reflect, - shadingModel : specularGlossiness, - flipUV : false, - parameters : [ - { type : float4, name : BaseColorFactor }, - { type : float, name : SpecularFactor }, - { type : float, name : GlossinessFactor }, - { type : float, name : EmissiveFactor }, - { type : float, name : Reflectance }, - { type : float3, name : UvScale }, - { type : float3, name : UvOffset }, - { type : sampler2d, name : BaseColor }, - { type : sampler2d, name : Reflection } - ], - variables : [ - vertex_pos - ] -} - -vertex { - void materialVertex(inout MaterialVertexInputs material) { - material.vertex_pos = getPosition(); - } -} - -fragment { - void material(inout MaterialInputs material) { - // Convert centered object-space positions [-1, 1] to standard [0, 1] UVs: - // * 0.5 scales [-1, 1] to [-0.5, 0.5] - // * -0.5 on Y flips the vertical axis (top of geom = V=0) - // * - vec2(0.5, 0.5) offsets origin to match OpenGL glTexGen conventions - vec2 uv = variable_vertex_pos.xy * vec2(0.5, -0.5) * materialParams.UvScale.xy - vec2(0.5, 0.5) + materialParams.UvOffset.xy; - vec2 screen_uv = gl_FragCoord.xy * getResolution().zw; - - prepareMaterial(material); - material.baseColor = materialParams.BaseColorFactor; - material.baseColor *= texture(materialParams_BaseColor, uv); - material.specularColor = vec3(materialParams.SpecularFactor); - material.glossiness = materialParams.GlossinessFactor; - material.emissive = vec4( - materialParams.BaseColorFactor.rgb * materialParams.EmissiveFactor, 0.0); - - // Apply reflection. - vec4 reflection = texture(materialParams_Reflection, screen_uv); - material.baseColor.rgb = mix(material.baseColor.rgb, reflection.rgb, materialParams.Reflectance); - } -} diff --git a/src/render/filament/core/material_manager.cc b/src/render/filament/core/material_manager.cc index 6d75c195..fdf71507 100644 --- a/src/render/filament/core/material_manager.cc +++ b/src/render/filament/core/material_manager.cc @@ -195,10 +195,10 @@ MaterialManager::MaterialType MaterialManager::GetMaterialType( return ObjectManager::kPhong2dUv; } } else { + // Reached only by a mesh without texture coordinates. Meshes are not planar + // reflectors, so reflectance has no reflect variant here. if (material.color[3] < 1.0f) { return ObjectManager::kPhong2dFade; - } else if (material.reflectance > 0) { - return ObjectManager::kPhong2dReflect; } else { return ObjectManager::kPhong2d; } diff --git a/src/render/filament/core/object_manager.cc b/src/render/filament/core/object_manager.cc index d6f4990b..e10e3f8d 100644 --- a/src/render/filament/core/object_manager.cc +++ b/src/render/filament/core/object_manager.cc @@ -73,8 +73,6 @@ ObjectManager::ObjectManager(filament::Engine* engine) : engine_(engine) { LoadMaterial(engine, "pbr_packed_reflect.filamat"); materials_[kPhong2d] = LoadMaterial(engine, "phong_2d.filamat"); materials_[kPhong2dFade] = LoadMaterial(engine, "phong_2d_fade.filamat"); - materials_[kPhong2dReflect] = - LoadMaterial(engine, "phong_2d_reflect.filamat"); materials_[kPhong2dUv] = LoadMaterial(engine, "phong_2d_uv.filamat"); materials_[kPhong2dUvFade] = LoadMaterial(engine, "phong_2d_uv_fade.filamat"); materials_[kPhong2dUvReflect] = diff --git a/src/render/filament/core/object_manager.h b/src/render/filament/core/object_manager.h index ca60e107..9e91a5a1 100644 --- a/src/render/filament/core/object_manager.h +++ b/src/render/filament/core/object_manager.h @@ -48,7 +48,6 @@ class ObjectManager { kPbrPackedReflect, kPhong2d, kPhong2dFade, - kPhong2dReflect, kPhong2dUv, kPhong2dUvFade, kPhong2dUvReflect,