Description
Godot version
3.3.4 official
System information
Win 10/64 NVIDIA GeForce GTX 1060/PCIe/SSE2
Issue description
Too frequently some meshes won't render in the editor, and sometimes in game. Switching to another scene and switching back, or closing and reopening will temporarily fix it.
We were developing on 3.2.1 and I never had the issue. As we explored the 3.3 branch I started noticing this error. It's frequent enough that it's a problem. It could have happened any time from 3.2.2.
@Arnklit Already reported this in #47051, and provided a test project, but it was closed prematurely. Though since it's intermittent I doubt the core devs will see it until they start making a large scene with tons of objects. @mbrlabs also confirmed the problem in that ticket.
It happens to all sorts of meshes. It has also affected @Zylann's heightmap terrain, one time, in the editor. One quad (say 5mx5m) was invisible and I couldn't get it to become visible until reloading the scene (prior to any of my gdnative work).
Here I'm building a house from a kit. I already had this scene open. I was in another scene, then switched back to it and saw this. I moved the camera closer for the shot:
I switched to the other scene, then came back, and the two meshes rendered again:
The floor is a fairly simple mesh with one wood material. The wall is more complex. Notice in the first picture you can see the shutter and glass. Here is the full object:
This wall object has separate glass and shutter meshes. The mesh that disappeared includes two materials, the same wood used on all objects in all of these pictures, and a rusty metal frame. Both materials on the mesh didn't render, and both materials are visible on all the other meshes.
The mesh instances have their mesh data stored in the tscn
file. They were originally imported from fbx, but that file has already been deleted. The textures are separate dds files. The materials are separate binary files, though most of our other materials are tres
. Here we are using MTLOD and an immediate geometry node, however I've experienced this on our meshes that are not using MTLOD. These shots are all close enough that we're only looking at LOD0.
I do not believe this is not an issue with LOD, file types or materials. It decides whether it is going to render these objects when the scene opens. Nothing I can do in the scene will get it to render. Not selecting it, moving it, changing visibility, or moving the camera. Only by switching or reopening scenes fixes (or breaks) these meshes.
My console is full of these errors, which repeat when I switch back and forth between my scenes sometimes.
ERROR: get: Condition "!id_map.has(p_rid.get_data())" is true. Returned: __null
At: ./core/rid.h:150
ERROR: instance_set_transform: Condition "!instance" is true.
At: servers/visual/visual_server_scene.cpp:713
ERROR: get: Condition "!id_map.has(p_rid.get_data())" is true. Returned: __null
At: ./core/rid.h:150
ERROR: instance_set_scenario: Condition "!instance" is true.
At: servers/visual/visual_server_scene.cpp:629
ERROR: get: Condition "!id_map.has(p_rid.get_data())" is true. Returned: __null
At: ./core/rid.h:150
ERROR: instance_set_visible: Condition "!instance" is true.
At: servers/visual/visual_server_scene.cpp:780
ERROR: get: Condition "!id_map.has(p_rid.get_data())" is true. Returned: __null
At: ./core/rid.h:150
ERROR: instance_attach_skeleton: Condition "!instance" is true.
At: servers/visual/visual_server_scene.cpp:913
Steps to reproduce
Build out a complex scene for a game with a lot of objects to greatly increase your likelihood of seeing the error.
Now at least 3 known gamedevs experience this problem.
Minimal reproduction project
Look in #47051
Activity