Views: 9,363,884 |
Home
| Forums
| Uploader
| Wiki
| Object databases
| IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search |
02-21-19 11:05 AM |
Guest: |
0 users reading Need help converting triangle formats! | 1 bot |
Main - Misc. ROM hacking - Need help converting triangle formats! | New reply |
Yoshimaster96 |
| ||
Member Normal user Level: 35 Posts: 93/345 EXP: 253978 Next: 25958 Since: 11-03-14 Last post: 57 days ago Last view: 19 hours ago |
GMA files store the vertices of a triangle as 3 XYZ coordinates. But for collision, LZ files store the vertices as follows:
Posted by LZ.TXT For clarification, first coordinate is (x1,y1,z1), second coordinate is calculated as (x1+dx2x1,y1+dy2y1,z1), rotated about first point by x angle, y angle, and z angle, in the order specified above. Third coordinate is calculated similarly, from (x1+dx3x1,y1+dy3y1,z1), rotated by the same angles. The ?s are unknown, but I think they're tangent and bitangent/binormal. So how would I convert from GMA triangle to LZ triangle? |
blank |
| ||
Normal user Level: 24 Posts: 125/129 EXP: 72062 Next: 6062 Since: 07-08-12 Last post: 1452 days ago Last view: 424 days ago |
This is python code that converts a triangle given by the vertices a, b and c:
Here v0 and v1 corresponds to your (dx2x1,dy2y1) and (dx3x1,dy3y1) and n0 and n1 corresponds to your unknowns. Also, have you noticed that the collision is divided into a grid? |
Yoshimaster96 |
| ||
Member Normal user Level: 35 Posts: 103/345 EXP: 253978 Next: 25958 Since: 11-03-14 Last post: 57 days ago Last view: 19 hours ago |
Posted by blank Tried to convert this to C# (as that is the language of my program), but I got stuck. How are cx, cy, cz, sx, sy, and sz defined? |
blank |
| ||
Normal user Level: 24 Posts: 126/129 EXP: 72062 Next: 6062 Since: 07-08-12 Last post: 1452 days ago Last view: 424 days ago |
cx, sx, cy, sy, cz and sz are floats and are the cosine and sine of the rotation angles. |
Yoshimaster96 |
| ||
Member Normal user Level: 35 Posts: 105/345 EXP: 253978 Next: 25958 Since: 11-03-14 Last post: 57 days ago Last view: 19 hours ago |
Posted by blankThose aren't given however. I'm trying to find the rotation angles. |
blank |
| ||
Normal user Level: 24 Posts: 127/129 EXP: 72062 Next: 6062 Since: 07-08-12 Last post: 1452 days ago Last view: 424 days ago |
You calculate the angles using cx, sx, etc. In my code snippet this is done with the reverse_angle function. |
Yoshimaster96 |
| ||
Member Normal user Level: 35 Posts: 106/345 EXP: 253978 Next: 25958 Since: 11-03-14 Last post: 57 days ago Last view: 19 hours ago |
You don't get it? I'm given coordinates, and am trying to find angles. I can't find sine and cosine of angles I don't know. |
Kinnay |
| ||
Member Normal user Level: 17 Posts: 7/66 EXP: 20768 Next: 3975 Since: 01-13-15 From: Netherlands / Germany Last post: 1297 days ago Last view: 1261 days ago |
Hmm, not sure if that's what you meant, but you can find angles in a triangle if you know the length of the sides with the cosine rule. You can easily calculate the lengths of the sides if you know the coordinates. |
blank |
| ||
Normal user Level: 24 Posts: 128/129 EXP: 72062 Next: 6062 Since: 07-08-12 Last post: 1452 days ago Last view: 424 days ago |
The code specifically shows how to calculate cx, sx, etc. without first calculating the angles. |
Main - Misc. ROM hacking - Need help converting triangle formats! | New reply |
Page rendered in 0.020 seconds. (2048KB of memory used) MySQL - queries: 28, rows: 120/120, time: 0.014 seconds. Acmlmboard 2.064 (2018-07-20) © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |