From 21e2e19e679f1bfd65c44aa79029055401e40a18 Mon Sep 17 00:00:00 2001 From: Joshua Sigona Date: Thu, 11 Nov 2021 10:12:46 +0900 Subject: [PATCH] Automatically clamp vertex texture coords between 0.0~1.0 --- models/staircase.mtl | 11 +++++ models/staircase.obj | 85 +++++++++++++++++++++++++++++++++++ models/staircase.wings | Bin 0 -> 2374 bytes src/sig/utils/OBJReader.java | 5 ++- 4 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 models/staircase.mtl create mode 100644 models/staircase.obj create mode 100644 models/staircase.wings diff --git a/models/staircase.mtl b/models/staircase.mtl new file mode 100644 index 0000000..ae3d397 --- /dev/null +++ b/models/staircase.mtl @@ -0,0 +1,11 @@ +# Exported from Wings 3D 2.2.6.1 +newmtl Cube1_auv +Ns 19.999999999999996 +d 1.0 +illum 2 +Kd 1.0 1.0 1.0 +Ka 0.0 0.0 0.0 +Ks 0.19 0.19 0.19 +Ke 0.0 0.0 0.0 +map_Kd Cube1_auv.png + diff --git a/models/staircase.obj b/models/staircase.obj new file mode 100644 index 0000000..7463841 --- /dev/null +++ b/models/staircase.obj @@ -0,0 +1,85 @@ +# Exported from Wings 3D 2.2.6.1 +mtllib staircase.mtl +o Cube1 +#14 vertices, 24 faces +v -1.00000000 0.0000000e+0 -1.00000000 +v -1.00000000 0.0000000e+0 1.00000000 +v -1.00000000 1.00000000 -1.00000000 +v -1.00000000 1.00000000 1.00000000 +v 1.00000000 0.0000000e+0 -1.00000000 +v 1.00000000 0.0000000e+0 1.00000000 +v 1.00000000 1.00000000 -1.00000000 +v 1.00000000 1.00000000 1.00000000 +v -1.00000000 1.00000000 0.0000000e+0 +v 1.00000000 1.00000000 0.0000000e+0 +v -1.00000000 2.00000000 -1.00000000 +v -1.00000000 2.00000000 0.0000000e+0 +v 1.00000000 2.00000000 0.0000000e+0 +v 1.00000000 2.00000000 -1.00000000 +vt -3.3222222e-3 -3.8777778e-3 +vt -3.3222222e-3 0.49612222 +vt -2.1666667e-3 3.5555556e-3 +vt -2.1666667e-3 0.50355556 +vt -1.5888889e-3 6.4011111e-2 +vt -1.5888889e-3 0.56401111 +vt -1.5888889e-3 1.06401111 +vt 1.3530843e-16 3.2959746e-17 +vt 1.3530843e-16 0.50000000 +vt 5.7777778e-4 3.3888889e-3 +vt 5.7777778e-4 0.50338889 +vt 2.0539683e-3 -2.5777778e-3 +vt 2.0539683e-3 0.49665556 +vt 2.0539683e-3 0.99588889 +vt 2.2111111e-3 0.49387778 +vt 2.2111111e-3 0.99387778 +vt 5.5222222e-3 5.0888889e-3 +vt 5.5222222e-3 0.99548889 +vt 0.50000000 0.50000000 +vt 0.50000000 1.00000000 +vt 0.50128730 0.49665556 +vt 0.50128730 0.99588889 +vt 0.99592222 5.0888889e-3 +vt 0.99592222 0.99548889 +vt 0.99667778 -3.8777778e-3 +vt 0.99667778 0.49612222 +vt 0.99783333 3.5555556e-3 +vt 0.99783333 0.50355556 +vt 0.99841111 6.4011111e-2 +vt 0.99841111 0.56401111 +vt 0.99841111 1.06401111 +vt 1.00000000 3.2959746e-17 +vt 1.00000000 0.50000000 +vt 1.00000000 1.00000000 +vt 1.00052063 -2.5777778e-3 +vt 1.00052063 0.49665556 +vt 1.00057778 3.3888889e-3 +vt 1.00057778 0.50338889 +vt 1.00221111 0.49387778 +vt 1.00221111 0.99387778 +g Cube1_Cube1_auv +usemtl Cube1_auv +s 1 +f 1/17/ 5/23/ 2/18/ +f 1/12/ 9/21/ 3/13/ +f 2/18/ 5/23/ 6/24/ +f 2/15/ 6/39/ 4/16/ +f 2/35/ 9/21/ 1/12/ +f 3/6/ 5/31/ 1/7/ +f 3/6/ 14/29/ 7/30/ +f 4/16/ 6/39/ 8/40/ +f 4/36/ 9/21/ 2/35/ +f 4/10/ 10/38/ 9/11/ +f 5/32/ 10/19/ 6/8/ +f 6/8/ 10/19/ 8/9/ +f 7/30/ 5/31/ 3/6/ +f 7/33/ 10/19/ 5/32/ +f 7/33/ 14/34/ 10/19/ +f 8/37/ 10/38/ 4/10/ +f 9/21/ 12/22/ 3/13/ +f 10/25/ 12/2/ 9/1/ +f 11/14/ 3/13/ 12/22/ +f 11/5/ 14/29/ 3/6/ +f 12/2/ 10/25/ 13/26/ +f 12/3/ 14/28/ 11/4/ +f 13/20/ 10/19/ 14/34/ +f 13/27/ 14/28/ 12/3/ diff --git a/models/staircase.wings b/models/staircase.wings new file mode 100644 index 0000000000000000000000000000000000000000..ae4ed70867c7cc7c519ac4a65a54f595dac351c9 GIT binary patch literal 2374 zcmb7`Yd8}O8^`M{Pe=1g5)nDX(kMOhpPcI-Zn2-t>ca%maL;GMQuyH;q&5tVzQvD;>7RT7ty2V96qg;X^0U2~Ql74!{JAdf zXia6t)wagd$)*l)XsfVRA+~r^scziok@tJML zJgfA;#nacYfHXLY_kDzx{a}qSw8deGxxCbvwd+k>EvquWG@~(_11R>1cfmr2oR}N` zn2xp>pOL;!)!7v2~ZcLx! z(ZK{k=D?SryG#nB;l<#5R7R&?p0{=A1~%ipEO?VF-yN-F6xeFnIs;Ni4;}IDx35p6 zZ4LZOX(9#misH7g1ZKAVv{ppN7sEZhXR6bD5jTU=+U$Z_hMhshK|TAK3p8xl^RIv* z)#fAvwP0lgwoBe8Bhcp&&6g3ohuW$2;7rFc>IweYA|>`-tK8zSm)Z;ehUAlQgq-co zs)$P)Pq$7FAG3LX3O~j^nyY8!y)sipMJ`4&KR|I#;r_*I!+(us0etXkHfz)@zm%$1 z1ukxE$#E{F7`mA1gXq;Itdb&ESXjcPSc97U=z!(4)JPH~d-m4+fU!BN5I-5*TvgFz zYHqKH%46xGTw=&3YwzW`X(F?YPv3}wPAlCz)o{~>&8c9_urzLZwCke^{hBA*dl=msdLU(OSmvxG!IEge6x54IG5 za@(%xsLVXS)M(VThM!bxs(E>lYQ-bfMfQV7rEMN8TOv?ZiTSN`<_YJe#VRTB@6KFx zs7W7gYaF{ZRm*=}*pynQ<5qN5yH4MK<@Rm2p_v)p$N3g{;YrPcldrb`kE^9~7L?ad znRM9Z$F?9>E}9Pv%Y-E;;UW}7D=$oDyfPt=A1)~uQ zNr=df{U{~h5!TG%QnblJPy#01hho%wnD%iq2ucWE_`->`&MBI(Ov2w>m1&+FRPFu> zi~0Pj{|%c-3CS-z2CHUw-ZGfqILyg@+VW?i%yPstP0^7^Pq3irkDdnp2aQiQLis+= zc(C#rm&MRzV!=%{SZNMb*6xtq*X2*dI_1n(av9gq%oSi%Z|*_v?a+2ClywX>@{zGyuNwu z0EodTsN}6<7)&prcOnuOs?Xo zcPbEl2*_ndhSySk0YA~AY7LvMkz4mJ!(})7BQ&Z&$>iJ2&7NK%%#Iu~xQFjx_FcW6 z@OkLWr8Z9>zuVa+dWF1xtvKm5jLgX)WSHbIZRN^umMILllJB;}4u+9y9*9CnZDouA zA2bjjR@$njqpk14XxjbE^d7m5M_IUEXKhb*2+Hm)u|B_kg`myq^Q+A>EIAsWm+v2@ zl2LRkFlbrt?JdVAX%z=eoE@zXW!`o&^wAp*Nmx5<6IO|>^uFezkftu|-iMGFdtEYH zeM7WXhSn!;o6%WAV!2dwZv&5`$q@WUS@3CxFutppS^QjuyD`7yvKy5xQ6(P7!b9)H z@TKsNz}&|>B<`DL$>N-2%xZMwDYPDCqDW#gE@g-3|Jumk#I?M=l>Qow2M1lYz8kZ; zZ->PBpJ>{|0wVbP7GKf}L-Zb9mvRFy|KmhuLE;nQ$aXAEjM^S;v0xBw9u17)#1AZlfXqa*udbK6VFIFjou~u*u+M zF>W;p%-|ASsT}zT;ZFKLr^KGCQYaxQI67vQI4}bJMWR0=0yAhf$2S@Wh~o1Mwj^@T z4)B;&8c-0qz5SfVNh=T@K%#XR9NnFW{+pJ#YK}f%1CQ|~LhL+0H6mpNHzRCEQ))dQyQrS9iJ25c*fUcN_4l;@@=s2G$BFegFUf literal 0 HcmV?d00001 diff --git a/src/sig/utils/OBJReader.java b/src/sig/utils/OBJReader.java index 7c51e29..046b19b 100644 --- a/src/sig/utils/OBJReader.java +++ b/src/sig/utils/OBJReader.java @@ -1,6 +1,5 @@ package sig.utils; -import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; @@ -21,7 +20,9 @@ public class OBJReader { vertices.add(new float[]{Float.parseFloat(split[1]),Float.parseFloat(split[2]),Float.parseFloat(split[3])}); } else if (split[0].equalsIgnoreCase("vt")) { - texs.add(new float[]{Float.parseFloat(split[1]),Float.parseFloat(split[2])}); + float u=Math.min(1,Math.max(0,Float.parseFloat(split[1]))); + float v=Math.min(1,Math.max(0,Float.parseFloat(split[2]))); + texs.add(new float[]{u,v}); } else if (split[0].equalsIgnoreCase("f")) { if (textured) {