mirror of
https://github.com/luksamuk/engine-psx.git
synced 2025-04-28 21:38:02 +03:00
Add ring model and init RSD conversion tool
This commit is contained in:
parent
864505aa8d
commit
b0fd36db4f
6 changed files with 2208 additions and 0 deletions
429
assets/objs/common/ring.mat
Normal file
429
assets/objs/common/ring.mat
Normal file
|
@ -0,0 +1,429 @@
|
||||||
|
@MAT940801
|
||||||
|
# Number of Items
|
||||||
|
425
|
||||||
|
# Materials
|
||||||
|
0 0 F C 255 255 0
|
||||||
|
1 0 F C 255 255 0
|
||||||
|
2 0 F C 255 255 0
|
||||||
|
3 0 F C 255 255 0
|
||||||
|
4 0 F C 255 255 0
|
||||||
|
5 0 F C 255 255 0
|
||||||
|
6 0 F C 255 255 0
|
||||||
|
7 0 F C 255 255 0
|
||||||
|
8 0 F C 255 255 0
|
||||||
|
9 0 F C 255 255 0
|
||||||
|
10 0 F C 255 255 0
|
||||||
|
11 0 F C 255 255 0
|
||||||
|
12 0 F C 255 255 0
|
||||||
|
13 0 F C 255 255 0
|
||||||
|
14 0 F C 255 255 0
|
||||||
|
15 0 F C 255 255 0
|
||||||
|
16 0 F C 255 255 0
|
||||||
|
17 0 F C 255 255 0
|
||||||
|
18 0 F C 255 255 0
|
||||||
|
19 0 F C 255 255 0
|
||||||
|
20 0 F C 255 255 0
|
||||||
|
21 0 F C 255 255 0
|
||||||
|
22 0 F C 255 255 0
|
||||||
|
23 0 F C 255 255 0
|
||||||
|
24 0 F C 255 255 0
|
||||||
|
25 0 F C 255 255 0
|
||||||
|
26 0 F C 255 255 0
|
||||||
|
27 0 F C 255 255 0
|
||||||
|
28 0 F C 255 255 0
|
||||||
|
29 0 F C 255 255 0
|
||||||
|
30 0 F C 255 255 0
|
||||||
|
31 0 F C 255 255 0
|
||||||
|
32 0 F C 255 255 0
|
||||||
|
33 0 F C 255 255 0
|
||||||
|
34 0 F C 255 255 0
|
||||||
|
35 0 F C 255 255 0
|
||||||
|
36 0 F C 255 255 0
|
||||||
|
37 0 F C 255 255 0
|
||||||
|
38 0 F C 255 255 0
|
||||||
|
39 0 F C 255 255 0
|
||||||
|
40 0 F C 255 255 0
|
||||||
|
41 0 F C 255 255 0
|
||||||
|
42 0 F C 255 255 0
|
||||||
|
43 0 F C 255 255 0
|
||||||
|
44 0 F C 255 255 0
|
||||||
|
45 0 F C 255 255 0
|
||||||
|
46 0 F C 255 255 0
|
||||||
|
47 0 F C 255 255 0
|
||||||
|
48 0 F C 255 255 0
|
||||||
|
49 0 F C 255 255 0
|
||||||
|
50 0 F C 255 255 0
|
||||||
|
51 0 F C 255 255 0
|
||||||
|
52 0 F C 255 255 0
|
||||||
|
53 0 F C 255 255 0
|
||||||
|
54 0 F C 255 255 0
|
||||||
|
55 0 F C 255 255 0
|
||||||
|
56 0 F C 255 255 0
|
||||||
|
57 0 F C 255 255 0
|
||||||
|
58 0 F C 255 255 0
|
||||||
|
59 0 F C 255 255 0
|
||||||
|
60 0 F C 255 255 0
|
||||||
|
61 0 F C 255 255 0
|
||||||
|
62 0 F C 255 255 0
|
||||||
|
63 0 F C 255 255 0
|
||||||
|
64 0 F C 255 255 0
|
||||||
|
65 0 F C 255 255 0
|
||||||
|
66 0 F C 255 255 0
|
||||||
|
67 0 F C 255 255 0
|
||||||
|
68 0 F C 255 255 0
|
||||||
|
69 0 F C 255 255 0
|
||||||
|
70 0 F C 255 255 0
|
||||||
|
71 0 F C 255 255 0
|
||||||
|
72 0 F C 255 255 0
|
||||||
|
73 0 F C 255 255 0
|
||||||
|
74 0 F C 255 255 0
|
||||||
|
75 0 F C 255 255 0
|
||||||
|
76 0 F C 255 255 0
|
||||||
|
77 0 F C 255 255 0
|
||||||
|
78 0 F C 255 255 0
|
||||||
|
79 0 F C 255 255 0
|
||||||
|
80 0 F C 255 255 0
|
||||||
|
81 0 F C 255 255 0
|
||||||
|
82 0 F C 255 255 0
|
||||||
|
83 0 F C 255 255 0
|
||||||
|
84 0 F C 255 255 0
|
||||||
|
85 0 F C 255 255 0
|
||||||
|
86 0 F C 255 255 0
|
||||||
|
87 0 F C 255 255 0
|
||||||
|
88 0 F C 255 255 0
|
||||||
|
89 0 F C 255 255 0
|
||||||
|
90 0 F C 255 255 0
|
||||||
|
91 0 F C 255 255 0
|
||||||
|
92 0 F C 255 255 0
|
||||||
|
93 0 F C 255 255 0
|
||||||
|
94 0 F C 255 255 0
|
||||||
|
95 0 F C 255 255 0
|
||||||
|
96 0 F C 255 255 0
|
||||||
|
97 0 F C 255 255 0
|
||||||
|
98 0 F C 255 255 0
|
||||||
|
99 0 F C 255 255 0
|
||||||
|
100 0 F C 255 255 0
|
||||||
|
101 0 F C 255 255 0
|
||||||
|
102 0 F C 255 255 0
|
||||||
|
103 0 F C 255 255 0
|
||||||
|
104 0 F C 255 255 0
|
||||||
|
105 0 F C 255 255 0
|
||||||
|
106 0 F C 255 255 0
|
||||||
|
107 0 F C 255 255 0
|
||||||
|
108 0 F C 255 255 0
|
||||||
|
109 0 F C 255 255 0
|
||||||
|
110 0 F C 255 255 0
|
||||||
|
111 0 F C 255 255 0
|
||||||
|
112 0 F C 255 255 0
|
||||||
|
113 0 F C 255 255 0
|
||||||
|
114 0 F C 255 255 0
|
||||||
|
115 0 F C 255 255 0
|
||||||
|
116 0 F C 255 255 0
|
||||||
|
117 0 F C 255 255 0
|
||||||
|
118 0 F C 255 255 0
|
||||||
|
119 0 F C 255 255 0
|
||||||
|
120 0 F C 255 255 0
|
||||||
|
121 0 F C 255 255 0
|
||||||
|
122 0 F C 255 255 0
|
||||||
|
123 0 F C 255 255 0
|
||||||
|
124 0 F C 255 255 0
|
||||||
|
125 0 F C 255 255 0
|
||||||
|
126 0 F C 255 255 0
|
||||||
|
127 0 F C 255 255 0
|
||||||
|
128 0 F C 255 255 0
|
||||||
|
129 0 F C 255 255 0
|
||||||
|
130 0 F C 255 255 0
|
||||||
|
131 0 F C 255 255 0
|
||||||
|
132 0 F C 255 255 0
|
||||||
|
133 0 F C 255 255 0
|
||||||
|
134 0 F C 255 255 0
|
||||||
|
135 0 F C 255 255 0
|
||||||
|
136 0 F C 255 255 0
|
||||||
|
137 0 F C 255 255 0
|
||||||
|
138 0 F C 255 255 0
|
||||||
|
139 0 F C 255 255 0
|
||||||
|
140 0 F C 255 255 0
|
||||||
|
141 0 F C 255 255 0
|
||||||
|
142 0 F C 255 255 0
|
||||||
|
143 0 F C 255 255 0
|
||||||
|
144 0 F C 255 255 0
|
||||||
|
145 0 F C 255 255 0
|
||||||
|
146 0 F C 255 255 0
|
||||||
|
147 0 F C 255 255 0
|
||||||
|
148 0 F C 255 255 0
|
||||||
|
149 0 F C 255 255 0
|
||||||
|
150 0 F C 255 255 0
|
||||||
|
151 0 F C 255 255 0
|
||||||
|
152 0 F C 255 255 0
|
||||||
|
153 0 F C 255 255 0
|
||||||
|
154 0 F C 255 255 0
|
||||||
|
155 0 F C 255 255 0
|
||||||
|
156 0 F C 255 255 0
|
||||||
|
157 0 F C 255 255 0
|
||||||
|
158 0 F C 255 255 0
|
||||||
|
159 0 F C 255 255 0
|
||||||
|
160 0 F C 255 255 0
|
||||||
|
161 0 F C 255 255 0
|
||||||
|
162 0 F C 255 255 0
|
||||||
|
163 0 F C 255 255 0
|
||||||
|
164 0 F C 255 255 0
|
||||||
|
165 0 F C 255 255 0
|
||||||
|
166 0 F C 255 255 0
|
||||||
|
167 0 F C 255 255 0
|
||||||
|
168 0 F C 255 255 0
|
||||||
|
169 0 F C 255 255 0
|
||||||
|
170 0 F C 255 255 0
|
||||||
|
171 0 F C 255 255 0
|
||||||
|
172 0 F C 255 255 0
|
||||||
|
173 0 F C 255 255 0
|
||||||
|
174 0 F C 255 255 0
|
||||||
|
175 0 F C 255 255 0
|
||||||
|
176 0 F C 255 255 0
|
||||||
|
177 0 F C 255 255 0
|
||||||
|
178 0 F C 255 255 0
|
||||||
|
179 0 F C 255 255 0
|
||||||
|
180 0 F C 255 255 0
|
||||||
|
181 0 F C 255 255 0
|
||||||
|
182 0 F C 255 255 0
|
||||||
|
183 0 F C 255 255 0
|
||||||
|
184 0 F C 255 255 0
|
||||||
|
185 0 F C 255 255 0
|
||||||
|
186 0 F C 255 255 0
|
||||||
|
187 0 F C 255 255 0
|
||||||
|
188 0 F C 255 255 0
|
||||||
|
189 0 F C 255 255 0
|
||||||
|
190 0 F C 255 255 0
|
||||||
|
191 0 F C 255 255 0
|
||||||
|
192 0 F C 255 255 0
|
||||||
|
193 0 F C 255 255 0
|
||||||
|
194 0 F C 255 255 0
|
||||||
|
195 0 F C 255 255 0
|
||||||
|
196 0 F C 255 255 0
|
||||||
|
197 0 F C 255 255 0
|
||||||
|
198 0 F C 255 255 0
|
||||||
|
199 0 F C 255 255 0
|
||||||
|
200 0 F C 255 255 0
|
||||||
|
201 0 F C 255 255 0
|
||||||
|
202 0 F C 255 255 0
|
||||||
|
203 0 F C 255 255 0
|
||||||
|
204 0 F C 255 255 0
|
||||||
|
205 0 F C 255 255 0
|
||||||
|
206 0 F C 255 255 0
|
||||||
|
207 0 F C 255 255 0
|
||||||
|
208 0 F C 255 255 0
|
||||||
|
209 0 F C 255 255 0
|
||||||
|
210 0 F C 255 255 0
|
||||||
|
211 0 F C 255 255 0
|
||||||
|
212 0 F C 255 255 0
|
||||||
|
213 0 F C 255 255 0
|
||||||
|
214 0 F C 255 255 0
|
||||||
|
215 0 F C 255 255 0
|
||||||
|
216 0 F C 255 255 0
|
||||||
|
217 0 F C 255 255 0
|
||||||
|
218 0 F C 255 255 0
|
||||||
|
219 0 F C 255 255 0
|
||||||
|
220 0 F C 255 255 0
|
||||||
|
221 0 F C 255 255 0
|
||||||
|
222 0 F C 255 255 0
|
||||||
|
223 0 F C 255 255 0
|
||||||
|
224 0 F C 255 255 0
|
||||||
|
225 0 F C 255 255 0
|
||||||
|
226 0 F C 255 255 0
|
||||||
|
227 0 F C 255 255 0
|
||||||
|
228 0 F C 255 255 0
|
||||||
|
229 0 F C 255 255 0
|
||||||
|
230 0 F C 255 255 0
|
||||||
|
231 0 F C 255 255 0
|
||||||
|
232 0 F C 255 255 0
|
||||||
|
233 0 F C 255 255 0
|
||||||
|
234 0 F C 255 255 0
|
||||||
|
235 0 F C 255 255 0
|
||||||
|
236 0 F C 255 255 0
|
||||||
|
237 0 F C 255 255 0
|
||||||
|
238 0 F C 255 255 0
|
||||||
|
239 0 F C 255 255 0
|
||||||
|
240 0 F C 255 255 0
|
||||||
|
241 0 F C 255 255 0
|
||||||
|
242 0 F C 255 255 0
|
||||||
|
243 0 F C 255 255 0
|
||||||
|
244 0 F C 255 255 0
|
||||||
|
245 0 F C 255 255 0
|
||||||
|
246 0 F C 255 255 0
|
||||||
|
247 0 F C 255 255 0
|
||||||
|
248 0 F C 255 255 0
|
||||||
|
249 0 F C 255 255 0
|
||||||
|
250 0 F C 255 255 0
|
||||||
|
251 0 F C 255 255 0
|
||||||
|
252 0 F C 255 255 0
|
||||||
|
253 0 F C 255 255 0
|
||||||
|
254 0 F C 255 255 0
|
||||||
|
255 0 F C 255 255 0
|
||||||
|
256 0 F C 255 255 0
|
||||||
|
257 0 F C 255 255 0
|
||||||
|
258 0 F C 255 255 0
|
||||||
|
259 0 F C 255 255 0
|
||||||
|
260 0 F C 255 255 0
|
||||||
|
261 0 F C 255 255 0
|
||||||
|
262 0 F C 255 255 0
|
||||||
|
263 0 F C 255 255 0
|
||||||
|
264 0 F C 255 255 0
|
||||||
|
265 0 F C 255 255 0
|
||||||
|
266 0 F C 255 255 0
|
||||||
|
267 0 F C 255 255 0
|
||||||
|
268 0 F C 255 255 0
|
||||||
|
269 0 F C 255 255 0
|
||||||
|
270 0 F C 255 255 0
|
||||||
|
271 0 F C 255 255 0
|
||||||
|
272 0 F C 255 255 0
|
||||||
|
273 0 F C 255 255 0
|
||||||
|
274 0 F C 255 255 0
|
||||||
|
275 0 F C 255 255 0
|
||||||
|
276 0 F C 255 255 0
|
||||||
|
277 0 F C 255 255 0
|
||||||
|
278 0 F C 255 255 0
|
||||||
|
279 0 F C 255 255 0
|
||||||
|
280 0 F C 255 255 0
|
||||||
|
281 0 F C 255 255 0
|
||||||
|
282 0 F C 255 255 0
|
||||||
|
283 0 F C 255 255 0
|
||||||
|
284 0 F C 255 255 0
|
||||||
|
285 0 F C 255 255 0
|
||||||
|
286 0 F C 255 255 0
|
||||||
|
287 0 F C 255 255 0
|
||||||
|
288 0 F C 255 255 0
|
||||||
|
289 0 F C 255 255 0
|
||||||
|
290 0 F C 255 255 0
|
||||||
|
291 0 F C 255 255 0
|
||||||
|
292 0 F C 255 255 0
|
||||||
|
293 0 F C 255 255 0
|
||||||
|
294 0 F C 255 255 0
|
||||||
|
295 0 F C 255 255 0
|
||||||
|
296 0 F C 255 255 0
|
||||||
|
297 0 F C 255 255 0
|
||||||
|
298 0 F C 255 255 0
|
||||||
|
299 0 F C 255 255 0
|
||||||
|
300 0 F C 255 255 0
|
||||||
|
301 0 F C 255 255 0
|
||||||
|
302 0 F C 255 255 0
|
||||||
|
303 0 F C 255 255 0
|
||||||
|
304 0 F C 255 255 0
|
||||||
|
305 0 F C 255 255 0
|
||||||
|
306 0 F C 255 255 0
|
||||||
|
307 0 F C 255 255 0
|
||||||
|
308 0 F C 255 255 0
|
||||||
|
309 0 F C 255 255 0
|
||||||
|
310 0 F C 255 255 0
|
||||||
|
311 0 F C 255 255 0
|
||||||
|
312 0 F C 255 255 0
|
||||||
|
313 0 F C 255 255 0
|
||||||
|
314 0 F C 255 255 0
|
||||||
|
315 0 F C 255 255 0
|
||||||
|
316 0 F C 255 255 0
|
||||||
|
317 0 F C 255 255 0
|
||||||
|
318 0 F C 255 255 0
|
||||||
|
319 0 F C 255 255 0
|
||||||
|
320 0 F C 255 255 0
|
||||||
|
321 0 F C 255 255 0
|
||||||
|
322 0 F C 255 255 0
|
||||||
|
323 0 F C 255 255 0
|
||||||
|
324 0 F C 255 255 0
|
||||||
|
325 0 F C 255 255 0
|
||||||
|
326 0 F C 255 255 0
|
||||||
|
327 0 F C 255 255 0
|
||||||
|
328 0 F C 255 255 0
|
||||||
|
329 0 F C 255 255 0
|
||||||
|
330 0 F C 255 255 0
|
||||||
|
331 0 F C 255 255 0
|
||||||
|
332 0 F C 255 255 0
|
||||||
|
333 0 F C 255 255 0
|
||||||
|
334 0 F C 255 255 0
|
||||||
|
335 0 F C 255 255 0
|
||||||
|
336 0 F C 255 255 0
|
||||||
|
337 0 F C 255 255 0
|
||||||
|
338 0 F C 255 255 0
|
||||||
|
339 0 F C 255 255 0
|
||||||
|
340 0 F C 255 255 0
|
||||||
|
341 0 F C 255 255 0
|
||||||
|
342 0 F C 255 255 0
|
||||||
|
343 0 F C 255 255 0
|
||||||
|
344 0 F C 255 255 0
|
||||||
|
345 0 F C 255 255 0
|
||||||
|
346 0 F C 255 255 0
|
||||||
|
347 0 F C 255 255 0
|
||||||
|
348 0 F C 255 255 0
|
||||||
|
349 0 F C 255 255 0
|
||||||
|
350 0 F C 255 255 0
|
||||||
|
351 0 F C 255 255 0
|
||||||
|
352 0 F C 255 255 0
|
||||||
|
353 0 F C 255 255 0
|
||||||
|
354 0 F C 255 255 0
|
||||||
|
355 0 F C 255 255 0
|
||||||
|
356 0 F C 255 255 0
|
||||||
|
357 0 F C 255 255 0
|
||||||
|
358 0 F C 255 255 0
|
||||||
|
359 0 F C 255 255 0
|
||||||
|
360 0 F C 255 255 0
|
||||||
|
361 0 F C 255 255 0
|
||||||
|
362 0 F C 255 255 0
|
||||||
|
363 0 F C 255 255 0
|
||||||
|
364 0 F C 255 255 0
|
||||||
|
365 0 F C 255 255 0
|
||||||
|
366 0 F C 255 255 0
|
||||||
|
367 0 F C 255 255 0
|
||||||
|
368 0 F C 255 255 0
|
||||||
|
369 0 F C 255 255 0
|
||||||
|
370 0 F C 255 255 0
|
||||||
|
371 0 F C 255 255 0
|
||||||
|
372 0 F C 255 255 0
|
||||||
|
373 0 F C 255 255 0
|
||||||
|
374 0 F C 255 255 0
|
||||||
|
375 0 F C 255 255 0
|
||||||
|
376 0 F C 255 255 0
|
||||||
|
377 0 F C 255 255 0
|
||||||
|
378 0 F C 255 255 0
|
||||||
|
379 0 F C 255 255 0
|
||||||
|
380 0 F C 255 255 0
|
||||||
|
381 0 F C 255 255 0
|
||||||
|
382 0 F C 255 255 0
|
||||||
|
383 0 F C 255 255 0
|
||||||
|
384 0 F C 255 255 0
|
||||||
|
385 0 F C 255 255 0
|
||||||
|
386 0 F C 255 255 0
|
||||||
|
387 0 F C 255 255 0
|
||||||
|
388 0 F C 255 255 0
|
||||||
|
389 0 F C 255 255 0
|
||||||
|
390 0 F C 255 255 0
|
||||||
|
391 0 F C 255 255 0
|
||||||
|
392 0 F C 255 255 0
|
||||||
|
393 0 F C 255 255 0
|
||||||
|
394 0 F C 255 255 0
|
||||||
|
395 0 F C 255 255 0
|
||||||
|
396 0 F C 255 255 0
|
||||||
|
397 0 F C 255 255 0
|
||||||
|
398 0 F C 255 255 0
|
||||||
|
399 0 F C 255 255 0
|
||||||
|
400 0 F C 255 255 0
|
||||||
|
401 0 F C 255 255 0
|
||||||
|
402 0 F C 255 255 0
|
||||||
|
403 0 F C 255 255 0
|
||||||
|
404 0 F C 255 255 0
|
||||||
|
405 0 F C 255 255 0
|
||||||
|
406 0 F C 255 255 0
|
||||||
|
407 0 F C 255 255 0
|
||||||
|
408 0 F C 255 255 0
|
||||||
|
409 0 F C 255 255 0
|
||||||
|
410 0 F C 255 255 0
|
||||||
|
411 0 F C 255 255 0
|
||||||
|
412 0 F C 255 255 0
|
||||||
|
413 0 F C 255 255 0
|
||||||
|
414 0 F C 255 255 0
|
||||||
|
415 0 F C 255 255 0
|
||||||
|
416 0 F C 255 255 0
|
||||||
|
417 0 F C 255 255 0
|
||||||
|
418 0 F C 255 255 0
|
||||||
|
419 0 F C 255 255 0
|
||||||
|
420 0 F C 255 255 0
|
||||||
|
421 0 F C 255 255 0
|
||||||
|
422 0 F C 255 255 0
|
||||||
|
423 0 F C 255 255 0
|
||||||
|
424 0 F C 255 255 0
|
1477
assets/objs/common/ring.ply
Normal file
1477
assets/objs/common/ring.ply
Normal file
File diff suppressed because it is too large
Load diff
5
assets/objs/common/ring.rsd
Normal file
5
assets/objs/common/ring.rsd
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#RSD data describing the relationships to the PLY, MAT, and texture files
|
||||||
|
@RSD940102
|
||||||
|
PLY=ring.ply
|
||||||
|
MAT=ring.mat
|
||||||
|
NTEX=0
|
34
tools/fixedpoint/fixedpoint.hpp
Normal file
34
tools/fixedpoint/fixedpoint.hpp
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#ifndef FIXEDPOINT_HPP
|
||||||
|
#define FIXEDPOINT_HPP
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
template<class Type, size_t Scale>
|
||||||
|
class FixedPoint
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
const static Type factor = 1 << Scale;
|
||||||
|
Type data;
|
||||||
|
public:
|
||||||
|
FixedPoint(double value) {
|
||||||
|
*this = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
FixedPoint&
|
||||||
|
operator=(double value) {
|
||||||
|
this->data = static_cast<Type>(value * factor);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Type
|
||||||
|
getRaw() const {
|
||||||
|
return this->data;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef FixedPoint<int32_t, 12> psxfixed32;
|
||||||
|
typedef FixedPoint<int16_t, 12> psxfixed16;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
17
tools/fixedpoint/fixedpoint_test.cpp
Normal file
17
tools/fixedpoint/fixedpoint_test.cpp
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include "fixedpoint.hpp"
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
double value1 = 3.1416;
|
||||||
|
double value2 = 1.0;
|
||||||
|
|
||||||
|
FixedPoint<int32_t, 12> fvalue1(value1);
|
||||||
|
FixedPoint<int32_t, 12> fvalue2(value2);
|
||||||
|
|
||||||
|
std::cout << "Value 1: " << value1 << " -> " << fvalue1.getRaw() << std::endl
|
||||||
|
<< "Value 2: " << value2 << " -> " << fvalue2.getRaw() << std::endl;
|
||||||
|
return 0;
|
||||||
|
}
|
246
tools/fixedpoint/parse_rsd.cpp
Normal file
246
tools/fixedpoint/parse_rsd.cpp
Normal file
|
@ -0,0 +1,246 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include "fixedpoint.hpp"
|
||||||
|
|
||||||
|
struct SVECTOR
|
||||||
|
{
|
||||||
|
int16_t vx;
|
||||||
|
int16_t vy;
|
||||||
|
int16_t vz;
|
||||||
|
//int16_t _unused;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CVECTOR
|
||||||
|
{
|
||||||
|
uint8_t r;
|
||||||
|
uint8_t g;
|
||||||
|
uint8_t b;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Face attributes */
|
||||||
|
#define TYPE_TRIANGLE 0x0 // ARGS: FLAG V0 V1 V2 __ N0 N1 N2 __
|
||||||
|
#define TYPE_QUAD 0x1 // ARGS: FLAG V0 V1 V2 V3 N0 N1 N2 N3
|
||||||
|
#define TYPE_LINE 0x2 // ARGS: FLAG V0 V1 __ __ __ __ __ __
|
||||||
|
#define TYPE_SPRITE 0x3 // ARGS: FLAG V0 W H
|
||||||
|
|
||||||
|
union Face
|
||||||
|
{
|
||||||
|
struct {
|
||||||
|
uint8_t flag;
|
||||||
|
uint16_t param[8];
|
||||||
|
} gn; // Generic
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint8_t flag; // flag == 0
|
||||||
|
uint16_t iv0;
|
||||||
|
uint16_t iv1;
|
||||||
|
uint16_t iv2;
|
||||||
|
uint16_t _unused0;
|
||||||
|
uint16_t in0;
|
||||||
|
uint16_t in1;
|
||||||
|
uint16_t in2;
|
||||||
|
uint16_t _unused1;
|
||||||
|
} triangle;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint8_t flag; // flag == 1
|
||||||
|
uint16_t iv0;
|
||||||
|
uint16_t iv1;
|
||||||
|
uint16_t iv2;
|
||||||
|
uint16_t iv3;
|
||||||
|
uint16_t in0;
|
||||||
|
uint16_t in1;
|
||||||
|
uint16_t in2;
|
||||||
|
uint16_t in3;
|
||||||
|
} quad;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint8_t flag; // flag == 2
|
||||||
|
uint16_t iv0;
|
||||||
|
uint16_t iv1;
|
||||||
|
uint16_t __unused0;
|
||||||
|
uint16_t __unused1;
|
||||||
|
uint16_t __unused2;
|
||||||
|
uint16_t __unused3;
|
||||||
|
uint16_t __unused4;
|
||||||
|
uint16_t __unused5;
|
||||||
|
} line;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint8_t flag; // flag == 3
|
||||||
|
uint16_t iv0;
|
||||||
|
uint16_t iv1;
|
||||||
|
uint16_t iw;
|
||||||
|
uint16_t ih;
|
||||||
|
uint16_t __unused2;
|
||||||
|
uint16_t __unused3;
|
||||||
|
uint16_t __unused4;
|
||||||
|
uint16_t __unused5;
|
||||||
|
} sprite;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ========================
|
||||||
|
|
||||||
|
enum MaterialType
|
||||||
|
{
|
||||||
|
MATERIAL_TYPE_C, // "C": Flat colored
|
||||||
|
MATERIAL_TYPE_G, // "G": Gouraud shaded
|
||||||
|
MATERIAL_TYPE_T, // "T": Textured no-color
|
||||||
|
MATERIAL_TYPE_D, // "T": Textured, flat colored
|
||||||
|
MATERIAL_TYPE_H, // "H": Textured, gouraud shaded
|
||||||
|
|
||||||
|
// MATERIAL_TYPE_W, // "W": Repeating textures, no-color
|
||||||
|
// MATERIAL_TYPE_S, // "S": Repeating textures, flat colored
|
||||||
|
// MATERIAL_TYPE_N, // "N": Repeating textures, gouraud shaded
|
||||||
|
};
|
||||||
|
|
||||||
|
union MaterialInfo
|
||||||
|
{
|
||||||
|
MaterialType type;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
MaterialType type;
|
||||||
|
uint8_t r0;
|
||||||
|
uint8_t g0;
|
||||||
|
uint8_t b0;
|
||||||
|
} f;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
MaterialType type;
|
||||||
|
uint8_t r0;
|
||||||
|
uint8_t g0;
|
||||||
|
uint8_t b0;
|
||||||
|
uint8_t r1;
|
||||||
|
uint8_t g1;
|
||||||
|
uint8_t b1;
|
||||||
|
uint8_t r2;
|
||||||
|
uint8_t g2;
|
||||||
|
uint8_t b2;
|
||||||
|
uint8_t r3;
|
||||||
|
uint8_t g3;
|
||||||
|
uint8_t b3;
|
||||||
|
} g;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
MaterialType type;
|
||||||
|
uint8_t u0;
|
||||||
|
uint8_t v0;
|
||||||
|
uint8_t u1;
|
||||||
|
uint8_t v1;
|
||||||
|
uint8_t u2;
|
||||||
|
uint8_t v2;
|
||||||
|
uint8_t u3;
|
||||||
|
uint8_t v3;
|
||||||
|
} t;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
MaterialType type;
|
||||||
|
uint8_t u0;
|
||||||
|
uint8_t v0;
|
||||||
|
uint8_t u1;
|
||||||
|
uint8_t v1;
|
||||||
|
uint8_t u2;
|
||||||
|
uint8_t v2;
|
||||||
|
uint8_t u3;
|
||||||
|
uint8_t v3;
|
||||||
|
uint8_t r0;
|
||||||
|
uint8_t g0;
|
||||||
|
uint8_t b0;
|
||||||
|
} ft;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
MaterialType type;
|
||||||
|
uint8_t u0;
|
||||||
|
uint8_t v0;
|
||||||
|
uint8_t u1;
|
||||||
|
uint8_t v1;
|
||||||
|
uint8_t u2;
|
||||||
|
uint8_t v2;
|
||||||
|
uint8_t u3;
|
||||||
|
uint8_t v3;
|
||||||
|
uint8_t r0;
|
||||||
|
uint8_t g0;
|
||||||
|
uint8_t b0;
|
||||||
|
uint8_t r1;
|
||||||
|
uint8_t g1;
|
||||||
|
uint8_t b1;
|
||||||
|
uint8_t r2;
|
||||||
|
uint8_t g2;
|
||||||
|
uint8_t b2;
|
||||||
|
uint8_t r3;
|
||||||
|
uint8_t g3;
|
||||||
|
uint8_t b3;
|
||||||
|
} gt;
|
||||||
|
|
||||||
|
// Won't care about the rest
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ShadingType
|
||||||
|
{
|
||||||
|
SHADING_TYPE_FLAT, // "F"
|
||||||
|
SHADING_TYPE_GOURAUD, // "G"
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Material
|
||||||
|
{
|
||||||
|
// Can be in 0-5 format, specifies polygons 0 thru 5 use this material
|
||||||
|
uint16_t ipolygon;
|
||||||
|
uint8_t flag;
|
||||||
|
ShadingType shading;
|
||||||
|
MaterialInfo info;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ========================
|
||||||
|
|
||||||
|
struct PlyData
|
||||||
|
{
|
||||||
|
char magic[11];
|
||||||
|
uint32_t num_vertices;
|
||||||
|
uint32_t num_normals;
|
||||||
|
uint32_t num_faces;
|
||||||
|
SVECTOR *vertices;
|
||||||
|
SVECTOR *normals;
|
||||||
|
Face *faces;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MatData
|
||||||
|
{
|
||||||
|
char magic[11];
|
||||||
|
uint16_t num_items;
|
||||||
|
Material *data;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ========================
|
||||||
|
|
||||||
|
struct RSDModel
|
||||||
|
{
|
||||||
|
char magic[11];
|
||||||
|
PlyData ply;
|
||||||
|
MatData mat;
|
||||||
|
// TODO: NTEX and TEX[n] for textures
|
||||||
|
};
|
||||||
|
|
||||||
|
// ========================
|
||||||
|
|
||||||
|
void
|
||||||
|
parse_rsd(const char *filename, RSDModel &model)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
parse_ply(const char *filename, PlyData &ply)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
parse_mat(const char *filename, MatData &mat)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
// Read and parse RSD file and its acessories
|
||||||
|
// Convert RSD to actual engine model format (still don't know what to do here...)
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue