-
-
Notifications
You must be signed in to change notification settings - Fork 21.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CSG doesn't work well when rotated #18496
Comments
CSG code is currently too complex and prone to errors, I will probably end up rewriting it in next version. |
Does this occur on the master branch? Possibly related: #22988 |
For my usage, yes.
[gd_scene format=2]
[node name="Spatial" type="Spatial"] [node name="CSGCombiner2" type="CSGCombiner" parent="."] [node name="CSGBox" type="CSGBox" parent="CSGCombiner2"] [node name="Room2" type="CSGBox" parent="CSGCombiner2"] [node name="Room3" type="CSGBox" parent="CSGCombiner2"] [node name="Room4" type="CSGBox" parent="CSGCombiner2"] [node name="Room5" type="CSGBox" parent="CSGCombiner2"] [node name="Room6" type="CSGBox" parent="CSGCombiner2"] [node name="Room7" type="CSGBox" parent="CSGCombiner2"] [node name="Window1" type="CSGBox" parent="CSGCombiner2"] [node name="Window2" type="CSGBox" parent="CSGCombiner2"] [node name="Window3" type="CSGBox" parent="CSGCombiner2"] [node name="Window4" type="CSGBox" parent="CSGCombiner2"] [node name="Window13" type="CSGBox" parent="CSGCombiner2"] [node name="Window12" type="CSGBox" parent="CSGCombiner2"] [node name="Window11" type="CSGBox" parent="CSGCombiner2"] [node name="Window10" type="CSGBox" parent="CSGCombiner2"] [node name="Window5" type="CSGBox" parent="CSGCombiner2"] [node name="Window6" type="CSGBox" parent="CSGCombiner2"] [node name="Window7" type="CSGBox" parent="CSGCombiner2"] [node name="Window8" type="CSGBox" parent="CSGCombiner2"] [node name="Window9" type="CSGBox" parent="CSGCombiner2"] [node name="Window18" type="CSGBox" parent="CSGCombiner2"] [node name="Window17" type="CSGBox" parent="CSGCombiner2"] [node name="Window16" type="CSGBox" parent="CSGCombiner2"] [node name="Window15" type="CSGBox" parent="CSGCombiner2"] [node name="Window14" type="CSGBox" parent="CSGCombiner2"] [node name="Window36" type="CSGBox" parent="CSGCombiner2"] [node name="Window35" type="CSGBox" parent="CSGCombiner2"] [node name="Window34" type="CSGBox" parent="CSGCombiner2"] [node name="Window33" type="CSGBox" parent="CSGCombiner2"] [node name="Window32" type="CSGBox" parent="CSGCombiner2"] [node name="Window31" type="CSGBox" parent="CSGCombiner2"] [node name="Window30" type="CSGBox" parent="CSGCombiner2"] [node name="Window29" type="CSGBox" parent="CSGCombiner2"] [node name="Window28" type="CSGBox" parent="CSGCombiner2"] [node name="Window27" type="CSGBox" parent="CSGCombiner2"] [node name="Window26" type="CSGBox" parent="CSGCombiner2"] [node name="Window25" type="CSGBox" parent="CSGCombiner2"] [node name="Window24" type="CSGBox" parent="CSGCombiner2"] [node name="Window23" type="CSGBox" parent="CSGCombiner2"] [node name="Window22" type="CSGBox" parent="CSGCombiner2"] [node name="Window21" type="CSGBox" parent="CSGCombiner2"] [node name="Window20" type="CSGBox" parent="CSGCombiner2"] [node name="Window19" type="CSGBox" parent="CSGCombiner2"] [node name="Window54" type="CSGBox" parent="CSGCombiner2"] [node name="Window53" type="CSGBox" parent="CSGCombiner2"] [node name="Window52" type="CSGBox" parent="CSGCombiner2"] [node name="Window51" type="CSGBox" parent="CSGCombiner2"] [node name="Window50" type="CSGBox" parent="CSGCombiner2"] [node name="Window49" type="CSGBox" parent="CSGCombiner2"] [node name="Window48" type="CSGBox" parent="CSGCombiner2"] [node name="Window47" type="CSGBox" parent="CSGCombiner2"] [node name="Window46" type="CSGBox" parent="CSGCombiner2"] [node name="Window45" type="CSGBox" parent="CSGCombiner2"] [node name="Window44" type="CSGBox" parent="CSGCombiner2"] [node name="Window43" type="CSGBox" parent="CSGCombiner2"] [node name="Window42" type="CSGBox" parent="CSGCombiner2"] [node name="Window41" type="CSGBox" parent="CSGCombiner2"] [node name="Window40" type="CSGBox" parent="CSGCombiner2"] [node name="Window39" type="CSGBox" parent="CSGCombiner2"] [node name="Window38" type="CSGBox" parent="CSGCombiner2"] [node name="Window37" type="CSGBox" parent="CSGCombiner2"] [node name="Window72" type="CSGBox" parent="CSGCombiner2"] [node name="Window71" type="CSGBox" parent="CSGCombiner2"] [node name="Window70" type="CSGBox" parent="CSGCombiner2"] [node name="Window69" type="CSGBox" parent="CSGCombiner2"] [node name="Window68" type="CSGBox" parent="CSGCombiner2"] [node name="Window67" type="CSGBox" parent="CSGCombiner2"] [node name="Window66" type="CSGBox" parent="CSGCombiner2"] [node name="Window65" type="CSGBox" parent="CSGCombiner2"] [node name="Window64" type="CSGBox" parent="CSGCombiner2"] [node name="Window63" type="CSGBox" parent="CSGCombiner2"] [node name="Window62" type="CSGBox" parent="CSGCombiner2"] [node name="Window61" type="CSGBox" parent="CSGCombiner2"] [node name="Window60" type="CSGBox" parent="CSGCombiner2"] [node name="Window59" type="CSGBox" parent="CSGCombiner2"] [node name="Window58" type="CSGBox" parent="CSGCombiner2"] [node name="Window57" type="CSGBox" parent="CSGCombiner2"] [node name="Window56" type="CSGBox" parent="CSGCombiner2"] [node name="Window55" type="CSGBox" parent="CSGCombiner2"] [node name="Window90" type="CSGBox" parent="CSGCombiner2"] [node name="Window89" type="CSGBox" parent="CSGCombiner2"] [node name="Window88" type="CSGBox" parent="CSGCombiner2"] [node name="Window87" type="CSGBox" parent="CSGCombiner2"] [node name="Window86" type="CSGBox" parent="CSGCombiner2"] [node name="Window85" type="CSGBox" parent="CSGCombiner2"] [node name="Window84" type="CSGBox" parent="CSGCombiner2"] [node name="Window83" type="CSGBox" parent="CSGCombiner2"] [node name="Window82" type="CSGBox" parent="CSGCombiner2"] [node name="Window81" type="CSGBox" parent="CSGCombiner2"] [node name="Window80" type="CSGBox" parent="CSGCombiner2"] [node name="Window79" type="CSGBox" parent="CSGCombiner2"] [node name="Window78" type="CSGBox" parent="CSGCombiner2"] [node name="Window77" type="CSGBox" parent="CSGCombiner2"] [node name="Window76" type="CSGBox" parent="CSGCombiner2"] [node name="Window75" type="CSGBox" parent="CSGCombiner2"] [node name="Window74" type="CSGBox" parent="CSGCombiner2"] [node name="Window73" type="CSGBox" parent="CSGCombiner2"] [node name="Window108" type="CSGBox" parent="CSGCombiner2"] [node name="Window107" type="CSGBox" parent="CSGCombiner2"] [node name="Window106" type="CSGBox" parent="CSGCombiner2"] [node name="Window105" type="CSGBox" parent="CSGCombiner2"] [node name="Window104" type="CSGBox" parent="CSGCombiner2"] [node name="Window103" type="CSGBox" parent="CSGCombiner2"] [node name="Window102" type="CSGBox" parent="CSGCombiner2"] [node name="Window101" type="CSGBox" parent="CSGCombiner2"] [node name="Window100" type="CSGBox" parent="CSGCombiner2"] [node name="Window99" type="CSGBox" parent="CSGCombiner2"] [node name="Window98" type="CSGBox" parent="CSGCombiner2"] [node name="Window97" type="CSGBox" parent="CSGCombiner2"] [node name="Window96" type="CSGBox" parent="CSGCombiner2"] [node name="Window95" type="CSGBox" parent="CSGCombiner2"] [node name="Window94" type="CSGBox" parent="CSGCombiner2"] [node name="Window93" type="CSGBox" parent="CSGCombiner2"] [node name="Window92" type="CSGBox" parent="CSGCombiner2"] [node name="Window91" type="CSGBox" parent="CSGCombiner2"] [node name="CSGCombiner3" type="CSGCombiner" parent="."] [node name="CSGBox" type="CSGBox" parent="CSGCombiner3"] [node name="Room2" type="CSGBox" parent="CSGCombiner3"] [node name="Window1" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window2" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window3" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window4" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window13" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window12" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window11" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window10" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window5" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window6" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window7" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window8" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window9" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window18" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window17" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window16" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window15" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Window14" type="CSGBox" parent="CSGCombiner3/Room2"] [node name="Room3" type="CSGBox" parent="CSGCombiner3"] [node name="Window1" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window2" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window3" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window4" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window13" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window12" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window11" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window10" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window5" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window6" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window7" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window8" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window9" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window18" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window17" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window16" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window15" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Window14" type="CSGBox" parent="CSGCombiner3/Room3"] [node name="Room4" type="CSGBox" parent="CSGCombiner3"] [node name="Window1" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window2" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window3" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window4" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window13" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window12" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window11" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window10" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window5" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window6" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window7" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window8" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window9" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window18" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window17" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window16" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window15" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Window14" type="CSGBox" parent="CSGCombiner3/Room4"] [node name="Room5" type="CSGBox" parent="CSGCombiner3"] [node name="Window1" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window2" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window3" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window4" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window13" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window12" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window11" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window10" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window5" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window6" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window7" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window8" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window9" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window18" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window17" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window16" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window15" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Window14" type="CSGBox" parent="CSGCombiner3/Room5"] [node name="Room6" type="CSGBox" parent="CSGCombiner3"] [node name="Window1" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window2" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window3" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window4" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window13" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window12" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window11" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window10" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window5" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window6" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window7" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window8" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window9" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window18" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window17" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window16" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window15" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Window14" type="CSGBox" parent="CSGCombiner3/Room6"] [node name="Room7" type="CSGBox" parent="CSGCombiner3"] [node name="Window1" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window2" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window3" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window4" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window13" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window12" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window11" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window10" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window5" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window6" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window7" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window8" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window9" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window18" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window17" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window16" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window15" type="CSGBox" parent="CSGCombiner3/Room7"] [node name="Window14" type="CSGBox" parent="CSGCombiner3/Room7"] |
@TritiatedWater It would be better to upload a ZIP with a minimal reproduction project instead of pasting a scene file's contents. This makes it easier for people to test this locally 🙂 Also, are the faces coplanar? If so, this bug is similar to #21125. |
Oops. Sorry for the delay... |
This was also fixed with #36422. |
Godot version:
d0183ef Antergos x86_64
Issue description:
This is supposed to be a large box subtracted by three smaller boxes:
Steps to reproduce:
Minimal reproduction project:
The text was updated successfully, but these errors were encountered: