View Issue Details

IDProjectCategoryView StatusLast Update
0000067DarkRadiantMap Editingpublic21.08.2022 11:55
ReporterSneaksieDave Assigned Togreebo  
PrioritynoneSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Summary0000067: Patch Splitting
DescriptionI'm not even sure this is possible, but if so, this would be a big one. :)

Basically, the same way the clipper operates on brushes, the same tool or one similar to clip patches. I assume it would be a matter of deleting the current patch and then rebuilding the same geometry with two patches split along the cut line. Sounds simplistic enough, and I imagine D3 would handle it - you can make some really flexible geometry with patches - but I guess the math could be a nightmare.

Example: A round tower with windows cut out of it. Currently this must be done by hand-shaping all required patches. It is managable, but tricky and time consuming. With this functionality, it'd be a matter of making a cylinder, and then a few appropriate cuts.
TagsNo tags attached.

Activities

orbweaver

orbweaver

29.01.2007 11:13

developer   ~0000046

It should be possible to cut patches by creating two new patches, with matching edge vertices along the cut line. However, it cannot be guaranteed that the curvature will match the original patch, so there might be visible bump along the join.
greebo

greebo

29.01.2007 12:08

administrator   ~0000047

Last edited: 29.01.2007 12:08

I believe keeping the curvature is very hard to do, as the tesselation of the patch consists of a lot of bezier curves. Cutting through the curve means that you have to reversely calculate two patches that end exactly at that edge, which I doubt to be possible with appropriate accuracy.

Maybe it would be possible to split a patch along its control vertices (as Orbweaver suggested), but this could be hard as well.

Imagine a 90° patch where you cut along the "corner" vertices. The new patches would form a perfectly sharp edge (similar to the turning off the "smoothing" of faces in Blender).

greebo

greebo

21.06.2007 10:00

administrator   ~0000715

I set this to suspended, I don't quite believe that this is feasible.
nbohr1more

nbohr1more

24.07.2014 13:05

developer   ~0006800

Can this be marked as resolved:

http://forums.thedarkmod.com/topic/16090-patch-splitting-in-dark-radiant-new-version-29-mar/

?
SteveL

SteveL

24.07.2014 15:50

reporter   ~0006801

Last edited: 24.07.2014 15:51

I didn't know about this tracker issue when fiddling with that script.

To be clear, the script doesn't solve the hardest problem discussed here, which would let a patch be cut along any line. It only makes a cut along an existing row or column of control vertices.

But it does let you do the thing requsted in the original OP -- cut window and door holes in a round cylinder, as demo'd in the video. You just have to add some control verts first. In my map which I make very slow progress on, I have round towers with thick walls and cross-shaped loopholes on the outside that the player can apparently look in and out of ("apparently": there's a cheat for performance). You just have to set up your control verts first and then texture it before cutting up the patch because you'll have no chance of getting the textures lined up again if you try to adjust it in any way after snipping the cylinder into 40-odd parts.

Bikerdude

Bikerdude

03.11.2020 12:39

reporter   ~0012859

Last edited: 03.11.2020 12:39

Can this be looked at for DR 2.9..? that said this is a very old bug so I will check if it is even relevant any more.
Dragofer

Dragofer

21.08.2022 11:55

developer   ~0015186

Patch splitting along control vertices has been implemented for a long time. Patch splitting along any plane accurately would not be feasible, as greebo says, due to the bezier curve nature of patches.

Issue History

Date Modified Username Field Change
28.01.2007 19:38 SneaksieDave New Issue
29.01.2007 11:13 orbweaver Note Added: 0000046
29.01.2007 11:13 orbweaver Status new => acknowledged
29.01.2007 12:08 greebo Note Added: 0000047
29.01.2007 12:08 greebo Note Edited: 0000047
21.06.2007 10:00 greebo Note Added: 0000715
21.06.2007 10:00 greebo Status acknowledged => suspended
24.07.2014 13:05 nbohr1more Note Added: 0006800
24.07.2014 15:50 SteveL Note Added: 0006801
24.07.2014 15:51 SteveL Note Edited: 0006801
03.11.2020 12:39 Bikerdude Note Added: 0012859
03.11.2020 12:39 Bikerdude Note Edited: 0012859
21.08.2022 11:55 Dragofer Assigned To => greebo
21.08.2022 11:55 Dragofer Status suspended => closed
21.08.2022 11:55 Dragofer Resolution open => fixed
21.08.2022 11:55 Dragofer Note Added: 0015186