Reply to thread

More partcut research and testing.


TLDR:

- First 4 bytes in each cut group is a magnitude and the last 12 bytes make up a vector with x, y, and z components.

- Normally, magnitude would be multiplied by the vector. Here, it just does a translation.

- Bounding box seems kind of useless. In my testing using Orchid Falls LB, the bounding box only comes up to the chest and doesn't include arms.

- Y axis is fucking weird.

- Translating to Blender is still very much a work in progress



Longer version:


I created quite a number of tests using standard unit vectors for each of the axes in both directions (6 vectors in total), along with a variety of magnitudes, giving me an initial 12 test suites. There are a couple more test suites in the zip file, along with trying to recreate a partcut in Blender from the 3rd partcut of Ruby Floretta (the arm cut). All the pacs used in testing and the result images are in the zip.


- lowest point of nude body is about (0, 1, 0) (x, y, z)

- center of cutting plane starts at (0, 0, 0)

- camera is in front of body, facing body


Y starting position:     ground level; complete body visibility affected by which way plane is facing

[CODE]

yneg mag neg        body always invisible

yneg mag pos        plane moves up body, "below" plane is visible      

ypos mag neg        plane moves up body, "above" plane is visible     

ypos mag pos        body always visible                                  

[/CODE]



Y is being weird. Doesn't seem to be consistent with other axes.  Note: I re-checked the files and retested this multiple times with the same results.


  

What I'm seeing:

[CODE]

n/n    -> p/n            direction -1 * y -> p        position n * n * -1 -> n

n/p    -> p/p            direction -1 * y -> p        position n * p * -1 -> p

p/n    -> n/p            direction -1 * y -> n        position p * n * -1 -> p

p/p    -> n/n            direction -1 * y -> n        position p * p * -1 -> n

[/CODE]


  

X with magnitude of 0:    body is vertically bisected into left and right sections

- when using the words "right" and "left" in these results, these are camera right and camera left

[CODE]

xneg mag neg        plane moves camera left; vertices camera left of plane are visible

xneg mag pos        plane moves camera right; vertices camera left of plane are visible

xpos mag neg        plane moves camera right; vertices camera right of plane are visible

xpos mag pos        plane moves camera left; vertices camera right of plane are visible

[/CODE]



x-positive is camera right

x-negative is camera left


Z with magnitude of 0:    body is vertically bisected into front and back sections

- when using the words "front" and behind", "front" means towards the front of the body and "behind" towards the back of the body

[CODE]

zneg mag neg        plane moves towards front of body; vertices in front of plane are visible

zneg mag pos        plane moves towards back of body; vertices in front of plane are visible

zpos mag neg        plane moves towards back of body; vertices behind plane are visible

zpos mag pos        plane moves towards front of body; vertices behind plane are visible

[/CODE]



z-positive is towards camera

z-negative is away from camera

 

conclusion: magnitude does not change the direction of the vector, only its position, with initial position being the vector components.

conclusion: vertices on the facing side of the plane are cut


For Blender: (Global Coordinates) Flip X, Swap Y and Z


Top


Are you 18 or older?

This website requires you to be 18 years of age or older. Please verify your age to view the content, or click Exit to leave.