wowdev/noggit3

Model Saving [3.3354]

kaytotes opened this issue · 7 comments

I've been using the 3.3354 build (latest test build from discord) and have managed to pretty repeatedly cause a model saving issue eg M2's.

I created a simple row of a few different rock models to test this. Saved all changed tiles.

Screenshot_1

In game however I got this:

WoWScrnShot_081721_095645

Checked noggit and resaved a few more times but got the same results.

I then exited noggit. When reopening and going back to the same adt I got this which matches in game.

Screenshot_2

From this broken state I added even more models.

Screenshot_3

Saved all changed tiles again and in game I get the following.

WoWScrnShot_081721_100211

Exited noggit. Reopened. Went back to the same adt, bunches of models missing which matches in game.

Screenshot_4

I have not been able to reproduce this issue with the previous build 3.33151980+ which so far has correctly saved and loaded.

Can you show a screenshot with lines (F7) turned on? Just want to figure out if it's possibly related to chunk borders

Fresh clump of rocks. Same location.

Screenshot_8
Screenshot_6
Screenshot_7

I can indeed cause this to happen on 3354, but hard to make it happen reliably. The few times I got it to happen, it seemed to happen on a per-chunk basis. Will run more tests on more versions and check what exactly could've changed.

This also happens on 3085/3.33151980+. I've looked over the changes made with the scripting merge, and I think it's unlikely any of those changes caused this issue.

Could you describe exactly how you're placing your props so I'm sure we're experiencing the same issue?

What I do to cause this is copy an existing m2 from another adt, pasting them with ctrl+v and then moving them slightly with the mouse wheel within the chunk I place them in.

Update: This doesn't happen in 2992, and in the newer versions it only happens (and happens very reliably) if I move the objects with the "Follow ground rotation" settings on. It seems the reason I had issues reproducing it before was that I stopped moving the models between each test. Now that I do, it happens on about 50% of the chunks every single time. This also works even if I don't even copy the model in the first place.

Update: Appears it does not happen on a per-chunk basis, it's per model.

Update: I strongly suspect this only happens when "follow ground rotation" happens on flat ground. This seems possibly consistent with the pictures posted here.

Update: What model will break can be predicted with the F8 menu, if Y is exactly 0 (or possibly any other flat value), the model will break, otherwise not. When dragging a model around on flat ground, this number will frequently flicker between 0 and another very small value. I can never cause this to happen for a model with any other value than exactly 0.

Update: It does happen for other flat values, but the difference doesn't seem to be noticable in the f8 menu.

Update: Maybe I should've thought of opening or asking for the log....

...
22535 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22544 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22547 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22549 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22555 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22558 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22564 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22567 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22570 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22573 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22576 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
22582 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed
...

I can confirm that your process of copy pasting a model with ctrl+c and pasting with ctrl+v then moving around with middle mouse with follow ground rotation on is how I've been doing things.

I'll grab from the logs for you to double confirm this asap.

Confirmed

41443 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed

Confirmed

41443 - (World.cpp:652): [Error] rotate_selected_models_to_ground_normal ray intersection failed

For that, the current fixes are:

  1. On 3354 or 3085, disable "follow ground rotation" when dragging objects on flat ground
  2. Build from source or wait for the next release, since 2729bd8 this no longer destroys the models.

Since this particular issue has been solved I will close it, the related follow-up is here: #103