瀏覽代碼

gsg: Don't error for sampler/light type mismatch for non-casting lights

Closes #942
rdb 5 年之前
父節點
當前提交
40962e1eb5
共有 1 個文件被更改,包括 8 次插入1 次删除
  1. 8 1
      panda/src/display/graphicsStateGuardian.cxx

+ 8 - 1
panda/src/display/graphicsStateGuardian.cxx

@@ -1872,7 +1872,14 @@ fetch_specified_texture(Shader::ShaderTexSpec &spec, SamplerState &sampler,
         Light *light_obj = light.node()->as_light();
         nassertr(light_obj != nullptr, nullptr);
 
-        PT(Texture) tex = get_shadow_map(light);
+        PT(Texture) tex;
+        LightLensNode *lln = DCAST(LightLensNode, light.node());
+        if (lln != nullptr && lln->_shadow_caster) {
+          tex = get_shadow_map(light);
+        } else {
+          tex = get_dummy_shadow_map((Texture::TextureType)spec._desired_type);
+        }
+
         if (tex != nullptr) {
           sampler = tex->get_default_sampler();
         }