ozzr / godot_terrain

Custom Godot Engine Build with Terrain Module
BSD 2-Clause "Simplified" License
115 stars 6 forks source link

Crash while using smoothing tool #13

Closed curioussavage closed 1 year ago

curioussavage commented 1 year ago

using MacOs and gles2 renderer.

Tested using one of the example projects and it crashed while smoothing some terrain.

Here is a backtrace:

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v3.5.1.stable.custom_build (6fed1ffa313c6760fa88b368ae580378daaef0f0)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] 1   libsystem_platform.dylib            0x000000018d38f2a4 _sigtramp + 56
[2] is_aabb_culled(AABB const&, Vector<Plane> const&) (in godot.osx.tools.arm64) (terrain_renderer.cpp:1093)
[3] is_aabb_culled(AABB const&, Vector<Plane> const&) (in godot.osx.tools.arm64) (terrain_renderer.cpp:1093)
[4] CDLODRenderer::_select_node(QuadTree::Node&, Vector<Color>&) (in godot.osx.tools.arm64) (terrain_renderer.cpp:1209)
[5] CDLODRenderer::_select_node(QuadTree::Node&, Vector<Color>&) (in godot.osx.tools.arm64) (terrain_renderer.cpp:1220)
[6] CDLODRenderer::_select_node(QuadTree::Node&, Vector<Color>&) (in godot.osx.tools.arm64) (terrain_renderer.cpp:1220)
[7] CDLODRenderer::_select_node(QuadTree::Node&, Vector<Color>&) (in godot.osx.tools.arm64) (terrain_renderer.cpp:1220)
[8] CDLODRenderer::_process() (in godot.osx.tools.arm64) (terrain_renderer.cpp:2195)
[9] MethodBind0::call(Object*, Variant const**, int, Variant::CallError&) (in godot.osx.tools.arm64) (method_bind.gen.inc:59)
[10] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (in godot.osx.tools.arm64) (object.cpp:918)
[11] Object::emit_signal(StringName const&, Variant const**, int) (in godot.osx.tools.arm64) (object.cpp:1230)
[12] Object::emit_signal(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (in godot.osx.tools.arm64) (object.cpp:1285)
[13] VisualServerRaster::draw(bool, double) (in godot.osx.tools.arm64) (visual_server_raster.cpp:99)
[14] VisualServerWrapMT::draw(bool, double) (in godot.osx.tools.arm64) (visual_server_wrap_mt.cpp:90)
[15] Main::iteration() (in godot.osx.tools.arm64) (main.cpp:2319)
[16] OS_OSX::run() (in godot.osx.tools.arm64) (os_osx.mm:3432)
[17] main (in godot.osx.tools.arm64) (godot_main_osx.mm:74)
[18] 18  dyld                                0x000000018d037e50 start + 2544
-- END OF BACKTRACE --
ozzr commented 1 year ago

Thanks for reporting the issue. I am going to check it

ozzr commented 1 year ago

Could you create a clean project and test editing a new terrain there?

The demo scenes where created using the version 1.0.0 of the module.

The issue might be caused by the CDLODRenderer trying to read from a QUATREE that is being rebuilt following the HEIGHTMAP changes.

If the issue occurred while smoothing the terrain it could also happen when raising | lowering | flattening | eroding the height as those methods in the TerrainTool have almost identical behaviors

curioussavage commented 1 year ago

Finally circling back to this and I can confirm that the issue doesn't exist in a fresh project. Working great!

ozzr commented 1 year ago

Hi, sorry for the late replay. It is good to know that everything is working fine now. If you find any other error, please let me know 👍