From 7eb5a325a034fd5815a1cbe9a2118e4408ba74bc Mon Sep 17 00:00:00 2001 From: Jeremy Hu Date: Tue, 9 Oct 2018 10:19:12 +0800 Subject: [PATCH] Add MetalicRoughness material manager Besides adding the PBR material manager, this commit hide some unnecessary features such as toggle wireframes and toggle normal smooth. Add a regenerate button to indicate mesh is generating by showing a spiner, user can click this button to regenerate if the final result is not good. Please note that, we generate the texture map by default compared to before we only generate texture map when user export glTF result. Current uvunwrap library cann't handle bad mesh very well, so it will crash on the wires model. --- dust3d.pro | 21 ++ resources.qrc | 1 + resources/material-demo-model.ds3 | Bin 0 -> 249664 bytes shaders/default.core.vert | 1 + shaders/default.vert | 38 +- shaders/pbr-qt.frag | 45 ++- src/ambientocclusionbaker.cpp | 1 + src/gltffile.cpp | 5 +- src/imageforever.cpp | 41 +++ src/imageforever.h | 13 + src/materialeditwidget.cpp | 307 ++++++++++++++++ src/materialeditwidget.h | 58 +++ src/materiallistwidget.cpp | 343 ++++++++++++++++++ src/materiallistwidget.h | 52 +++ src/materialmanagewidget.cpp | 63 ++++ src/materialmanagewidget.h | 26 ++ src/materialpreviewsgenerator.cpp | 122 +++++++ src/materialpreviewsgenerator.h | 30 ++ src/materialwidget.cpp | 107 ++++++ src/materialwidget.h | 36 ++ src/meshgenerator.cpp | 52 ++- src/meshgenerator.h | 3 +- src/meshloader.cpp | 106 +++++- src/meshloader.h | 23 +- src/meshresultcontext.cpp | 52 ++- src/meshresultcontext.h | 9 +- src/meshresultpostprocessor.cpp | 1 + src/modelmeshbinder.cpp | 129 +++---- src/modelmeshbinder.h | 8 +- src/modelshaderprogram.cpp | 44 +++ src/modelshaderprogram.h | 14 + src/modelwidget.cpp | 15 +- src/modelwidget.h | 2 - src/skeletondocument.cpp | 282 ++++++++++++-- src/skeletondocument.h | 96 +++-- src/skeletondocumentwindow.cpp | 152 ++++++-- src/skeletondocumentwindow.h | 2 +- src/skeletonparttreewidget.cpp | 13 +- src/skeletonparttreewidget.h | 3 +- src/skeletonpartwidget.cpp | 66 +--- src/skeletonpartwidget.h | 3 +- src/skeletonsnapshot.h | 1 + src/skeletonxml.cpp | 60 +++ src/skinnedmeshcreator.cpp | 4 +- src/texturegenerator.cpp | 250 +++++++++++-- src/texturegenerator.h | 25 +- src/texturetype.cpp | 5 + src/texturetype.h | 79 ++++ src/theme.cpp | 1 + src/theme.h | 1 + .../meshlite_ffi.dll | Bin 516608 -> 515072 bytes .../meshlite_ffi.dll.lib | Bin 16346 -> 16346 bytes .../meshlite_ffi.dll | Bin 427520 -> 427008 bytes .../meshlite_ffi.dll.lib | Bin 16618 -> 16618 bytes 54 files changed, 2498 insertions(+), 313 deletions(-) create mode 100644 resources/material-demo-model.ds3 create mode 100644 src/imageforever.cpp create mode 100644 src/imageforever.h create mode 100644 src/materialeditwidget.cpp create mode 100644 src/materialeditwidget.h create mode 100644 src/materiallistwidget.cpp create mode 100644 src/materiallistwidget.h create mode 100644 src/materialmanagewidget.cpp create mode 100644 src/materialmanagewidget.h create mode 100644 src/materialpreviewsgenerator.cpp create mode 100644 src/materialpreviewsgenerator.h create mode 100644 src/materialwidget.cpp create mode 100644 src/materialwidget.h create mode 100644 src/texturetype.cpp create mode 100644 src/texturetype.h diff --git a/dust3d.pro b/dust3d.pro index 60f56e1d..c4fc6ba1 100644 --- a/dust3d.pro +++ b/dust3d.pro @@ -224,6 +224,27 @@ HEADERS += src/motionpreviewsgenerator.h SOURCES += src/animationclipplayer.cpp HEADERS += src/animationclipplayer.h +SOURCES += src/texturetype.cpp +HEADERS += src/texturetype.h + +SOURCES += src/imageforever.cpp +HEADERS += src/imageforever.h + +SOURCES += src/materialeditwidget.cpp +HEADERS += src/materialeditwidget.h + +SOURCES += src/materiallistwidget.cpp +HEADERS += src/materiallistwidget.h + +SOURCES += src/materialmanagewidget.cpp +HEADERS += src/materialmanagewidget.h + +SOURCES += src/materialpreviewsgenerator.cpp +HEADERS += src/materialpreviewsgenerator.h + +SOURCES += src/materialwidget.cpp +HEADERS += src/materialwidget.h + SOURCES += src/main.cpp HEADERS += src/version.h diff --git a/resources.qrc b/resources.qrc index 12c324c5..ea6258e0 100644 --- a/resources.qrc +++ b/resources.qrc @@ -6,6 +6,7 @@ resources/tree-branch-more.png resources/tree-branch-open.png resources/tree-vline.png + resources/material-demo-model.ds3 shaders/default.vert shaders/default.frag shaders/default.core.vert diff --git a/resources/material-demo-model.ds3 b/resources/material-demo-model.ds3 new file mode 100644 index 0000000000000000000000000000000000000000..be193198b7495ea5373bec59fb038bb19053306c GIT binary patch literal 249664 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
p`)8A^XM# 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

qjxPruS95g;i(SrB&d>o-h_Yc1n- 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�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 Rw`L}sVf(~>>=Bpk{{ilT(wzVR delta 127879 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%0DyS_Xbad^6+S#q^ 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

$9D*ETGAor~5Y*pXlP)Iqc# z{sibY>b)Y{`Vr{AV3t4IIu@uU^5ExyYbgbV-*V1t&F4!XpYvJ+dJyzMYqjPXtk7JF z*6PixLi~vn2*7nEtd?b_i^F??zC38j3Q^QSGN62hX?*g*j#1__=|f?GbZ8o3$yJXCOvT014ie; zn-*aQn@w=rhn&`eZw2atF#H#gulGNj5a&FcZU1LG0B>EIZQrL8a9)jbnZed$rUo8( z;O~h?S|9xCifsFLg1jfPt@WUY^Kp3OlScdDFCCqPA9%`~kHDcbVkY2)UvqR5JZ+^p zAB6K(nHq>sS#4U&3lFO`+7Dm1#;E{Yv(|~Tj!P2gN@;|zTc2%}q66^DfUf8LPsF$l zCQ=Okv!ff~Pd8D^o0($akG5o6RU}Tp-ngCE=K4RNxeDU&@TVy>cTPWi!!uk3#1Fy? zfW}z_ZoAcVK_0wwEB&w1H4!-eSu-d+aNs#(Nc=g_$WOwv8=T7wp7SUAkF;TU^7Ce% z2*ZP4Fs+q<@7QMIN8nF@@=C%_yy#p7A;j?iGb7v&pYa!Gl6i^#e%U1O!7CgcgU4?- zg=>Tl0U7nYl5PFh@qf`L+`+`hf5*s2=fRs@IaZO*!w0f+j3IcS+h`v=;uyXY5XTR%JI?4hT;4gy zs^EMOwoc5kFU75}tA|M|KC36QWewM&7x6UMN`kF$y@v$ojj(l6j#cs)lM;L(n2+|u zD?uK*7JdU1pqt<}Cz}k~!ahff$2qzb4m(=BEaU`g;2(f8I}G>fWekaZjuzh!l-VM9 zT<;vK7+nf~13c)1aKR}ij`(6n4}+IDdMUgCsB1zS5v8ZnTrvdD0s5d0e%aAG;r4|& z)=c8$!xMp8A^@*<^fq|j89CNcoj=p85U)dPrMOmqZ=^-VTH!4%X2JIHmWxPQx&1HT zdo229C@23pPm}xAtUvB{FU`u>7G3tP`?Qc}O=L}MO>#}{TL0RLwGC@`tj%3lu+G0O zu&!oZ-MYlOo_#udiMoS-)d_ za=o>oV1su8=8F}_0q!ZQ>$Xs)K;yjUgKXISQ}Xzqh*`c z?pd2yTd*#+F21gDU2a`ctr@D{K{K}07p*T|zh}LVrmNaeLvj2xTFs{TrX8Ddw-jtC z++u}utV#-y7xU8^!B{vJS(#XwTxqS!Tjg05TwT37M*S133u}vN{k0XfL5fgAOBAdv zqyVwC@wHX!s_D{(bxrG<=~UXJ&Rxx2iWs2rBJ1l|U}ME{?7c;I&;`vaJ?p&dI2XseE9BqOxW#JBv0`XX%&WrE zZ7sA}&B}(AJ60C1@~tXe6NQ>i4wQ!QJ)zGi&` zeV#{;`!@JDL^i}WSWQd{)@YU~#59~@45sFlEexm9RdtliTAfFcDrnZY-LRfoFO3?e kQR`|OYny7DYppe&HHB-M*H~+FX=Lx(A_m;@_uYs89}~+udH?_b diff --git a/thirdparty/meshlite/meshlite_unstable_vc14_x64/meshlite_ffi.dll.lib b/thirdparty/meshlite/meshlite_unstable_vc14_x64/meshlite_ffi.dll.lib index edaefe0e63526e66724095e7f98a06973d87c999..c03dbd4bce74ec0b30b77585972f609beb171bd5 100644 GIT binary patch delta 1678 zcmZuxOKTHR7@fYfWAhM`CQZ|HQk!I&PLs?`GR>pu0}&M~F}e_>f)y+-x~MLtNOwXJ zOy#2sQOL53pc0B3MRDV*|Dd|iRgn^c3s-KucW&lBQnSms-*@gg=lkv)ZXIszgijZB zL$~r-(3L>5u;%6e?|<-a@W5qyxT6PQSMm0_AAa25Q#`%&0I`Hj%ZifU>Y4jbdnHt~ z@>!CkUU;K~;newKz8XA}XKk8^$y^UT_@V}(74zW(*p6N5#$`;IM3g;Hiv>W5Pt%HO zeA@1M62D0?thN>Rxp0??y85Jk2`c9TkQ$fab!ialX+JH-SFa_=)tiZn0$$7dhA>GA zkqk)vV7MbNqQ-@q6_xZpQm=405!F(!Qmh&ef;&fQ*Qcr!$M<`)1aD7W`!BwcWVmCv zon(d)W=CWpoi6CnBCtK`11&Kouw74+TmDX0C|=b%@oBdhMwHr&S;Xi?i~(qmj=&wW zJ3G?-Y=-&7;mbvGlbkA3Rvv%M;n=^E;ja{*VGxjFJAVVI@T2^1$P@59E#~j6%~4uh zo8=7Aa4*Aftl?`1|CSN8)$^o&Szq8Z6MvudC5rK@Y8Z^0pJT&d^TPPBNw_sr#2xJo z^8}Bbeg^p-ho(6UOIbruz;C94lDRvUfO?Y6yR&U}dU%FWyCw+V2V79eu>^75ON*%6 z%dxHGw^g%5+^K)Z;n-zlmP|`S_r=hCFXS*pBk~Ddw0~CQjpRwciTV?E|1ebZ%r~B% zGo|-=eo8?&m?s|80-F@?;Z=d%#c!fg6t|$=+1y(30?ixOBizn1fwavaZL5QR_z@X` znG*Y=^1PcR#>;QOaf#mmvR&(Q?Dg<3S%=@H5WMwxpcRrqDT~v+T_%n<%IrJ9C-kSx z62c0c_wZnz?HaCklKVN&lIwPCA;-;e1${e3x6WHSSYU4X6y_F1e0Py(ZY*a00UrX& A2mk;8 delta 1678 zcmZuxO=}ZT6rH3Wc5Ir6Nt32&GO0~6O{e*qWb)OdDIzLXVss%$1uIxwbWvPNk?w>d z*vh2~QOL53pc0A*g5t(i|3P)3D=8%e7p~m+-n`8FNX;(i-Fx0S=iWC*TSr^FfiuN| zq3d}a(u%iTTyydN4?em!c;E^>+)evnPjL+lZ+$q}SDbcwfLQ#xVT8$V_3VSEb_o@& ze3m514sVnI3|~0mtHC*Q&ZL>1$=T?^7u5%yh#MckcI0wDE@R3#qO`$I#0yGvj#f0H zb7t3*=q-w2wVkNjfxA@HH6RU2P(Sa5L`a6$EmJ+v5Ky%r-^Z^kYO_)gY6ib)cP zWJnr>%vca6)TmIiqLSW6>QxRWqB`m|iZ!A>7|W5`_1Ol+@%^qW!Mn59|BG+L8EzTw z#+hM+nGqRCrvq$S5Vj}Xpv9&Hwi`)u%ip;=#T!~LKJ7Nch*Fa=ix^#q(F@(l3An5G zXGgl9%`=}ke7Qt!k`oom%HxkY9Q(I2JWlW#`T!|5^Uoj^9+dx0c^aN4#r&t=kPA_triN88E(i^i#-p2-^BMEM+r-0)8_Ul+3-U7&PN--o0%z)59|in>9Z8KIDLUjwOieUK&K* zevWM=zpa`f;#U1T4#zHoc`_{x-4{Xky^sSC4$7x=(f+*18!V819ree|{&8p&m~T8i zYfA46{FHofSS23RBAXQN;Z>2{#c!fg61Sk++uWVfMVdFRN4S|~3~8H3+EzzA@FO@1 z^JVr$<#{*DjF;bllQO>nWV_ZE*z4h6avFY@{qWZ5gpOYZr6NxEPK7w$sIczHg1()iTk9VVLty=0I)1Az* diff --git a/thirdparty/meshlite/meshlite_unstable_vc14_x86/meshlite_ffi.dll b/thirdparty/meshlite/meshlite_unstable_vc14_x86/meshlite_ffi.dll index 9d80ecdbcf93673da7097d3ec5e766e334a0bfa4..a86d907659a96285260747e2c9dcf6183a578a46 100644 GIT binary patch delta 111242 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 z zRm9!^mjb54@-@!DeD-C{tb`;n^DRs5H zoJ3P_!q4>jN!Zv2G^1ZjUv-h* zu*H(;I!N6-R0bPKU|$JTnkA+S(PDgmMr&IALU}+nj{O*xzy^gVzfynGp!Bj_dfK4$ zh+O(TD`l^T)Yam~j}a)Um$Ops4BwSEuc*#|&BIQm$R3r`m{R1e*mgmhYuq=(Y@#Ve z9(d*jy0;Wkk{9VMxTM?uC{I4{#eiZzPxxTR<-^*~L==x=@ChBfj=_6$@GS;!(81;{ z0A8wtyD)f;4o+b3R2{smMLHCW)D@I4f@mH5n!!DFu$LFW0XldTgWYs+9)p|c;9CsF zI@q)&z%LKg2^f;j3hwI)@)>+t2VZ6I2_5Xx3gA6DIE%p>bZ|L?m+D{-Z-D3M;K>Z0 zs)N%#e4t>Yu0YM;XdS$f!98_wLTi8nbnp`fyXoLCUx1tF;4B7X9bCfTmj|^PNH12j zfr9&W1;t?uzN~|@7<@tppJnhK9qi!;@CF?`nZZkS@OB2z(ZSCdJXH%fD=Uumhk}vX zg0kXu430iXxBLVP;gXlM{3jHP*IlK)=TJ}k)GygMHD|w+m;4p~jC7c^IqjZFbI+mP z7GV%9z*>_1QXqWMP3(A%K7?ZYbRP990}t7N#+RY)b{k+c{vE!h#PkU2d>&@>cslGn3dOed z=(p!lYej?L54E}Qg`wk+?Vxwhqc*twB{jc*B0E6a@LK^*SjCFm2zUcLsaM7<0Rp8Q zs4!8PFrP8ktQThv7&F(vaeHxVI$eGN4X|hn+ZJ`=nTj4~>Dvovh$5#OYt2;b0r?O* z>>~OJeMMW9qlo%YSCqKRoX#qTAhGf#-BONP2Yhx$@{s+_bK)uuzjxAQ4NUTJmASq6 zmtW+Mqu89G^)Ep>x$-pab_pEsiPJRp5@dVUpQdS-AYnG^G+lQIS-1MOKz=xguV$r> zr9_?Pjb)xx!&;en-u~jzRTMth;)`ctYJM3xwTfgBBBZ+K!t1=Da-?dFGD&m`xISy89CzTFKO{*q_(s?Ri_llsnt$474a$Ra0LanTG$En5^9BS^WVs zzN~xr1sc}OuO~jxAAU1-rH)ro(}oi|vc_&fV`S)3`)2j?`E1KR7R0PEN=%WSKUoxc z6`3P!{)!I2hI-)KFX%VdK#TLI(=*ple~WKQ>Y9O=M_g7yTU|#n*32r3J8`Q3ZGd4k zjuOMB(G}OhDlUVH>a4<6Jb8@%eH{%~j?fhk5(gZki9bX3cUe#R-Os3H!>#Q;upgux z`L34U{u#A58wW6aBSCb90;dYp+^nNq06!2)BP(EY@#$MSxdO%GorSc#0=i#QNMBT- z(VlE-JMoNh#y;a9A5Gn@El99soCiFkslT8;*yR=51#Cv|{embK*3hqSz{2Qy0o`%~ z%@Ia!f*$t0iF(DeDmVYmtE>*zX3bW}1#Pqi*>ZuCHuIb$7c`O@{o@JmTfJShGI0qU z5~de#!g)BqSIB%tJ#0xE--2j+Cv9^Jtuj8j#E6#NLfJU?IPHHM-r@;9PU6 zdK)#jJ^2UMv}PcjCe#FiHRpuhii#EssKp(4y=O6vyo1ILhamCCqB>p-Hg6=hSr2E&c?0sO5#v1RlDn{( z;p<6D?!xxRrFAU3c9$K=eMOxskv}e2S`=Lg8$fUnrt}^K=Ptld_;mPmP zxfL)VS^Ad$)+uc0DI{vBNvgqF1vOM1f5WyAyFe&sdA!nCBLuS#9i;?`2fwE#k5Ny& z|2NwEF=Vh$i*(#$SPw6!`HxX2maW?oD9C?xwe@Aix_)YpPKHdTelM?$W5=P-}YU zH`p6+*iLaZa#Pf7+Oi+a&kz zwoP*XaN3Ex|2yAF?!TV)VSV?%`#a8tzWaB|klg>B$HaW8y*hG&xD$R+luZDSX4g#s zW>A@Qh*QkiC`|xcw)3jE2bX_|8Md4?(r;<|iw&ffPSU<<#=fRkwsPW=WJ+37>hU|w zUYT3z=f5MDCL<&aSB&(TEc(OmXdv1`n?6O&;nMLbY}Id}u}@J9T=qVN7n`=w3JLe& zDV%lRO#42A?EPjs=^3&jR~PxTj@>LtS*pl9`8xStt_l`e>}Q~XJ8rP;#ZD3hYn7%w zV|z;9(xcB{61(&*z5NVE8TpplKS!R*@!v{}ORSaA=g(o#2all6FVFznH(UjiJ2lg{Z@M0A+GCf1WuI}qdb$EEcwpg60#d9L|zAwWs2>mr9 z?Y_}`I_w=X6|$!S|Ks1m!I;S-X#P929fxI7)q9v$i{{d??@?bz#>m`r@(fn@(r`qc z7!?bT^1Y3W5%ll(u-*8AcKHAsx*lotyAQC%5-NeyQyJ(>vua`fDyKVYQK0F~Ark9k zlme0on@uU^Y@8T6`Ls1IC?g+nHQ?wf6VuU*u(A@&|pfd#A9^YQg zfc`jaDXnLM<2o`XLr?LEy6!cXM59Ebgjk00mN3;1K)aw^DA!^vXn_fKwnmv?Pq4f3 zhK+U&-_UqE$B2C-&I_*t;Y@I^riC%!lhRCcm$UbcVb-#O4b!N4_zm=P-}?9pj?bqq zrnnh^olNmp+=g;X=w4Gi4ZAI(J`M0mKs|4OI|(mSSbWhC&xV3s4e>+#R}!UWxH%p^ zogOvAqlGs~K+r;g-(#-@)Uy%x;I{8>u)fSx`@d(i3v2k6a3G>Tpfi z$#t+7gmiYcOrqwRV?$Z8zFBe|;+atTV+B(Vw3gfmP}o8UPJ-VB*yiCYL+697?QiTmQwb7++% z_Q6HNsErl=4Bweehg;z&oI9KDwZd-j;B_mUi)_cou~to`4~*pUtrPwU7&^lSFULEx zsktp4%!MuARW#8SFGVPvB0KCPydMK?x!d6o#luuCtaIemga)dWYPGnymqpUvhQW<+fIq33B24<+3zx>uxB!IQ=8PXA zd?b}Fb;aFK0lnmk9q_aMMbBKB)^5_N?$|?^3!hJ*tK9Ku9Pt$e=hYH#P*WcdoPzCE z(2X8=2>yO1t@XeKc=r^#1`fO6ucy$f&9Mi|Yd6Q9=5f-mLu%w#Qk-ZTPwa>$(+E%O zVDnW6=uZBU3(t>3pcJkaFHEKxp4c88rv-5K!Lgzbp91E?kF_siAz0~L$o(5N1w#;b z+@+U1adR|={^f~X@u<7h4t@jzznMe_w!p3NPm^d?3)~aWokY*J08<=3i9T(CCqc9r z?}c6Pg^4u73){Bd2NshX>B8)*hq)BDVHUJaQHU$+P_QDhjS_Pv($ikp87EAnkJ$CI ziAD8W;&BKUxYDVua8ERy?r()-1dABZn$jDu#6mLt&Kobokx4Yz2hYGHkskKJfjBOa zzVN|o@sV*wOIzbn$R%bDGZfR@m;pJZonzF=kO+*{sKV7bv%8cV0P zfllxbrEA*2clxnftm()A}Tf>R!76Cx~W)vM5fZYSHj^ZX;Rrv=?Fk8SY^i7a7(7#(DxsX6@ zu{N8B==K1}Brq46w1WN=fbIEx{}r?v?h{yffc)%{GpeR=e3td0Q0GCcWaQdUA#0XP zt3Rd^w%i7F&C<*7iw6Rh=PPU|lEn%3+nj_GBVfOCAn*Zj0>$ z81+3)t*C;-0<}7qe@-sF&q`4uk{;W?oW5y`eH*lckL>X2lKOSPw(#ay??CK^M;xJF z24Y_!suQ@owSk~jbcCJ{1ow1})&yb)vn}i(LZqL#?ocgtZiju0r}Q_Xk?r7fau4bB zcHpKWI>M9R07h_RcURis*5(sNe}JB_L%co6Y}3ki7=F)l^at9uJ#Hf`2m-<}?P0Wz zWOs|&5?G)KalVHQHF-($ZSmzC97t(ibgtf8UvN?vkZ`@8|b< z|NQaEJ?DAmnP+C6dFGjC=FBp8;xqc7I|=eQgT|(ED1guq9vn)VA!Bhph_9I53W&@e zBwWC8Yjjf&(p_wX2=u2Oq>C_W!ZX@93~aY|2P!Izv=>e6ZF(4b-Xi*T80p>68wiy> ze2~@MV7>#b^kEnp=8I=&^Kh8OMgEA>D;!xq*9~t|!%6#wZH7P~D=r{AviA@-x;dQm z5$m$h-@-{(%?+zhPojnGvKo4kTCU%g`t>Cd4dhO-EK&BY`@;@&P6Y8L7egqGAotv1 zEZtKYDEl!Q9Nb80ZxV}Ua zQ}-CslsgHHaYzfwR(=zbFX5|Nx$CWdvU-t+>dNuu(IwR0++)>HtQBwxRm5-rXTC7L zn6^;c<;Mz!HCQ%3Cb(hQyh6KjA>A26nl)o>@KuGXBEh~)|J*`)C5ANT1^R3ueZt;Z zA>LX@y<El230?Z(qd_cbM>4(WzF5+Ol#Qdm$C6>1H8eVo zEF))z(z9`J9rrDvfdffTax;NW90-r#b{o2TAo;8=GJ^GJwI+W^rwk%dOyfKg-P9SZ(GY4`DYL4+m zcj94RW~`Hq1L?B_vVs)H(G`hgIhm0}eTR^A?@O^Y(-+6m6+=h_Sr|)8hmdH@(=;-Y z{vMC>Ik{9~iHS%XYLqY07mcK^<`ms*BtMY9+tLL|=!csQqD4t$t{C_E-?r7MWD;GM zOu}E_%|hM33bn7Le~md)3t0POOJs_wgwxtXN!Ml{)@9u^8>I1WIt7QN;q?9i)Hsxk zB?&Qf_fXQL`M#-2=dxlw=t}sON*G@o4*j?~l(ecLVSgl?|Bnd=r;r^QtQ1cn-MPLR za=2bqV1*jnS2znj7@Lf-Pp#$hV9e)Xl1GC@7Tk%=P>>bn3O&eG#k=^b!mLaQaJsTz zssUC-K|keS7o35t5IQ@X)hgi|N&qXVv*##(m7W*|_dr{p{(BhN028}36{qM&c|l{h zr;gq;`;!XWsWxw zt$b8}Jm~F5^?PM76^Fxvd6}YORv*djtg}X;Gc7D$5KQw%V<7!y*y=GPkxUJv#xXE6 z!C`d87-A$p^`O@nenk%&JeI_fs2Tw zy6)6JgZMNL;5Utkm9HE~!V!fuB?Bha(4DT$K)1D}75ys%O{B0J^%(~jekAQTj(8W& zDd;G+#XNrDCk1WD?*WX)r|?#Rw(hJEYH?`7I5HT^mS3MhaCQlcY#=`lr`N}kH1eH4 zXR0|yy}^_89!?jG2fDk8Zmpo-Pp1JBfL`5F$wGb?h0EV*^vDD>&fr<3@Nm|)8_THS5&px1|U&c5A69r3OCcQ~o5G{F`oaF1k)FWvw+;-v747>2Swm4?4ED6W4 zw(4LOnN1#cpkc3&Nn}L_y8aco9_}4z%gJPx>FxGR9|Cz>RcHT{hg=^Y&RjI0`~YAV zit>?F;5j%Gzfw5l;sU$xi!z8tIa;|<Cx;oKASJJ%aq?PNfXV zuT+73AW)YK%jU}A<%26{xabcwC{y{2CJqbeABGk--U-JuIN1r$VsL*4tV{>v9t1wp z43Xml?M+K5w&dZG8=xH1$94-AA~&z2#-W4nYQj2v-;Q(0KjxobaxM2KWkweX)M7)~ z?(%*mnA^J_rx2W(yMXq}A1&xDxZ(1gQt>?7+1eG747I`W4dlC z39SF`4&3lw#iQ_ExDWAiqj!KOyIfhdYRmHBVD;Hx&Wdz@fzFzWrn;pOcbuV=v8zSYa6n{2DCQtCL-@|!;|@pKb#Y!m*jvy zanjnmm|DHd+4uDzI9tF)h=noKoI|>6zP29CL4T<|)tWOpLT}|_%-QD=FF8qiL_5tS zp=q0#su7(-HOm-$A4|g&)hc?*;2TajI2`afCp?P5Y~7nmzm&my>eHf`WG_ZgQ(wcV zWX6ZI^ficJ?G|P?bjzX)nQRs+XbTl)VeV%O4V*>V)WL$(1KhSP6f#|-Wkx^y=2BQw+K*4d;4VD=o`1+vci#vIa1 zLt1@6OXos?W7pB&=8}%Y+d@6(kq+dW@icNCOr9{3zA_J**6Aa{NqOH|FOQ7TkU!qFW-TBdwaBUjI&U$FS5`iJ zlTOPPla@g(ltW9LM!;bJ>|ba?NW5{5R{HqnOfMUO9hY@G_E#7@sdAxOs%GGLuj1A`Dg7B4`~QxST9^0e@OfLdfWz z)WbsVf*9kMy$U0oc0doWAb%)O6F>*vARCCj79Fz^oBMfUjAr{vKBb+#ifnL_Hh+_R z4Q{`_NjBF8rQ9c!t}Gzh#suc6vn+|C{KSn{m8;9=2sbBq$|EmLO0)^n7SJ(`wFafYMAEj-9ux=hrTF869h3*Uif^yU*9@*ZjIhwJ@DJo#I-MEthD z3V$`ayc>&1){@bLaN4Fmr~h&i;v&D14#I!{x??TLAk+S0Oq=@js7!dOrJdsne;WBN z<~VQssStkhXC;ok9E2Kwdgfg+o+PM*O)3*^@w0QB+>(xe53TMf4StU_^I7(|5`gJ7A6vzqK zq;fN_;4*RKNmU|gY?Z2nt* z;2HK_m6p=9ZRib`3WaAEH4*+jT~k=TD1tPbK_BfTBWdz_GIV6K8>~CYoA05?ZBe3L zWazq0aS5O5WZRw8K-WErSxTVu)1%IkyWKoBlHFGK&DZqWcJhKf@ziW3@g>=G$u2Sy z6Z}KhljOcju022bN0^XgW2zdH|6wo9*-Zus>(v6DoXXP>9^o0dcsP0GE1t;6M?XD3 zk(WMyP9lSpz#7Zg@WAR_&LVc7q7?C^Db%`&>>T;hkIzr`;-2RuyI%>cG1(PGbmeY) zx=qO|EZN@d!3%v-DfGq5&rdye_j6M3paj;K`j``|H;~SxY$?sygel}KI%^X?A!X5v zACa9SVt;sks#Y9a|Bv;#Rtc;z)jss;VW$eCGKjllJ_W6p)7B)8dawXW<%G zfu{J>#blv*iEFsVswmmTi_gzg?2hMTs>2Q%x{VAXch&MvQp!7tUfhN{j{WZWtgYLg z!+Na}SYvsAI?Sc)Cegc_A?1lwy9H97NMG7PcJ{Sm=InWmw%sSsNwwZ5G-W3Wq?c&k zM_@gkuK5U`T_-5&bKnsDa0?ka;{5Ydpj)4l!fYk5#&WIr6ypwu^V`b{p~NTfs$93{RqWglsR#l>0saNh+E0NY32(yXG( zt>it=KVa3((XO}Tp8JtT6cMkik1)y8CG&GUlZ!ay_i7TyIXjl$2wbET@*tZm zFNrQ*$%~AIH4Yg`(d#YIc_q=Clmc(HM6Y+0{uG47NHdiJBNw?%2l5iT%x_(i7nJ@@ z?;IfEwKF6^FMV5>cnGJE9K`%vDIIr^yrBuA_YRV^tfmiv(kMPsY?d&f|Z!=!Nomzlj5@6eFL#J~LTFjs)$>Sml!O<4Ck3vDp z=)7ZO3AP#5I!@m5{EV5{N~U1kS-RtRWd(V?uqNqDD5U=1k*2N+5~&a}X<#pXwKh*X zo*>PKE4u%=C3<^Fbddr$Zpc=2ztkxI-1j*pKl!GbALmq3sT}Z;(((_UK+9jLwtVp< zX+j=gz2-?QYg$Y{I*CuAPc~DF6(%CNguL!K4!u_8^1tv6y;?%NCb%?^K`U!2f2bYH zOkwW4nzX}1A*q1u{z)$*F; zFlTu+Ly@EqGD9)(9}I<8M{G_G<>mgr8H;;i)r`eiGo4pT44qlF;Zgsiv3P>z$~>G8 z3=3Nx3aq`$DUYUSAdiDI9ns^ML0q9NEw9llqQ{p zaMJ02&O$ir*H#ry;<0MNnY5@T;TRWH6HZ%&@P8njlObFYlerWW3@ zG+5^%JcC^Sni|ggnKH$o6c#LLLMALPe0PbNoTP<;OBa&nua{2pJb>PyvNdU6 z%=;SG?lx*+O_J%nu$nckuMnzzOHJ0JdCY%hICge^j^S9f00yJwGGB24GOt*UD~jc~ z=2V8%i)bm!>GX?Gh6t*;M2^;Z{VkMrzLB0iO}yxhOJt4bQCR=V&PLwBYI?C|eoduc zIKP@+q$`B~BOCI#1J{it7u~otPt8g7c}uNaU+H50vFTji!avI6#NWRTkj|BxjSmgD z3^`#j_GR)RdAyQ7JPQjOiN2t+bnX;YlTK}%G7Wo$yMbMu?z^+AN$2EjPWV4)HIv$L z$+U5iOpLN)33=!QKDX#q2^_zUQOC7~^r!1&DlxuJ6K{}w;p21$WRmXb4BJNm|dj>k?H>|M>UPib4MnW`g=%wF? zL@pQ52{QQzhx*qqCkH)q^Q$)auG{I{+r-PYGf13TlR(0zvIgInp1w`$x%$@)6>8S% zN7dw4jlTKc4#0ML(|&g<55QJTp~W{zK>Il}c$O-gzPbF9PBt5WnOECQ-|XMuYDX@k z-76r3MKrSle&w&z=${p28ws06x7@<%X!DU}^O!KWBhp{_KR=VF0>%zPj75jaZ*Hw7 zj~!Vx$%AIqERQJ)HIv8Wn&k29wnH9)mKgt%m>|XBtUe%Z(5#v~Zof>&-68({&DqbB zN3eYP`18X3<%;=qXc_5NYnfxb-t>1qUJv;ly~JF4n}c32>-FaICby8mDGU7yuWZAy0@N0JKiU42X>rNgCt<5 zl#hXs)RE_f`^!E`?}x4=>m5xCjcP~PJQjKII(=myF_SHs^zlBdMD@sIUe~*xIWK{G zrSWU>hH6t;Qzq0Tr8GPC`BPcJ3K=B#znjWB5aeOVX*7NDtj2F zwbcgoYe&^2hypwIpSz-Q3duipMYP^i;;T9r+bz+XN}_iuT~hU4NQ09z|8Yk1myxvR zbu6F=$W}U?=~l(PSg95tQyWdOn~2S9kk!-Z)|2Rg>Q7UqHu^uq)W&pXc`G%IzO3Q>0KKTmB0C?x-*sf{DGo+F7(>3nK~T%WAW@Z7SIVJ@4lrx}It`rl&|gU

  • gSd=P3V9}qxE8@;L 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 delta 112682 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

    B?WinY(CEBY~3o@ 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

  • kikq7C1^1YR}_WR9n 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 QImage(*m_textureImage)); + //m_resultMesh->setNormalMapImage(new QImage(*m_textureImage)); } this->moveToThread(QGuiApplication::instance()->thread()); diff --git a/src/gltffile.cpp b/src/gltffile.cpp index cffed23e..a25ab188 100644 --- a/src/gltffile.cpp +++ b/src/gltffile.cpp @@ -8,6 +8,7 @@ #include "version.h" #include "dust3dutil.h" #include "jointnodetree.h" +#include "meshloader.h" // Play with glTF online: // https://gltf-viewer.donmccurdy.com/ @@ -157,8 +158,8 @@ GltfFileWriter::GltfFileWriter(MeshResultContext &resultContext, m_json["meshes"][0]["primitives"][primitiveIndex]["attributes"]["WEIGHTS_0"] = bufferViewIndex + (++attributeIndex); } m_json["materials"][primitiveIndex]["pbrMetallicRoughness"]["baseColorTexture"]["index"] = 0; - m_json["materials"][primitiveIndex]["pbrMetallicRoughness"]["metallicFactor"] = part.second.material.metalness; - m_json["materials"][primitiveIndex]["pbrMetallicRoughness"]["roughnessFactor"] = part.second.material.roughness; + m_json["materials"][primitiveIndex]["pbrMetallicRoughness"]["metallicFactor"] = MeshLoader::m_defaultMetalness; + m_json["materials"][primitiveIndex]["pbrMetallicRoughness"]["roughnessFactor"] = MeshLoader::m_defaultRoughness; primitiveIndex++; diff --git a/src/imageforever.cpp b/src/imageforever.cpp new file mode 100644 index 00000000..d58a885f --- /dev/null +++ b/src/imageforever.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +#include "imageforever.h" + +struct ImageForeverItem +{ + QImage *image; + QUuid id; +}; +static std::map g_foreverMap; +static std::map g_foreverCacheKeyToIdMap; +static QMutex g_mapMutex; + +const QImage *ImageForever::get(const QUuid &id) +{ + QMutexLocker locker(&g_mapMutex); + auto findResult = g_foreverMap.find(id); + if (findResult == g_foreverMap.end()) + return nullptr; + return findResult->second.image; +} + +QUuid ImageForever::add(const QImage *image, QUuid toId) +{ + QMutexLocker locker(&g_mapMutex); + if (nullptr == image) + return QUuid(); + auto key = image->cacheKey(); + auto findResult = g_foreverCacheKeyToIdMap.find(key); + if (findResult != g_foreverCacheKeyToIdMap.end()) { + return findResult->second; + } + QUuid newId = toId.isNull() ? QUuid::createUuid() : toId; + if (g_foreverMap.find(newId) != g_foreverMap.end()) + return newId; + QImage *newImage = new QImage(*image); + g_foreverMap[newId] = {newImage, newId}; + g_foreverCacheKeyToIdMap[newImage->cacheKey()] = newId; + return newId; +} diff --git a/src/imageforever.h b/src/imageforever.h new file mode 100644 index 00000000..dacf0d58 --- /dev/null +++ b/src/imageforever.h @@ -0,0 +1,13 @@ +#ifndef IMAGE_FOREVER_H +#define IMAGE_FOREVER_H +#include +#include + +class ImageForever +{ +public: + static const QImage *get(const QUuid &id); + static QUuid add(const QImage *image, QUuid toId=QUuid()); +}; + +#endif diff --git a/src/materialeditwidget.cpp b/src/materialeditwidget.cpp new file mode 100644 index 00000000..e76a0391 --- /dev/null +++ b/src/materialeditwidget.cpp @@ -0,0 +1,307 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "theme.h" +#include "materialeditwidget.h" +#include "floatnumberwidget.h" +#include "version.h" +#include "imageforever.h" +#include "dust3dutil.h" + +QPushButton *MaterialEditWidget::createMapButton() +{ + QPushButton *mapButton = new QPushButton; + mapButton->setFixedSize(Theme::partPreviewImageSize * 2, Theme::partPreviewImageSize * 2); + mapButton->setFlat(true); + mapButton->setAutoFillBackground(true); + updateMapButtonBackground(mapButton, nullptr); + return mapButton; +} + +QImage *MaterialEditWidget::pickImage() +{ + QString fileName = QFileDialog::getOpenFileName(this, QString(), QString(), + tr("Image Files (*.png *.jpg *.bmp)")).trimmed(); + if (fileName.isEmpty()) + return nullptr; + QImage *image = new QImage(); + if (!image->load(fileName)) + return nullptr; + return image; +} + +MaterialEditWidget::MaterialEditWidget(const SkeletonDocument *document, QWidget *parent) : + QDialog(parent), + m_document(document) +{ + m_layers.resize(1); + + m_previewWidget = new ModelWidget(this); + m_previewWidget->setMinimumSize(128, 128); + m_previewWidget->resize(512, 512); + m_previewWidget->move(-128, -128); + + QFont nameFont; + nameFont.setWeight(QFont::Light); + nameFont.setPixelSize(9); + nameFont.setBold(false); + + QGridLayout *mapLayout = new QGridLayout; + int row = 0; + int col = 0; + for (int i = 1; i < (int)TextureType::Count; i++) { + QVBoxLayout *textureManageLayout = new QVBoxLayout; + + SkeletonMaterialMap item; + item.forWhat = (TextureType)i; + m_layers[0].maps.push_back(item); + + QPushButton *imageButton = createMapButton(); + connect(imageButton, &QPushButton::clicked, [=]() { + QImage *image = pickImage(); + if (nullptr == image) + return; + m_layers[0].maps[(int)i - 1].imageId = ImageForever::add(image); + updateMapButtonBackground(imageButton, image); + delete image; + emit layersAdjusted(); + }); + + QLabel *nameLabel = new QLabel(TextureTypeToDispName(item.forWhat)); + nameLabel->setFont(nameFont); + + QPushButton *eraser = new QPushButton(QChar(fa::eraser)); + Theme::initAwesomeToolButton(eraser); + + connect(eraser, &QPushButton::clicked, [=]() { + m_layers[0].maps[(int)i - 1].imageId = QUuid(); + updateMapButtonBackground(imageButton, nullptr); + emit layersAdjusted(); + }); + + QHBoxLayout *textureTitleLayout = new QHBoxLayout; + textureTitleLayout->addWidget(eraser); + textureTitleLayout->addWidget(nameLabel); + textureTitleLayout->addStretch(); + + textureManageLayout->addWidget(imageButton); + textureManageLayout->addLayout(textureTitleLayout); + m_textureMapButtons[i - 1] = imageButton; + + mapLayout->addLayout(textureManageLayout, row, col++); + if (col == 2) { + col = 0; + row++; + } + } + + QVBoxLayout *rightLayout = new QVBoxLayout; + rightLayout->addStretch(); + rightLayout->addLayout(mapLayout); + rightLayout->addStretch(); + + QHBoxLayout *paramtersLayout = new QHBoxLayout; + paramtersLayout->setContentsMargins(256, 0, 0, 0); + paramtersLayout->addStretch(); + paramtersLayout->addLayout(rightLayout); + + m_nameEdit = new QLineEdit; + connect(m_nameEdit, &QLineEdit::textChanged, this, [=]() { + m_unsaved = true; + updateTitle(); + }); + QPushButton *saveButton = new QPushButton(tr("Save")); + connect(saveButton, &QPushButton::clicked, this, &MaterialEditWidget::save); + saveButton->setDefault(true); + + QHBoxLayout *baseInfoLayout = new QHBoxLayout; + baseInfoLayout->addWidget(new QLabel(tr("Name"))); + baseInfoLayout->addWidget(m_nameEdit); + baseInfoLayout->addStretch(); + baseInfoLayout->addWidget(saveButton); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addLayout(paramtersLayout); + mainLayout->addStretch(); + mainLayout->addWidget(Theme::createHorizontalLineWidget()); + mainLayout->addLayout(baseInfoLayout); + + setLayout(mainLayout); + + connect(this, &MaterialEditWidget::layersAdjusted, this, &MaterialEditWidget::updatePreview); + connect(this, &MaterialEditWidget::layersAdjusted, [=]() { + m_unsaved = true; + updateTitle(); + }); + connect(this, &MaterialEditWidget::addMaterial, document, &SkeletonDocument::addMaterial); + connect(this, &MaterialEditWidget::renameMaterial, document, &SkeletonDocument::renameMaterial); + connect(this, &MaterialEditWidget::setMaterialLayers, document, &SkeletonDocument::setMaterialLayers); + + updatePreview(); + updateTitle(); +} + +void MaterialEditWidget::updateMapButtonBackground(QPushButton *button, const QImage *image) +{ + QPalette palette; + if (nullptr != image) + palette.setBrush(button->backgroundRole(), QBrush(QPixmap::fromImage(*image))); + else + palette.setBrush(button->backgroundRole(), QBrush(Qt::black)); + button->setPalette(palette); +} + +void MaterialEditWidget::reject() +{ + close(); +} + +void MaterialEditWidget::closeEvent(QCloseEvent *event) +{ + if (m_unsaved && !m_closed) { + QMessageBox::StandardButton answer = QMessageBox::question(this, + APP_NAME, + tr("Do you really want to close while there are unsaved changes?"), + QMessageBox::Yes | QMessageBox::No); + if (answer != QMessageBox::Yes) { + event->ignore(); + return; + } + } + m_closed = true; + hide(); + if (nullptr != m_materialPreviewsGenerator) { + event->ignore(); + return; + } + event->accept(); +} + +QSize MaterialEditWidget::sizeHint() const +{ + return QSize(0, 200); +} + +MaterialEditWidget::~MaterialEditWidget() +{ + Q_ASSERT(nullptr == m_materialPreviewsGenerator); +} + +void MaterialEditWidget::updatePreview() +{ + if (m_closed) + return; + + if (nullptr != m_materialPreviewsGenerator) { + m_isPreviewDirty = true; + return; + } + + m_isPreviewDirty = false; + + qDebug() << "Material preview generating.."; + + QThread *thread = new QThread; + m_materialPreviewsGenerator = new MaterialPreviewsGenerator(); + m_materialPreviewsGenerator->addMaterial(QUuid(), m_layers); + m_materialPreviewsGenerator->moveToThread(thread); + connect(thread, &QThread::started, m_materialPreviewsGenerator, &MaterialPreviewsGenerator::process); + connect(m_materialPreviewsGenerator, &MaterialPreviewsGenerator::finished, this, &MaterialEditWidget::previewReady); + connect(m_materialPreviewsGenerator, &MaterialPreviewsGenerator::finished, thread, &QThread::quit); + connect(thread, &QThread::finished, thread, &QThread::deleteLater); + thread->start(); +} + +void MaterialEditWidget::previewReady() +{ + m_previewWidget->updateMesh(m_materialPreviewsGenerator->takePreview(QUuid())); + + delete m_materialPreviewsGenerator; + m_materialPreviewsGenerator = nullptr; + + qDebug() << "Material preview generation done"; + + if (m_closed) { + close(); + return; + } + + if (m_isPreviewDirty) + updatePreview(); +} + +void MaterialEditWidget::setEditMaterialId(QUuid materialId) +{ + if (m_materialId == materialId) + return; + + m_materialId = materialId; + updateTitle(); +} + +void MaterialEditWidget::updateTitle() +{ + if (m_materialId.isNull()) { + setWindowTitle(unifiedWindowTitle(tr("New") + (m_unsaved ? "*" : ""))); + return; + } + const SkeletonMaterial *material = m_document->findMaterial(m_materialId); + if (nullptr == material) { + qDebug() << "Find material failed:" << m_materialId; + return; + } + setWindowTitle(unifiedWindowTitle(material->name + (m_unsaved ? "*" : ""))); +} + +void MaterialEditWidget::setEditMaterialName(QString name) +{ + m_nameEdit->setText(name); + updateTitle(); +} + +void MaterialEditWidget::setEditMaterialLayers(std::vector layers) +{ + for (int i = 1; i < (int)TextureType::Count; i++) { + m_layers[0].maps[i - 1].imageId = QUuid(); + } + if (!layers.empty()) { + for (const auto &layer: layers) { + for (const auto &mapItem: layer.maps) { + int index = (int)mapItem.forWhat - 1; + if (index >= 0 && index < (int)TextureType::Count - 1) { + m_layers[0].maps[index].imageId = mapItem.imageId; + } + } + } + } + for (int i = 1; i < (int)TextureType::Count; i++) { + updateMapButtonBackground(m_textureMapButtons[i - 1], ImageForever::get(m_layers[0].maps[i - 1].imageId)); + } + updatePreview(); +} + +void MaterialEditWidget::clearUnsaveState() +{ + m_unsaved = false; + updateTitle(); +} + +void MaterialEditWidget::save() +{ + if (m_materialId.isNull()) { + emit addMaterial(m_nameEdit->text(), m_layers); + } else if (m_unsaved) { + emit renameMaterial(m_materialId, m_nameEdit->text()); + emit setMaterialLayers(m_materialId, m_layers); + } + m_unsaved = false; + close(); +} diff --git a/src/materialeditwidget.h b/src/materialeditwidget.h new file mode 100644 index 00000000..5bf96435 --- /dev/null +++ b/src/materialeditwidget.h @@ -0,0 +1,58 @@ +#ifndef MATERIAL_EDIT_WIDGET_H +#define MATERIAL_EDIT_WIDGET_H +#include +#include +#include +#include +#include "skeletondocument.h" +#include "modelwidget.h" +#include "materialpreviewsgenerator.h" + +enum class PopupWidgetType +{ + PitchYawRoll, + Intersection +}; + +class MaterialEditWidget : public QDialog +{ + Q_OBJECT +signals: + void addMaterial(QString name, std::vector layers); + void removeMaterial(QUuid materialId); + void setMaterialLayers(QUuid materialId, std::vector layers); + void renameMaterial(QUuid materialId, QString name); + void layersAdjusted(); +public: + MaterialEditWidget(const SkeletonDocument *document, QWidget *parent=nullptr); + ~MaterialEditWidget(); +public slots: + void updatePreview(); + void setEditMaterialId(QUuid materialId); + void setEditMaterialName(QString name); + void setEditMaterialLayers(std::vector layers); + void updateTitle(); + void save(); + void clearUnsaveState(); + void previewReady(); +protected: + QSize sizeHint() const override; + void closeEvent(QCloseEvent *event) override; + void reject() override; +private: + void updateMapButtonBackground(QPushButton *button, const QImage *image); + QPushButton *createMapButton(); + QImage *pickImage(); + const SkeletonDocument *m_document = nullptr; + MaterialPreviewsGenerator *m_materialPreviewsGenerator = nullptr; + ModelWidget *m_previewWidget = nullptr; + bool m_isPreviewDirty = false; + bool m_closed = false; + QUuid m_materialId; + bool m_unsaved = false; + QLineEdit *m_nameEdit = nullptr; + std::vector m_layers; + QPushButton *m_textureMapButtons[(int)TextureType::Count - 1] = {nullptr}; +}; + +#endif diff --git a/src/materiallistwidget.cpp b/src/materiallistwidget.cpp new file mode 100644 index 00000000..bb6ef69f --- /dev/null +++ b/src/materiallistwidget.cpp @@ -0,0 +1,343 @@ +#include +#include +#include +#include +#include +#include "skeletonxml.h" +#include "materiallistwidget.h" + +MaterialListWidget::MaterialListWidget(const SkeletonDocument *document, QWidget *parent) : + QTreeWidget(parent), + m_document(document) +{ + setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); + setFocusPolicy(Qt::NoFocus); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + + setAutoScroll(false); + + setHeaderHidden(true); + + QPalette palette = this->palette(); + palette.setColor(QPalette::Window, Qt::transparent); + palette.setColor(QPalette::Base, Qt::transparent); + setPalette(palette); + + setStyleSheet("QTreeView {qproperty-indentation: 0;}"); + + setContentsMargins(0, 0, 0, 0); + + connect(document, &SkeletonDocument::materialListChanged, this, &MaterialListWidget::reload); + connect(document, &SkeletonDocument::cleanup, this, &MaterialListWidget::removeAllContent); + + connect(this, &MaterialListWidget::removeMaterial, document, &SkeletonDocument::removeMaterial); + + setContextMenuPolicy(Qt::CustomContextMenu); + connect(this, &QTreeWidget::customContextMenuRequested, this, &MaterialListWidget::showContextMenu); + + reload(); +} + +void MaterialListWidget::enableMultipleSelection(bool enabled) +{ + m_multipleSelectionEnabled = enabled; +} + +void MaterialListWidget::materialRemoved(QUuid materialId) +{ + if (m_currentSelectedMaterialId == materialId) + m_currentSelectedMaterialId = QUuid(); + m_selectedMaterialIds.erase(materialId); + m_itemMap.erase(materialId); +} + +void MaterialListWidget::updateMaterialSelectState(QUuid materialId, bool selected) +{ + auto findItemResult = m_itemMap.find(materialId); + if (findItemResult == m_itemMap.end()) { + qDebug() << "Find material item failed:" << materialId; + return; + } + MaterialWidget *materialWidget = (MaterialWidget *)itemWidget(findItemResult->second.first, findItemResult->second.second); + materialWidget->updateCheckedState(selected); + if (m_cornerButtonVisible) { + materialWidget->setCornerButtonVisible(selected); + } +} + +void MaterialListWidget::selectMaterial(QUuid materialId, bool multiple) +{ + if (multiple) { + if (!m_currentSelectedMaterialId.isNull()) { + m_selectedMaterialIds.insert(m_currentSelectedMaterialId); + m_currentSelectedMaterialId = QUuid(); + } + if (m_selectedMaterialIds.find(materialId) != m_selectedMaterialIds.end()) { + updateMaterialSelectState(materialId, false); + m_selectedMaterialIds.erase(materialId); + } else { + if (m_multipleSelectionEnabled || m_selectedMaterialIds.empty()) { + updateMaterialSelectState(materialId, true); + m_selectedMaterialIds.insert(materialId); + } + } + if (m_selectedMaterialIds.size() > 1) { + return; + } + if (m_selectedMaterialIds.size() == 1) + materialId = *m_selectedMaterialIds.begin(); + else { + materialId = QUuid(); + emit currentSelectedMaterialChanged(materialId); + } + } + if (!m_selectedMaterialIds.empty()) { + for (const auto &id: m_selectedMaterialIds) { + updateMaterialSelectState(id, false); + } + m_selectedMaterialIds.clear(); + } + if (m_currentSelectedMaterialId != materialId) { + if (!m_currentSelectedMaterialId.isNull()) { + updateMaterialSelectState(m_currentSelectedMaterialId, false); + } + m_currentSelectedMaterialId = materialId; + if (!m_currentSelectedMaterialId.isNull()) { + updateMaterialSelectState(m_currentSelectedMaterialId, true); + } + emit currentSelectedMaterialChanged(m_currentSelectedMaterialId); + } +} + +void MaterialListWidget::mousePressEvent(QMouseEvent *event) +{ + QModelIndex itemIndex = indexAt(event->pos()); + QTreeView::mousePressEvent(event); + if (event->button() == Qt::LeftButton) { + bool multiple = QGuiApplication::queryKeyboardModifiers().testFlag(Qt::ControlModifier); + if (itemIndex.isValid()) { + QTreeWidgetItem *item = itemFromIndex(itemIndex); + auto materialId = QUuid(item->data(itemIndex.column(), Qt::UserRole).toString()); + if (QGuiApplication::queryKeyboardModifiers().testFlag(Qt::ShiftModifier)) { + bool startAdd = false; + bool stopAdd = false; + std::vector waitQueue; + for (const auto &childId: m_document->materialIdList) { + if (m_shiftStartMaterialId == childId || materialId == childId) { + if (startAdd) { + stopAdd = true; + } else { + startAdd = true; + } + } + if (startAdd) + waitQueue.push_back(childId); + if (stopAdd) + break; + } + if (stopAdd && !waitQueue.empty()) { + if (!m_selectedMaterialIds.empty()) { + for (const auto &id: m_selectedMaterialIds) { + updateMaterialSelectState(id, false); + } + m_selectedMaterialIds.clear(); + } + if (!m_currentSelectedMaterialId.isNull()) { + m_currentSelectedMaterialId = QUuid(); + } + for (const auto &waitId: waitQueue) { + selectMaterial(waitId, true); + } + } + return; + } else { + m_shiftStartMaterialId = materialId; + } + selectMaterial(materialId, multiple); + return; + } + if (!multiple) + selectMaterial(QUuid()); + } +} + +bool MaterialListWidget::isMaterialSelected(QUuid materialId) +{ + return (m_currentSelectedMaterialId == materialId || + m_selectedMaterialIds.find(materialId) != m_selectedMaterialIds.end()); +} + +void MaterialListWidget::showContextMenu(const QPoint &pos) +{ + if (!m_hasContextMenu) + return; + + QMenu contextMenu(this); + + std::set unorderedMaterialIds = m_selectedMaterialIds; + if (!m_currentSelectedMaterialId.isNull()) + unorderedMaterialIds.insert(m_currentSelectedMaterialId); + + std::vector materialIds; + for (const auto &cand: m_document->materialIdList) { + if (unorderedMaterialIds.find(cand) != unorderedMaterialIds.end()) + materialIds.push_back(cand); + } + + QAction modifyAction(tr("Modify"), this); + if (materialIds.size() == 1) { + connect(&modifyAction, &QAction::triggered, this, [=]() { + emit modifyMaterial(*materialIds.begin()); + }); + contextMenu.addAction(&modifyAction); + } + + QAction copyAction(tr("Copy"), this); + if (!materialIds.empty()) { + connect(©Action, &QAction::triggered, this, &MaterialListWidget::copy); + contextMenu.addAction(©Action); + } + + QAction pasteAction(tr("Paste"), this); + if (m_document->hasPastableMaterialsInClipboard()) { + connect(&pasteAction, &QAction::triggered, m_document, &SkeletonDocument::paste); + contextMenu.addAction(&pasteAction); + } + + QAction deleteAction(tr("Delete"), this); + if (!materialIds.empty()) { + connect(&deleteAction, &QAction::triggered, [=]() { + for (const auto &materialId: materialIds) + emit removeMaterial(materialId); + }); + contextMenu.addAction(&deleteAction); + } + + contextMenu.exec(mapToGlobal(pos)); +} + +void MaterialListWidget::resizeEvent(QResizeEvent *event) +{ + QTreeWidget::resizeEvent(event); + if (calculateColumnCount() != columnCount()) + reload(); +} + +int MaterialListWidget::calculateColumnCount() +{ + if (nullptr == parentWidget()) + return 0; + + int columns = parentWidget()->width() / Theme::materialPreviewImageSize; + if (0 == columns) + columns = 1; + return columns; +} + +void MaterialListWidget::reload() +{ + removeAllContent(); + + int columns = calculateColumnCount(); + if (0 == columns) + return; + + int columnWidth = parentWidget()->width() / columns; + + //qDebug() << "parentWidth:" << parentWidget()->width() << "columnWidth:" << columnWidth << "columns:" << columns; + + setColumnCount(columns); + for (int i = 0; i < columns; i++) + setColumnWidth(i, columnWidth); + + decltype(m_document->materialIdList.size()) materialIndex = 0; + while (materialIndex < m_document->materialIdList.size()) { + QTreeWidgetItem *item = new QTreeWidgetItem(this); + item->setFlags((item->flags() | Qt::ItemIsEnabled) & ~(Qt::ItemIsSelectable) & ~(Qt::ItemIsEditable)); + for (int col = 0; col < columns && materialIndex < m_document->materialIdList.size(); col++, materialIndex++) { + const auto &materialId = m_document->materialIdList[materialIndex]; + item->setSizeHint(col, QSize(columnWidth, MaterialWidget::preferredHeight() + 2)); + item->setData(col, Qt::UserRole, materialId.toString()); + MaterialWidget *widget = new MaterialWidget(m_document, materialId); + connect(widget, &MaterialWidget::modifyMaterial, this, &MaterialListWidget::modifyMaterial); + connect(widget, &MaterialWidget::cornerButtonClicked, this, &MaterialListWidget::cornerButtonClicked); + widget->previewWidget()->setGraphicsFunctions(this); + setItemWidget(item, col, widget); + widget->reload(); + widget->updateCheckedState(isMaterialSelected(materialId)); + m_itemMap[materialId] = std::make_pair(item, col); + } + invisibleRootItem()->addChild(item); + } +} + +void MaterialListWidget::setCornerButtonVisible(bool visible) +{ + m_cornerButtonVisible = visible; +} + +void MaterialListWidget::setHasContextMenu(bool hasContextMenu) +{ + m_hasContextMenu = hasContextMenu; +} + +void MaterialListWidget::removeAllContent() +{ + m_itemMap.clear(); + clear(); +} + +bool MaterialListWidget::mouseMove(QMouseEvent *event) +{ + return false; +} + +bool MaterialListWidget::wheel(QWheelEvent *event) +{ + return false; +} + +bool MaterialListWidget::mouseRelease(QMouseEvent *event) +{ + return false; +} + +bool MaterialListWidget::mousePress(QMouseEvent *event) +{ + if (event->button() == Qt::RightButton) { + showContextMenu(mapFromGlobal(event->globalPos())); + return false; + } + return false; +} + +bool MaterialListWidget::mouseDoubleClick(QMouseEvent *event) +{ + return false; +} + +bool MaterialListWidget::keyPress(QKeyEvent *event) +{ + return false; +} + +void MaterialListWidget::copy() +{ + if (m_selectedMaterialIds.empty() && m_currentSelectedMaterialId.isNull()) + return; + + std::set limitMaterialIds = m_selectedMaterialIds; + if (!m_currentSelectedMaterialId.isNull()) + limitMaterialIds.insert(m_currentSelectedMaterialId); + + std::set emptySet; + + SkeletonSnapshot snapshot; + m_document->toSnapshot(&snapshot, emptySet, SkeletonDocumentToSnapshotFor::Materials, + emptySet, emptySet, limitMaterialIds); + QString snapshotXml; + QXmlStreamWriter xmlStreamWriter(&snapshotXml); + saveSkeletonToXmlStream(&snapshot, &xmlStreamWriter); + QClipboard *clipboard = QApplication::clipboard(); + clipboard->setText(snapshotXml); +} diff --git a/src/materiallistwidget.h b/src/materiallistwidget.h new file mode 100644 index 00000000..b4961b24 --- /dev/null +++ b/src/materiallistwidget.h @@ -0,0 +1,52 @@ +#ifndef MATERIAL_LIST_WIDGET_H +#define MATERIAL_LIST_WIDGET_H +#include +#include +#include "skeletondocument.h" +#include "materialwidget.h" +#include "skeletongraphicswidget.h" + +class MaterialListWidget : public QTreeWidget, public SkeletonGraphicsFunctions +{ + Q_OBJECT +signals: + void removeMaterial(QUuid materialId); + void modifyMaterial(QUuid materialId); + void cornerButtonClicked(QUuid materialId); + void currentSelectedMaterialChanged(QUuid materialId); +public: + MaterialListWidget(const SkeletonDocument *document, QWidget *parent=nullptr); + bool isMaterialSelected(QUuid materialId); + void enableMultipleSelection(bool enabled); +public slots: + void reload(); + void removeAllContent(); + void materialRemoved(QUuid materialId); + void showContextMenu(const QPoint &pos); + void selectMaterial(QUuid materialId, bool multiple=false); + void copy(); + void setCornerButtonVisible(bool visible); + void setHasContextMenu(bool hasContextMenu); +protected: + void resizeEvent(QResizeEvent *event) override; + void mousePressEvent(QMouseEvent *event) override; + bool mouseMove(QMouseEvent *event) override; + bool wheel(QWheelEvent *event) override; + bool mouseRelease(QMouseEvent *event) override; + bool mousePress(QMouseEvent *event) override; + bool mouseDoubleClick(QMouseEvent *event) override; + bool keyPress(QKeyEvent *event) override; +private: + int calculateColumnCount(); + void updateMaterialSelectState(QUuid materialId, bool selected); + const SkeletonDocument *m_document = nullptr; + std::map> m_itemMap; + std::set m_selectedMaterialIds; + QUuid m_currentSelectedMaterialId; + QUuid m_shiftStartMaterialId; + bool m_cornerButtonVisible = false; + bool m_hasContextMenu = true; + bool m_multipleSelectionEnabled = true; +}; + +#endif diff --git a/src/materialmanagewidget.cpp b/src/materialmanagewidget.cpp new file mode 100644 index 00000000..edef81e6 --- /dev/null +++ b/src/materialmanagewidget.cpp @@ -0,0 +1,63 @@ +#include +#include +#include +#include "materialmanagewidget.h" +#include "theme.h" +#include "materialeditwidget.h" +#include "infolabel.h" + +MaterialManageWidget::MaterialManageWidget(const SkeletonDocument *document, QWidget *parent) : + QWidget(parent), + m_document(document) +{ + QPushButton *addMaterialButton = new QPushButton(Theme::awesome()->icon(fa::plus), tr("Add Material...")); + + connect(addMaterialButton, &QPushButton::clicked, this, &MaterialManageWidget::showAddMaterialDialog); + + QHBoxLayout *toolsLayout = new QHBoxLayout; + toolsLayout->addWidget(addMaterialButton); + + m_materialListWidget = new MaterialListWidget(document); + connect(m_materialListWidget, &MaterialListWidget::modifyMaterial, this, &MaterialManageWidget::showMaterialDialog); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addLayout(toolsLayout); + mainLayout->addWidget(m_materialListWidget); + + setLayout(mainLayout); +} + +MaterialListWidget *MaterialManageWidget::materialListWidget() +{ + return m_materialListWidget; +} + +QSize MaterialManageWidget::sizeHint() const +{ + return QSize(Theme::sidebarPreferredWidth, 0); +} + +void MaterialManageWidget::showAddMaterialDialog() +{ + showMaterialDialog(QUuid()); +} + +void MaterialManageWidget::showMaterialDialog(QUuid materialId) +{ + MaterialEditWidget *materialEditWidget = new MaterialEditWidget(m_document); + materialEditWidget->setAttribute(Qt::WA_DeleteOnClose); + if (!materialId.isNull()) { + const SkeletonMaterial *material = m_document->findMaterial(materialId); + if (nullptr != material) { + materialEditWidget->setEditMaterialId(materialId); + materialEditWidget->setEditMaterialName(material->name); + materialEditWidget->setEditMaterialLayers(material->layers); + materialEditWidget->clearUnsaveState(); + } + } + materialEditWidget->show(); + connect(materialEditWidget, &QDialog::destroyed, [=]() { + emit unregisterDialog((QWidget *)materialEditWidget); + }); + emit registerDialog((QWidget *)materialEditWidget); +} diff --git a/src/materialmanagewidget.h b/src/materialmanagewidget.h new file mode 100644 index 00000000..3899ba2a --- /dev/null +++ b/src/materialmanagewidget.h @@ -0,0 +1,26 @@ +#ifndef MATERIAL_MANAGE_WIDGET_H +#define MATERIAL_MANAGE_WIDGET_H +#include +#include "skeletondocument.h" +#include "materiallistwidget.h" + +class MaterialManageWidget : public QWidget +{ + Q_OBJECT +signals: + void registerDialog(QWidget *widget); + void unregisterDialog(QWidget *widget); +public: + MaterialManageWidget(const SkeletonDocument *document, QWidget *parent=nullptr); + MaterialListWidget *materialListWidget(); +protected: + virtual QSize sizeHint() const; +public slots: + void showAddMaterialDialog(); + void showMaterialDialog(QUuid materialId); +private: + const SkeletonDocument *m_document = nullptr; + MaterialListWidget *m_materialListWidget = nullptr; +}; + +#endif diff --git a/src/materialpreviewsgenerator.cpp b/src/materialpreviewsgenerator.cpp new file mode 100644 index 00000000..f9ff4ed5 --- /dev/null +++ b/src/materialpreviewsgenerator.cpp @@ -0,0 +1,122 @@ +#include +#include +#include "materialpreviewsgenerator.h" +#include "meshgenerator.h" +#include "skeletonxml.h" +#include "ds3file.h" +#include "texturegenerator.h" +#include "imageforever.h" + +MaterialPreviewsGenerator::MaterialPreviewsGenerator() +{ +} + +MaterialPreviewsGenerator::~MaterialPreviewsGenerator() +{ + for (auto &item: m_previews) { + delete item.second; + } +} + +void MaterialPreviewsGenerator::addMaterial(QUuid materialId, const std::vector &layers) +{ + m_materials.push_back({materialId, layers}); +} + +const std::set &MaterialPreviewsGenerator::generatedPreviewMaterialIds() +{ + return m_generatedMaterialIds; +} + +MeshLoader *MaterialPreviewsGenerator::takePreview(QUuid materialId) +{ + MeshLoader *resultMesh = m_previews[materialId]; + m_previews[materialId] = nullptr; + return resultMesh; +} + +void MaterialPreviewsGenerator::generate() +{ + SkeletonSnapshot *snapshot = new SkeletonSnapshot; + + std::vector partIds; + Ds3FileReader ds3Reader(":/resources/material-demo-model.ds3"); + for (int i = 0; i < ds3Reader.items().size(); ++i) { + Ds3ReaderItem item = ds3Reader.items().at(i); + if (item.type == "model") { + QByteArray data; + ds3Reader.loadItem(item.name, &data); + QXmlStreamReader stream(data); + loadSkeletonFromXmlStream(snapshot, stream); + for (const auto &item: snapshot->parts) { + partIds.push_back(QUuid(item.first)); + } + } + } + + GeneratedCacheContext *cacheContext = new GeneratedCacheContext(); + MeshGenerator *meshGenerator = new MeshGenerator(snapshot); + meshGenerator->setSmoothNormal(true); + meshGenerator->setWeldEnabled(false); + meshGenerator->setGeneratedCacheContext(cacheContext); + + meshGenerator->generate(); + for (const auto &mirror: cacheContext->partMirrorIdMap) { + partIds.push_back(QUuid(mirror.first)); + } + + MeshResultContext *meshResultContext = meshGenerator->takeMeshResultContext(); + + MeshLoader *resultMesh = meshGenerator->takeResultMesh(); + + for (const auto &material: m_materials) { + TextureGenerator *textureGenerator = new TextureGenerator(*meshResultContext); + for (const auto &layer: material.second) { + for (const auto &mapItem: layer.maps) { + const QImage *image = ImageForever::get(mapItem.imageId); + if (nullptr == image) + continue; + for (const auto &partId: partIds) { + if (TextureType::BaseColor == mapItem.forWhat) + textureGenerator->addPartColorMap(partId, image); + else if (TextureType::Normal == mapItem.forWhat) + textureGenerator->addPartNormalMap(partId, image); + else if (TextureType::Metalness == mapItem.forWhat) + textureGenerator->addPartMetalnessMap(partId, image); + else if (TextureType::Roughness == mapItem.forWhat) + textureGenerator->addPartRoughnessMap(partId, image); + else if (TextureType::AmbientOcclusion == mapItem.forWhat) + textureGenerator->addPartAmbientOcclusionMap(partId, image); + } + } + } + textureGenerator->generate(); + MeshLoader *texturedResultMesh = textureGenerator->takeResultMesh(); + if (nullptr != texturedResultMesh) { + m_previews[material.first] = new MeshLoader(*texturedResultMesh); + m_generatedMaterialIds.insert(material.first); + delete texturedResultMesh; + } + delete textureGenerator; + } + + delete resultMesh; + + delete meshResultContext; + + delete meshGenerator; + delete cacheContext; +} + +void MaterialPreviewsGenerator::process() +{ + QElapsedTimer countTimeConsumed; + countTimeConsumed.start(); + + generate(); + + qDebug() << "The material previews generation took" << countTimeConsumed.elapsed() << "milliseconds"; + + this->moveToThread(QGuiApplication::instance()->thread()); + emit finished(); +} diff --git a/src/materialpreviewsgenerator.h b/src/materialpreviewsgenerator.h new file mode 100644 index 00000000..037d8941 --- /dev/null +++ b/src/materialpreviewsgenerator.h @@ -0,0 +1,30 @@ +#ifndef MATERIAL_PREVIEWS_GENERATOR_H +#define MATERIAL_PREVIEWS_GENERATOR_H +#include +#include +#include +#include +#include "meshloader.h" +#include "skeletondocument.h" + +class MaterialPreviewsGenerator : public QObject +{ + Q_OBJECT +public: + MaterialPreviewsGenerator(); + ~MaterialPreviewsGenerator(); + void addMaterial(QUuid materialId, const std::vector &layers); + const std::set &generatedPreviewMaterialIds(); + MeshLoader *takePreview(QUuid materialId); + void generate(); +signals: + void finished(); +public slots: + void process(); +private: + std::vector>> m_materials; + std::map m_previews; + std::set m_generatedMaterialIds; +}; + +#endif diff --git a/src/materialwidget.cpp b/src/materialwidget.cpp new file mode 100644 index 00000000..95e9d212 --- /dev/null +++ b/src/materialwidget.cpp @@ -0,0 +1,107 @@ +#include +#include "materialwidget.h" + +MaterialWidget::MaterialWidget(const SkeletonDocument *document, QUuid materialId) : + m_materialId(materialId), + m_document(document) +{ + setObjectName("MaterialFrame"); + + m_previewWidget = new ModelWidget(this); + m_previewWidget->setFixedSize(Theme::materialPreviewImageSize, Theme::materialPreviewImageSize); + m_previewWidget->enableMove(false); + m_previewWidget->enableZoom(false); + + m_nameLabel = new QLabel; + m_nameLabel->setAlignment(Qt::AlignCenter); + m_nameLabel->setStyleSheet("background: qlineargradient(x1:0.5 y1:-15.5, x2:0.5 y2:1, stop:0 " + Theme::white.name() + ", stop:1 #252525);"); + + QFont nameFont; + nameFont.setWeight(QFont::Light); + nameFont.setPixelSize(9); + nameFont.setBold(false); + m_nameLabel->setFont(nameFont); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->setContentsMargins(0, 0, 0, 0); + mainLayout->addStretch(); + mainLayout->addWidget(m_nameLabel); + + setLayout(mainLayout); + + setFixedSize(Theme::materialPreviewImageSize, MaterialWidget::preferredHeight()); + + connect(document, &SkeletonDocument::materialNameChanged, this, &MaterialWidget::updateName); + connect(document, &SkeletonDocument::materialPreviewChanged, this, &MaterialWidget::updatePreview); +} + +void MaterialWidget::setCornerButtonVisible(bool visible) +{ + if (nullptr == m_cornerButton) { + m_cornerButton = new QPushButton(this); + m_cornerButton->move(Theme::materialPreviewImageSize - Theme::miniIconSize - 2, 2); + Theme::initAwesomeMiniButton(m_cornerButton); + m_cornerButton->setText(QChar(fa::plussquare)); + connect(m_cornerButton, &QPushButton::clicked, this, [=]() { + emit cornerButtonClicked(m_materialId); + }); + } + m_cornerButton->setVisible(visible); +} + +void MaterialWidget::resizeEvent(QResizeEvent *event) +{ + QWidget::resizeEvent(event); + m_previewWidget->move((width() - Theme::materialPreviewImageSize) / 2, 0); +} + +int MaterialWidget::preferredHeight() +{ + return Theme::materialPreviewImageSize; +} + +void MaterialWidget::reload() +{ + updatePreview(); + updateName(); +} + +void MaterialWidget::updatePreview() +{ + const SkeletonMaterial *material = m_document->findMaterial(m_materialId); + if (!material) { + qDebug() << "Material not found:" << m_materialId; + return; + } + MeshLoader *previewMesh = material->takePreviewMesh(); + m_previewWidget->updateMesh(previewMesh); +} + +void MaterialWidget::updateName() +{ + const SkeletonMaterial *material = m_document->findMaterial(m_materialId); + if (!material) { + qDebug() << "Material not found:" << m_materialId; + return; + } + m_nameLabel->setText(material->name); +} + +void MaterialWidget::updateCheckedState(bool checked) +{ + if (checked) + setStyleSheet("#MaterialFrame {border: 1px solid " + Theme::red.name() + ";}"); + else + setStyleSheet("#MaterialFrame {border: 1px solid transparent;}"); +} + +ModelWidget *MaterialWidget::previewWidget() +{ + return m_previewWidget; +} + +void MaterialWidget::mouseDoubleClickEvent(QMouseEvent *event) +{ + QFrame::mouseDoubleClickEvent(event); + emit modifyMaterial(m_materialId); +} diff --git a/src/materialwidget.h b/src/materialwidget.h new file mode 100644 index 00000000..85dbe0f6 --- /dev/null +++ b/src/materialwidget.h @@ -0,0 +1,36 @@ +#ifndef MATERIAL_WIDGET_H +#define MATERIAL_WIDGET_H +#include +#include +#include +#include "skeletondocument.h" +#include "modelwidget.h" + +class MaterialWidget : public QFrame +{ + Q_OBJECT +signals: + void modifyMaterial(QUuid materialId); + void cornerButtonClicked(QUuid materialId); +public: + MaterialWidget(const SkeletonDocument *document, QUuid materialId); + static int preferredHeight(); + ModelWidget *previewWidget(); +protected: + void mouseDoubleClickEvent(QMouseEvent *event) override; + void resizeEvent(QResizeEvent *event) override; +public slots: + void reload(); + void updatePreview(); + void updateName(); + void updateCheckedState(bool checked); + void setCornerButtonVisible(bool visible); +private: + QUuid m_materialId; + const SkeletonDocument *m_document = nullptr; + ModelWidget *m_previewWidget = nullptr; + QLabel *m_nameLabel = nullptr; + QPushButton *m_cornerButton = nullptr; +}; + +#endif diff --git a/src/meshgenerator.cpp b/src/meshgenerator.cpp index b0a5c051..b968c0db 100644 --- a/src/meshgenerator.cpp +++ b/src/meshgenerator.cpp @@ -11,6 +11,7 @@ #include "positionmap.h" #include "meshquadify.h" #include "meshweldseam.h" +#include "imageforever.h" bool MeshGenerator::m_enableDebug = false; PositionMap *MeshGenerator::m_forMakePositionKey = new PositionMap; @@ -30,10 +31,9 @@ void GeneratedCacheContext::updateComponentCombinableMesh(QString componentId, v cache = cloneCombinableMesh(mesh); } -MeshGenerator::MeshGenerator(SkeletonSnapshot *snapshot, QThread *thread) : +MeshGenerator::MeshGenerator(SkeletonSnapshot *snapshot) : m_snapshot(snapshot), m_mesh(nullptr), - m_thread(thread), m_meshResultContext(nullptr), m_sharedContextWidget(nullptr), m_cacheContext(nullptr), @@ -251,15 +251,33 @@ void *MeshGenerator::combinePartMesh(QString partId) if (MeshGenerator::m_enableDebug) meshlite_bmesh_enable_debug(m_meshliteContext, bmeshId, 1); - float metalness = 0.0; - QString metalnessString = valueOfKeyInMapOrEmpty(part, "metalness"); - if (!metalnessString.isEmpty()) - metalness = metalnessString.toFloat(); + QUuid materialId; + QString materialIdString = valueOfKeyInMapOrEmpty(part, "materialId"); + if (!materialIdString.isEmpty()) + materialId = QUuid(materialIdString); - float roughness = 1.0; - QString roughnessString = valueOfKeyInMapOrEmpty(part, "roughness"); - if (!roughnessString.isEmpty()) - roughness = roughnessString.toFloat(); + Material partMaterial; + for (const auto &material: m_snapshot->materials) { + if (materialIdString != valueOfKeyInMapOrEmpty(material.first, "id")) + continue; + for (const auto &layer: material.second) { + //FIXME: Only support one layer currently + for (const auto &mapItem: layer.second) { + auto textureType = TextureTypeFromString(valueOfKeyInMapOrEmpty(mapItem, "for").toUtf8().constData()); + if (textureType != TextureType::None) { + int index = (int)textureType - 1; + if (index >= 0 && index < (int)TextureType::Count - 1) { + if ("imageId" == valueOfKeyInMapOrEmpty(mapItem, "linkDataType")) { + auto imageIdString = valueOfKeyInMapOrEmpty(mapItem, "linkData"); + partMaterial.textureImages[index] = ImageForever::get(QUuid(imageIdString)); + } + } + } + } + break; + } + break; + } QString mirroredPartId; QUuid mirroredPartIdNotAsString; @@ -301,9 +319,8 @@ void *MeshGenerator::combinePartMesh(QString partId) bmeshNode.origin = QVector3D(x, y, z); bmeshNode.radius = radius; bmeshNode.nodeId = QUuid(nodeId); + bmeshNode.material = partMaterial; bmeshNode.material.color = partColor; - bmeshNode.material.metalness = metalness; - bmeshNode.material.roughness = roughness; bmeshNode.boneMark = boneMark; //if (SkeletonBoneMark::None != boneMark) // bmeshNode.color = SkeletonBoneMarkToColor(boneMark); @@ -374,7 +391,7 @@ void *MeshGenerator::combinePartMesh(QString partId) if (m_requirePreviewPartIds.find(partIdNotAsString) != m_requirePreviewPartIds.end()) { int trimedMeshId = meshlite_trim(m_meshliteContext, meshId, 1); - m_partPreviewMeshMap[partIdNotAsString] = new MeshLoader(m_meshliteContext, trimedMeshId, -1, {partColor, metalness, roughness}, nullptr, m_smoothNormal); + m_partPreviewMeshMap[partIdNotAsString] = new MeshLoader(m_meshliteContext, trimedMeshId, -1, partColor, nullptr, m_smoothNormal); m_generatedPreviewPartIds.insert(partIdNotAsString); } @@ -581,7 +598,7 @@ void *MeshGenerator::combineComponentMesh(QString componentId, bool *inverse) return resultMesh; } -void MeshGenerator::process() +void MeshGenerator::generate() { if (nullptr == m_snapshot) return; @@ -714,7 +731,7 @@ void MeshGenerator::process() if (resultMeshId > 0) { loadGeneratedPositionsToMeshResultContext(m_meshliteContext, triangulatedFinalMeshId); - m_mesh = new MeshLoader(m_meshliteContext, resultMeshId, triangulatedFinalMeshId, {Theme::white, 0.0, 1.0}, &m_meshResultContext->triangleMaterials(), m_smoothNormal); + m_mesh = new MeshLoader(m_meshliteContext, resultMeshId, triangulatedFinalMeshId, Theme::white, &m_meshResultContext->triangleMaterials(), m_smoothNormal); } if (needDeleteCacheContext) { @@ -725,6 +742,11 @@ void MeshGenerator::process() meshlite_destroy_context(m_meshliteContext); qDebug() << "The mesh generation took" << countTimeConsumed.elapsed() << "milliseconds"; +} + +void MeshGenerator::process() +{ + generate(); this->moveToThread(QGuiApplication::instance()->thread()); emit finished(); diff --git a/src/meshgenerator.h b/src/meshgenerator.h index 8b9e3d7a..8e7e5d58 100644 --- a/src/meshgenerator.h +++ b/src/meshgenerator.h @@ -30,7 +30,7 @@ class MeshGenerator : public QObject { Q_OBJECT public: - MeshGenerator(SkeletonSnapshot *snapshot, QThread *thread); + MeshGenerator(SkeletonSnapshot *snapshot); ~MeshGenerator(); void setSharedContextWidget(QOpenGLWidget *widget); void addPartPreviewRequirement(const QUuid &partId); @@ -42,6 +42,7 @@ public: const std::set &requirePreviewPartIds(); const std::set &generatedPreviewPartIds(); MeshResultContext *takeMeshResultContext(); + void generate(); signals: void finished(); public slots: diff --git a/src/meshloader.cpp b/src/meshloader.cpp index 95c9ee2a..7779dc7f 100644 --- a/src/meshloader.cpp +++ b/src/meshloader.cpp @@ -1,12 +1,18 @@ #include +#include +#include #include "meshloader.h" #include "meshlite.h" #include "theme.h" #include "positionmap.h" +#include "ds3file.h" #define MAX_VERTICES_PER_FACE 100 -MeshLoader::MeshLoader(void *meshlite, int meshId, int triangulatedMeshId, Material material, const std::vector *triangleMaterials, bool smoothNormal) : +float MeshLoader::m_defaultMetalness = 0.0; +float MeshLoader::m_defaultRoughness = 1.0; + +MeshLoader::MeshLoader(void *meshlite, int meshId, int triangulatedMeshId, QColor defaultColor, const std::vector *triangleMaterials, bool smoothNormal) : m_triangleVertices(nullptr), m_triangleVertexCount(0), m_edgeVertices(nullptr), @@ -97,9 +103,9 @@ MeshLoader::MeshLoader(void *meshlite, int meshId, int triangulatedMeshId, Mater GLfloat *triangleNormals = new GLfloat[triangleCount * 3]; int loadedTriangleNormalItemCount = meshlite_get_triangle_normal_array(meshlite, triangleMesh, triangleNormals, triangleCount * 3); - float modelR = material.color.redF(); - float modelG = material.color.greenF(); - float modelB = material.color.blueF(); + float modelR = defaultColor.redF(); + float modelG = defaultColor.greenF(); + float modelB = defaultColor.blueF(); m_triangleVertexCount = triangleCount * 3; m_triangleVertices = new Vertex[m_triangleVertexCount * 3]; for (int i = 0; i < triangleCount; i++) { @@ -107,15 +113,13 @@ MeshLoader::MeshLoader(void *meshlite, int meshId, int triangulatedMeshId, Mater float useColorR = modelR; float useColorG = modelG; float useColorB = modelB; - float useMetalness = material.metalness; - float useRoughness = material.roughness; + float useMetalness = m_defaultMetalness; + float useRoughness = m_defaultRoughness; if (triangleMaterials && i < (int)triangleMaterials->size()) { auto triangleMaterial = (*triangleMaterials)[i]; useColorR = triangleMaterial.color.redF(); useColorG = triangleMaterial.color.greenF(); useColorB = triangleMaterial.color.blueF(); - useMetalness = triangleMaterial.metalness; - useRoughness = triangleMaterial.roughness; } TriangulatedFace triangulatedFace; triangulatedFace.color.setRedF(useColorR); @@ -200,6 +204,9 @@ MeshLoader::MeshLoader(const MeshLoader &mesh) : if (nullptr != mesh.m_textureImage) { this->m_textureImage = new QImage(*mesh.m_textureImage); } + if (nullptr != mesh.m_normalMapImage) { + this->m_normalMapImage = new QImage(*mesh.m_normalMapImage); + } this->m_vertices = mesh.m_vertices; this->m_faces = mesh.m_faces; this->m_triangulatedVertices = mesh.m_triangulatedVertices; @@ -228,13 +235,15 @@ MeshLoader::MeshLoader(MeshResultContext &resultContext) : m_triangleVertices = new Vertex[m_triangleVertexCount]; int destIndex = 0; for (const auto &part: resultContext.parts()) { - for (const auto &it: part.second.triangles) { + for (int x = 0; x < (int)part.second.triangles.size(); x++) { + const auto &it = part.second.triangles[x]; for (auto i = 0; i < 3; i++) { int vertexIndex = it.indicies[i]; const ResultVertex *srcVert = &part.second.vertices[vertexIndex]; const QVector3D *srcNormal = &part.second.interpolatedVertexNormals[vertexIndex]; const ResultVertexUv *srcUv = &part.second.vertexUvs[vertexIndex]; - const Material *srcMaterial = &part.second.material; + //const Material *srcMaterial = &part.second.material; + const QVector3D *srcTangent = &part.second.triangleTangents[x]; Vertex *dest = &m_triangleVertices[destIndex]; dest->colorR = 0; dest->colorG = 0; @@ -247,8 +256,11 @@ MeshLoader::MeshLoader(MeshResultContext &resultContext) : dest->normX = srcNormal->x(); dest->normY = srcNormal->y(); dest->normZ = srcNormal->z(); - dest->metalness = srcMaterial->metalness; - dest->roughness = srcMaterial->roughness; + dest->metalness = m_defaultMetalness; + dest->roughness = m_defaultRoughness; + dest->tangentX = srcTangent->x(); + dest->tangentY = srcTangent->y(); + dest->tangentZ = srcTangent->z(); destIndex++; } } @@ -271,6 +283,7 @@ MeshLoader::~MeshLoader() delete[] m_edgeVertices; m_edgeVertexCount = 0; delete m_textureImage; + delete m_normalMapImage; } const std::vector &MeshLoader::vertices() @@ -322,3 +335,72 @@ const QImage *MeshLoader::textureImage() { return m_textureImage; } + +void MeshLoader::setNormalMapImage(QImage *normalMapImage) +{ + m_normalMapImage = normalMapImage; +} + +const QImage *MeshLoader::normalMapImage() +{ + return m_normalMapImage; +} + +const QImage *MeshLoader::metalnessRoughnessAmbientOcclusionImage() +{ + return m_metalnessRoughnessAmbientOcclusionImage; +} + +void MeshLoader::setMetalnessRoughnessAmbientOcclusionImage(QImage *image) +{ + m_metalnessRoughnessAmbientOcclusionImage = image; +} + +bool MeshLoader::hasMetalnessInImage() +{ + return m_hasMetalnessInImage; +} + +void MeshLoader::setHasMetalnessInImage(bool hasInImage) +{ + m_hasMetalnessInImage = hasInImage; +} + +bool MeshLoader::hasRoughnessInImage() +{ + return m_hasRoughnessInImage; +} + +void MeshLoader::setHasRoughnessInImage(bool hasInImage) +{ + m_hasRoughnessInImage = hasInImage; +} + +bool MeshLoader::hasAmbientOcclusionInImage() +{ + return m_hasAmbientOcclusionInImage; +} + +void MeshLoader::setHasAmbientOcclusionInImage(bool hasInImage) +{ + m_hasAmbientOcclusionInImage = hasInImage; +} + +void MeshLoader::exportAsObj(const QString &filename) +{ + QFile file(filename); + if (file.open(QIODevice::WriteOnly)) { + QTextStream stream(&file); + stream << "# " << Ds3FileReader::m_applicationName << endl; + for (std::vector::const_iterator it = vertices().begin() ; it != vertices().end(); ++it) { + stream << "v " << (*it).x() << " " << (*it).y() << " " << (*it).z() << endl; + } + for (std::vector>::const_iterator it = faces().begin() ; it != faces().end(); ++it) { + stream << "f"; + for (std::vector::const_iterator subIt = (*it).begin() ; subIt != (*it).end(); ++subIt) { + stream << " " << (1 + *subIt); + } + stream << endl; + } + } +} diff --git a/src/meshloader.h b/src/meshloader.h index ed364ceb..2aac5d95 100644 --- a/src/meshloader.h +++ b/src/meshloader.h @@ -28,6 +28,9 @@ typedef struct GLfloat texV; GLfloat metalness; GLfloat roughness; + GLfloat tangentX; + GLfloat tangentY; + GLfloat tangentZ; } Vertex; #pragma pack(pop) @@ -40,7 +43,7 @@ struct TriangulatedFace class MeshLoader { public: - MeshLoader(void *meshlite, int meshId, int triangulatedMeshId=-1, Material material={Theme::white, 0.0, 1.0}, const std::vector *triangleMaterials=nullptr, bool smoothNormal=true); + MeshLoader(void *meshlite, int meshId, int triangulatedMeshId=-1, QColor defaultColor=Theme::white, const std::vector *triangleMaterials=nullptr, bool smoothNormal=true); MeshLoader(MeshResultContext &resultContext); MeshLoader(Vertex *triangleVertices, int vertexNum); MeshLoader(const MeshLoader &mesh); @@ -56,6 +59,19 @@ public: const std::vector &triangulatedFaces(); void setTextureImage(QImage *textureImage); const QImage *textureImage(); + void setNormalMapImage(QImage *normalMapImage); + const QImage *normalMapImage(); + const QImage *metalnessRoughnessAmbientOcclusionImage(); + void setMetalnessRoughnessAmbientOcclusionImage(QImage *image); + bool hasMetalnessInImage(); + void setHasMetalnessInImage(bool hasInImage); + bool hasRoughnessInImage(); + void setHasRoughnessInImage(bool hasInImage); + bool hasAmbientOcclusionInImage(); + void setHasAmbientOcclusionInImage(bool hasInImage); + static float m_defaultMetalness; + static float m_defaultRoughness; + void exportAsObj(const QString &filename); private: Vertex *m_triangleVertices = nullptr; int m_triangleVertexCount = 0; @@ -66,6 +82,11 @@ private: std::vector m_triangulatedVertices; std::vector m_triangulatedFaces; QImage *m_textureImage = nullptr; + QImage *m_normalMapImage = nullptr; + QImage *m_metalnessRoughnessAmbientOcclusionImage = nullptr; + bool m_hasMetalnessInImage = false; + bool m_hasRoughnessInImage = false; + bool m_hasAmbientOcclusionInImage = false; }; #endif diff --git a/src/meshresultcontext.cpp b/src/meshresultcontext.cpp index 850b6430..95b211e8 100644 --- a/src/meshresultcontext.cpp +++ b/src/meshresultcontext.cpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include "texturegenerator.h" #include "theme.h" #include "meshresultcontext.h" #include "thekla_atlas.h" @@ -32,7 +34,8 @@ MeshResultContext::MeshResultContext() : m_resultPartsResolved(false), m_resultTriangleUvsResolved(false), m_resultRearrangedVerticesResolved(false), - m_vertexNormalsInterpolated(false) + m_vertexNormalsInterpolated(false), + m_triangleTangentsResolved(false) { } @@ -351,6 +354,7 @@ void MeshResultContext::calculateResultParts(std::map &parts) } resultPart.triangles.push_back(newTriangle); resultPart.uvs.push_back(triangleUvs()[x]); + resultPart.triangleTangents.push_back(triangleTangents()[x]); } } @@ -432,7 +436,9 @@ void MeshResultContext::calculateResultTriangleUvs(std::vector Atlas_Options atlasOptions; atlas_set_default_options(&atlasOptions); - atlasOptions.packer_options.witness.packing_quality = 4; + atlasOptions.packer_options.witness.packing_quality = 1; + //atlasOptions.packer_options.witness.texel_area = 1.0 / TextureGenerator::m_textureSize; + atlasOptions.packer_options.witness.conservative = false; Atlas_Error error = Atlas_Error_Success; Atlas_Output_Mesh *outputMesh = atlas_generate(&inputMesh, &atlasOptions, &error); @@ -555,3 +561,45 @@ const std::vector &MeshResultContext::interpolatedVertexNormals() } return m_interpolatedVertexNormals; } + +const std::vector &MeshResultContext::triangleTangents() +{ + if (!m_triangleTangentsResolved) { + m_triangleTangentsResolved = true; + calculateTriangleTangents(m_triangleTangents); + } + return m_triangleTangents; +} + +void MeshResultContext::calculateTriangleTangents(std::vector &tangents) +{ + tangents.resize(triangles.size()); + + for (decltype(triangles.size()) i = 0; i < triangles.size(); i++) { + tangents[i] = {0, 0, 0}; + const auto &uv = triangleUvs()[i]; + if (!uv.resolved) + continue; + QVector2D uv1 = {uv.uv[0][0], uv.uv[0][1]}; + QVector2D uv2 = {uv.uv[1][0], uv.uv[1][1]}; + QVector2D uv3 = {uv.uv[2][0], uv.uv[2][1]}; + const auto &triangle = triangles[i]; + const QVector3D &pos1 = vertices[triangle.indicies[0]].position; + const QVector3D &pos2 = vertices[triangle.indicies[1]].position; + const QVector3D &pos3 = vertices[triangle.indicies[2]].position; + QVector3D edge1 = pos2 - pos1; + QVector3D edge2 = pos3 - pos1; + QVector2D deltaUv1 = uv2 - uv1; + QVector2D deltaUv2 = uv3 - uv1; + auto bottom = deltaUv1.x() * deltaUv2.y() - deltaUv2.x() * deltaUv1.y(); + if (qFuzzyIsNull(bottom)) + continue; + float f = 1.0 / bottom; + QVector3D tangent = { + f * (deltaUv2.y() * edge1.x() - deltaUv1.y() * edge2.x()), + f * (deltaUv2.y() * edge1.y() - deltaUv1.y() * edge2.y()), + f * (deltaUv2.y() * edge1.z() - deltaUv1.y() * edge2.z()) + }; + tangents[i] = tangent.normalized(); + } +} diff --git a/src/meshresultcontext.h b/src/meshresultcontext.h index acf1358b..ad84e3f8 100644 --- a/src/meshresultcontext.h +++ b/src/meshresultcontext.h @@ -7,14 +7,14 @@ #include #include "positionmap.h" #include "skeletonbonemark.h" +#include "texturetype.h" #define MAX_WEIGHT_NUM 4 struct Material { QColor color; - float metalness; - float roughness; + const QImage *textureImages[(int)TextureType::Count - 1] = {nullptr}; }; struct BmeshNode @@ -65,6 +65,7 @@ struct ResultPart std::vector triangles; std::vector uvs; std::vector vertexUvs; + std::vector triangleTangents; }; struct ResultRearrangedVertex @@ -99,6 +100,7 @@ public: const std::vector &rearrangedTriangles(); const std::map> &vertexSourceMap(); const std::vector &interpolatedVertexNormals(); + const std::vector &triangleTangents(); private: bool m_triangleSourceResolved; bool m_triangleMaterialResolved; @@ -108,6 +110,7 @@ private: bool m_resultTriangleUvsResolved; bool m_resultRearrangedVerticesResolved; bool m_vertexNormalsInterpolated; + bool m_triangleTangentsResolved; private: std::vector> m_triangleSourceNodes; std::vector m_triangleMaterials; @@ -121,6 +124,7 @@ private: std::map> m_vertexSourceMap; std::map m_rearrangedVerticesToOldIndexMap; std::vector m_interpolatedVertexNormals; + std::vector m_triangleTangents; private: void calculateTriangleSourceNodes(std::vector> &triangleSourceNodes, std::map> &vertexSourceMap); void calculateRemainingVertexSourceNodesAfterTriangleSourceNodesSolved(std::map> &vertexSourceMap); @@ -131,6 +135,7 @@ private: void calculateResultTriangleUvs(std::vector &uvs, std::set &seamVertices); void calculateResultRearrangedVertices(std::vector &rearrangedVertices, std::vector &rearrangedTriangles); void interpolateVertexNormals(std::vector &resultNormals); + void calculateTriangleTangents(std::vector &tangents); }; #endif diff --git a/src/meshresultpostprocessor.cpp b/src/meshresultpostprocessor.cpp index f6fddd08..3a241fbc 100644 --- a/src/meshresultpostprocessor.cpp +++ b/src/meshresultpostprocessor.cpp @@ -24,6 +24,7 @@ void MeshResultPostProcessor::process() if (!m_meshResultContext->bmeshNodes.empty()) { m_meshResultContext->rearrangedVertices(); m_meshResultContext->rearrangedTriangles(); + (void)m_meshResultContext->triangleTangents(); m_meshResultContext->parts(); } diff --git a/src/modelmeshbinder.cpp b/src/modelmeshbinder.cpp index c8bb8383..15578a7d 100644 --- a/src/modelmeshbinder.cpp +++ b/src/modelmeshbinder.cpp @@ -16,7 +16,13 @@ ModelMeshBinder::ModelMeshBinder() : m_newMeshComing(false), m_showWireframes(false), m_hasTexture(false), - m_texture(nullptr) + m_texture(nullptr), + m_hasNormalMap(false), + m_normalMap(nullptr), + m_hasMetalnessMap(false), + m_hasRoughnessMap(false), + m_hasAmbientOcclusionMap(false), + m_metalnessRoughnessAmbientOcclusionMap(nullptr) { } @@ -25,6 +31,8 @@ ModelMeshBinder::~ModelMeshBinder() delete m_mesh; delete m_newMesh; delete m_texture; + delete m_normalMap; + delete m_metalnessRoughnessAmbientOcclusionMap; } void ModelMeshBinder::updateMesh(MeshLoader *mesh) @@ -37,77 +45,6 @@ void ModelMeshBinder::updateMesh(MeshLoader *mesh) } } -void ModelMeshBinder::exportMeshAsObj(const QString &filename) -{ - QMutexLocker lock(&m_meshMutex); - if (m_mesh) { - QFile file(filename); - if (file.open(QIODevice::WriteOnly)) { - QTextStream stream(&file); - stream << "# " << Ds3FileReader::m_applicationName << endl; - for (std::vector::const_iterator it = m_mesh->vertices().begin() ; it != m_mesh->vertices().end(); ++it) { - stream << "v " << (*it).x() << " " << (*it).y() << " " << (*it).z() << endl; - } - for (std::vector>::const_iterator it = m_mesh->faces().begin() ; it != m_mesh->faces().end(); ++it) { - stream << "f"; - for (std::vector::const_iterator subIt = (*it).begin() ; subIt != (*it).end(); ++subIt) { - stream << " " << (1 + *subIt); - } - stream << endl; - } - } - } -} - -void ModelMeshBinder::exportMeshAsObjPlusMaterials(const QString &filename) -{ - QMutexLocker lock(&m_meshMutex); - if (m_mesh) { - QFileInfo nameInfo(filename); - QString mtlFilenameWithoutPath = nameInfo.baseName() + ".mtl"; - QString mtlFilename = nameInfo.path() + QDir::separator() + mtlFilenameWithoutPath; - std::map colorNameMap; - QString lastColorName; - - qDebug() << "export obj to " << filename; - qDebug() << "export mtl to " << mtlFilename; - - QFile file(filename); - if (file.open(QIODevice::WriteOnly)) { - QTextStream stream(&file); - stream << "# " << Ds3FileReader::m_applicationName << endl; - stream << "mtllib " << mtlFilenameWithoutPath << endl; - for (std::vector::const_iterator it = m_mesh->triangulatedVertices().begin() ; it != m_mesh->triangulatedVertices().end(); ++it) { - stream << "v " << (*it).x() << " " << (*it).y() << " " << (*it).z() << endl; - } - for (std::vector::const_iterator it = m_mesh->triangulatedFaces().begin() ; it != m_mesh->triangulatedFaces().end(); ++it) { - QString colorName = it->color.name(); - colorName = "rgb" + colorName.remove(QChar('#')); - if (colorNameMap.find(colorName) == colorNameMap.end()) - colorNameMap[colorName] = it->color; - if (lastColorName != colorName) { - lastColorName = colorName; - stream << "usemtl " << colorName << endl; - } - stream << "f" << " " << (1 + it->indicies[0]) << " " << (1 + it->indicies[1]) << " " << (1 + it->indicies[2]) << endl; - } - } - - QFile mtlFile(mtlFilename); - if (mtlFile.open(QIODevice::WriteOnly)) { - QTextStream stream(&mtlFile); - stream << "# " << Ds3FileReader::m_applicationName << endl; - for (const auto &it: colorNameMap) { - stream << "newmtl " << it.first << endl; - stream << "Ka" << " " << it.second.redF() << " " << it.second.greenF() << " " << it.second.blueF() << endl; - stream << "Kd" << " " << it.second.redF() << " " << it.second.greenF() << " " << it.second.blueF() << endl; - stream << "Ks" << " 0.0 0.0 0.0" << endl; - stream << "illum" << " 1" << endl; - } - } - } -} - void ModelMeshBinder::initialize() { m_vaoTriangle.create(); @@ -133,12 +70,28 @@ void ModelMeshBinder::paint(ModelShaderProgram *program) delete m_mesh; m_mesh = newMesh; if (m_mesh) { + m_hasTexture = nullptr != m_mesh->textureImage(); delete m_texture; m_texture = nullptr; - if (m_hasTexture) { + if (m_hasTexture) m_texture = new QOpenGLTexture(*m_mesh->textureImage()); - } + + m_hasNormalMap = nullptr != m_mesh->normalMapImage(); + delete m_normalMap; + m_normalMap = nullptr; + if (m_hasNormalMap) + m_normalMap = new QOpenGLTexture(*m_mesh->normalMapImage()); + + m_hasMetalnessMap = m_mesh->hasMetalnessInImage(); + m_hasRoughnessMap = m_mesh->hasRoughnessInImage(); + m_hasAmbientOcclusionMap = m_mesh->hasAmbientOcclusionInImage(); + delete m_metalnessRoughnessAmbientOcclusionMap; + m_metalnessRoughnessAmbientOcclusionMap = nullptr; + if (nullptr != m_mesh->metalnessRoughnessAmbientOcclusionImage() && + (m_hasMetalnessMap || m_hasRoughnessMap || m_hasAmbientOcclusionMap)) + m_metalnessRoughnessAmbientOcclusionMap = new QOpenGLTexture(*m_mesh->metalnessRoughnessAmbientOcclusionImage()); + { QOpenGLVertexArrayObject::Binder vaoBinder(&m_vaoTriangle); if (m_vboTriangle.isCreated()) @@ -154,12 +107,14 @@ void ModelMeshBinder::paint(ModelShaderProgram *program) f->glEnableVertexAttribArray(3); f->glEnableVertexAttribArray(4); f->glEnableVertexAttribArray(5); + f->glEnableVertexAttribArray(6); f->glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), 0); f->glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(3 * sizeof(GLfloat))); f->glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(6 * sizeof(GLfloat))); f->glVertexAttribPointer(3, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(9 * sizeof(GLfloat))); f->glVertexAttribPointer(4, 1, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(11 * sizeof(GLfloat))); f->glVertexAttribPointer(5, 1, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(12 * sizeof(GLfloat))); + f->glVertexAttribPointer(6, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(13 * sizeof(GLfloat))); m_vboTriangle.release(); } { @@ -177,12 +132,14 @@ void ModelMeshBinder::paint(ModelShaderProgram *program) f->glEnableVertexAttribArray(3); f->glEnableVertexAttribArray(4); f->glEnableVertexAttribArray(5); + f->glEnableVertexAttribArray(6); f->glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), 0); f->glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(3 * sizeof(GLfloat))); f->glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(6 * sizeof(GLfloat))); f->glVertexAttribPointer(3, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(9 * sizeof(GLfloat))); f->glVertexAttribPointer(4, 1, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(11 * sizeof(GLfloat))); f->glVertexAttribPointer(5, 1, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(12 * sizeof(GLfloat))); + f->glVertexAttribPointer(6, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast(13 * sizeof(GLfloat))); m_vboEdge.release(); } } else { @@ -197,6 +154,10 @@ void ModelMeshBinder::paint(ModelShaderProgram *program) QOpenGLVertexArrayObject::Binder vaoBinder(&m_vaoEdge); QOpenGLFunctions *f = QOpenGLContext::currentContext()->functions(); program->setUniformValue(program->textureEnabledLoc(), 0); + program->setUniformValue(program->normalMapEnabledLoc(), 0); + program->setUniformValue(program->metalnessMapEnabledLoc(), 0); + program->setUniformValue(program->roughnessMapEnabledLoc(), 0); + program->setUniformValue(program->ambientOcclusionMapEnabledLoc(), 0); f->glDrawArrays(GL_LINES, 0, m_renderEdgeVertexCount); } } @@ -211,6 +172,22 @@ void ModelMeshBinder::paint(ModelShaderProgram *program) } else { program->setUniformValue(program->textureEnabledLoc(), 0); } + if (m_hasNormalMap) { + if (m_normalMap) + m_normalMap->bind(1); + program->setUniformValue(program->normalMapIdLoc(), 1); + program->setUniformValue(program->normalMapEnabledLoc(), 1); + } else { + program->setUniformValue(program->normalMapEnabledLoc(), 0); + } + if (m_hasMetalnessMap || m_hasRoughnessMap || m_hasAmbientOcclusionMap) { + if (m_metalnessRoughnessAmbientOcclusionMap) + m_metalnessRoughnessAmbientOcclusionMap->bind(2); + program->setUniformValue(program->metalnessRoughnessAmbientOcclusionMapIdLoc(), 2); + } + program->setUniformValue(program->metalnessMapEnabledLoc(), m_hasMetalnessMap ? 1 : 0); + program->setUniformValue(program->roughnessMapEnabledLoc(), m_hasRoughnessMap ? 1 : 0); + program->setUniformValue(program->ambientOcclusionMapEnabledLoc(), m_hasAmbientOcclusionMap ? 1 : 0); f->glDrawArrays(GL_TRIANGLES, 0, m_renderTriangleVertexCount); } } @@ -223,6 +200,10 @@ void ModelMeshBinder::cleanup() m_vboEdge.destroy(); delete m_texture; m_texture = nullptr; + delete m_normalMap; + m_normalMap = nullptr; + delete m_metalnessRoughnessAmbientOcclusionMap; + m_metalnessRoughnessAmbientOcclusionMap = nullptr; } void ModelMeshBinder::showWireframes() diff --git a/src/modelmeshbinder.h b/src/modelmeshbinder.h index 721ed085..975c9da5 100644 --- a/src/modelmeshbinder.h +++ b/src/modelmeshbinder.h @@ -14,8 +14,6 @@ public: ModelMeshBinder(); ~ModelMeshBinder(); void updateMesh(MeshLoader *mesh); - void exportMeshAsObj(const QString &filename); - void exportMeshAsObjPlusMaterials(const QString &filename); void initialize(); void paint(ModelShaderProgram *program); void cleanup(); @@ -31,6 +29,12 @@ private: bool m_showWireframes; bool m_hasTexture; QOpenGLTexture *m_texture; + bool m_hasNormalMap; + QOpenGLTexture *m_normalMap; + bool m_hasMetalnessMap; + bool m_hasRoughnessMap; + bool m_hasAmbientOcclusionMap; + QOpenGLTexture *m_metalnessRoughnessAmbientOcclusionMap; private: QOpenGLVertexArrayObject m_vaoTriangle; QOpenGLBuffer m_vboTriangle; diff --git a/src/modelshaderprogram.cpp b/src/modelshaderprogram.cpp index cf29a264..94d55fcb 100644 --- a/src/modelshaderprogram.cpp +++ b/src/modelshaderprogram.cpp @@ -36,15 +36,23 @@ ModelShaderProgram::ModelShaderProgram(bool usePBR) this->bindAttributeLocation("texCoord", 3); this->bindAttributeLocation("metalness", 4); this->bindAttributeLocation("roughness", 5); + this->bindAttributeLocation("tangent", 6); this->link(); this->bind(); m_projectionMatrixLoc = this->uniformLocation("projectionMatrix"); m_modelMatrixLoc = this->uniformLocation("modelMatrix"); + m_normalMatrixLoc = this->uniformLocation("normalMatrix"); m_viewMatrixLoc = this->uniformLocation("viewMatrix"); m_lightPosLoc = this->uniformLocation("lightPos"); m_textureIdLoc = this->uniformLocation("textureId"); m_textureEnabledLoc = this->uniformLocation("textureEnabled"); + m_normalMapIdLoc = this->uniformLocation("normalMapId"); + m_normalMapEnabledLoc = this->uniformLocation("normalMapEnabled"); + m_metalnessMapEnabledLoc = this->uniformLocation("metalnessMapEnabled"); + m_roughnessMapEnabledLoc = this->uniformLocation("roughnessMapEnabled"); + m_ambientOcclusionMapEnabledLoc = this->uniformLocation("ambientOcclusionMapEnabled"); + m_metalnessRoughnessAmbientOcclusionMapIdLoc = this->uniformLocation("metalnessRoughnessAmbientOcclusionMapId"); } int ModelShaderProgram::projectionMatrixLoc() @@ -57,6 +65,11 @@ int ModelShaderProgram::modelMatrixLoc() return m_modelMatrixLoc; } +int ModelShaderProgram::normalMatrixLoc() +{ + return m_normalMatrixLoc; +} + int ModelShaderProgram::viewMatrixLoc() { return m_viewMatrixLoc; @@ -76,3 +89,34 @@ int ModelShaderProgram::textureIdLoc() { return m_textureIdLoc; } + +int ModelShaderProgram::normalMapEnabledLoc() +{ + return m_normalMapEnabledLoc; +} + +int ModelShaderProgram::normalMapIdLoc() +{ + return m_normalMapIdLoc; +} + +int ModelShaderProgram::metalnessMapEnabledLoc() +{ + return m_metalnessMapEnabledLoc; +} + +int ModelShaderProgram::roughnessMapEnabledLoc() +{ + return m_roughnessMapEnabledLoc; +} + +int ModelShaderProgram::ambientOcclusionMapEnabledLoc() +{ + return m_ambientOcclusionMapEnabledLoc; +} + +int ModelShaderProgram::metalnessRoughnessAmbientOcclusionMapIdLoc() +{ + return m_metalnessRoughnessAmbientOcclusionMapIdLoc; +} + diff --git a/src/modelshaderprogram.h b/src/modelshaderprogram.h index 1cfb20ca..62c31d93 100644 --- a/src/modelshaderprogram.h +++ b/src/modelshaderprogram.h @@ -9,18 +9,32 @@ public: ModelShaderProgram(bool usePBR=true); int projectionMatrixLoc(); int modelMatrixLoc(); + int normalMatrixLoc(); int viewMatrixLoc(); int lightPosLoc(); int textureIdLoc(); int textureEnabledLoc(); + int normalMapEnabledLoc(); + int normalMapIdLoc(); + int metalnessMapEnabledLoc(); + int roughnessMapEnabledLoc(); + int ambientOcclusionMapEnabledLoc(); + int metalnessRoughnessAmbientOcclusionMapIdLoc(); static const QString &loadShaderSource(const QString &name); private: int m_projectionMatrixLoc; int m_modelMatrixLoc; + int m_normalMatrixLoc; int m_viewMatrixLoc; int m_lightPosLoc; int m_textureIdLoc; int m_textureEnabledLoc; + int m_normalMapEnabledLoc; + int m_normalMapIdLoc; + int m_metalnessMapEnabledLoc; + int m_roughnessMapEnabledLoc; + int m_ambientOcclusionMapEnabledLoc; + int m_metalnessRoughnessAmbientOcclusionMapIdLoc; }; #endif diff --git a/src/modelwidget.cpp b/src/modelwidget.cpp index 1d69c658..0110a559 100644 --- a/src/modelwidget.cpp +++ b/src/modelwidget.cpp @@ -136,9 +136,11 @@ void ModelWidget::initializeGL() // Our camera never changes in this example. m_camera.setToIdentity(); + // FIXME: if change here, please also change the camera pos in PBR shader m_camera.translate(0, 0, -2.1); // Light position is fixed. + // FIXME: PBR render no longer use this parameter m_program->setUniformValue(m_program->lightPosLoc(), QVector3D(0, 0, 70)); m_program->release(); @@ -159,8 +161,11 @@ void ModelWidget::paintGL() m_program->bind(); m_program->setUniformValue(m_program->projectionMatrixLoc(), m_projection); m_program->setUniformValue(m_program->modelMatrixLoc(), m_world); + QMatrix3x3 normalMatrix = m_world.normalMatrix(); + m_program->setUniformValue(m_program->normalMatrixLoc(), normalMatrix); m_program->setUniformValue(m_program->viewMatrixLoc(), m_camera); m_program->setUniformValue(m_program->textureEnabledLoc(), 0); + m_program->setUniformValue(m_program->normalMapEnabledLoc(), 0); m_meshBinder.paint(m_program); @@ -291,16 +296,6 @@ void ModelWidget::updateMesh(MeshLoader *mesh) update(); } -void ModelWidget::exportMeshAsObj(const QString &filename) -{ - m_meshBinder.exportMeshAsObj(filename); -} - -void ModelWidget::exportMeshAsObjPlusMaterials(const QString &filename) -{ - m_meshBinder.exportMeshAsObjPlusMaterials(filename); -} - void ModelWidget::enableMove(bool enabled) { m_moveEnabled = enabled; diff --git a/src/modelwidget.h b/src/modelwidget.h index 2b43ff07..9b92cd22 100644 --- a/src/modelwidget.h +++ b/src/modelwidget.h @@ -28,8 +28,6 @@ public: m_transparent = t; } void updateMesh(MeshLoader *mesh); - void exportMeshAsObj(const QString &filename); - void exportMeshAsObjPlusMaterials(const QString &filename); void setGraphicsFunctions(SkeletonGraphicsFunctions *graphicsFunctions); void toggleWireframe(); void enableMove(bool enabled); diff --git a/src/skeletondocument.cpp b/src/skeletondocument.cpp index c1df6b3b..ff114b3e 100644 --- a/src/skeletondocument.cpp +++ b/src/skeletondocument.cpp @@ -9,6 +9,7 @@ #include "skeletondocument.h" #include "dust3dutil.h" #include "skeletonxml.h" +#include "materialpreviewsgenerator.h" unsigned long SkeletonDocument::m_maxSnapshot = 1000; @@ -54,7 +55,8 @@ SkeletonDocument::SkeletonDocument() : m_isRigObsolete(false), m_riggedResultContext(new MeshResultContext), m_posePreviewsGenerator(nullptr), - m_currentRigSucceed(false) + m_currentRigSucceed(false), + m_materialPreviewsGenerator(nullptr) { } @@ -592,6 +594,14 @@ const SkeletonPose *SkeletonDocument::findPose(QUuid poseId) const return &it->second; } +const SkeletonMaterial *SkeletonDocument::findMaterial(QUuid materialId) const +{ + auto it = materialMap.find(materialId); + if (it == materialMap.end()) + return nullptr; + return &it->second; +} + const SkeletonMotion *SkeletonDocument::findMotion(QUuid motionId) const { auto it = motionMap.find(motionId); @@ -830,7 +840,10 @@ void SkeletonDocument::markAllDirty() } void SkeletonDocument::toSnapshot(SkeletonSnapshot *snapshot, const std::set &limitNodeIds, - SkeletonDocumentToSnapshotFor forWhat, const std::set &limitPoseIds, const std::set &limitMotionIds) const + SkeletonDocumentToSnapshotFor forWhat, + const std::set &limitPoseIds, + const std::set &limitMotionIds, + const std::set &limitMaterialIds) const { if (SkeletonDocumentToSnapshotFor::Document == forWhat || SkeletonDocumentToSnapshotFor::Nodes == forWhat) { @@ -874,10 +887,8 @@ void SkeletonDocument::toSnapshot(SkeletonSnapshot *snapshot, const std::setparts[part["id"]] = part; } for (const auto &nodeIt: nodeMap) { @@ -952,6 +963,38 @@ void SkeletonDocument::toSnapshot(SkeletonSnapshot *snapshot, const std::setrootComponent["children"] = children; } } + if (SkeletonDocumentToSnapshotFor::Document == forWhat || + SkeletonDocumentToSnapshotFor::Materials == forWhat) { + for (const auto &materialId: materialIdList) { + if (!limitMaterialIds.empty() && limitMaterialIds.find(materialId) == limitMaterialIds.end()) + continue; + auto findMaterialResult = materialMap.find(materialId); + if (findMaterialResult == materialMap.end()) { + qDebug() << "Find material failed:" << materialId; + continue; + } + auto &materialIt = *findMaterialResult; + std::map material; + material["id"] = materialIt.second.id.toString(); + material["type"] = "MetalRoughness"; + if (!materialIt.second.name.isEmpty()) + material["name"] = materialIt.second.name; + std::vector, std::vector>>> layers; + for (const auto &layer: materialIt.second.layers) { + std::vector> maps; + for (const auto &mapItem: layer.maps) { + std::map textureMap; + textureMap["for"] = TextureTypeToString(mapItem.forWhat); + textureMap["linkDataType"] = "imageId"; + textureMap["linkData"] = mapItem.imageId.toString(); + maps.push_back(textureMap); + } + std::map layerAttributes; + layers.push_back({layerAttributes, maps}); + } + snapshot->materials.push_back(std::make_pair(material, layers)); + } + } if (SkeletonDocumentToSnapshotFor::Document == forWhat || SkeletonDocumentToSnapshotFor::Poses == forWhat) { for (const auto &poseId: poseIdList) { @@ -1048,6 +1091,43 @@ void SkeletonDocument::addFromSnapshot(const SkeletonSnapshot &snapshot, bool fr std::set inversePartIds; std::map oldNewIdMap; + for (const auto &materialIt: snapshot.materials) { + const auto &materialAttributes = materialIt.first; + auto materialType = valueOfKeyInMapOrEmpty(materialAttributes, "type"); + if ("MetalRoughness" != materialType) { + qDebug() << "Unsupported material type:" << materialType; + continue; + } + QUuid newMaterialId = QUuid::createUuid(); + auto &newMaterial = materialMap[newMaterialId]; + newMaterial.id = newMaterialId; + newMaterial.name = valueOfKeyInMapOrEmpty(materialAttributes, "name"); + oldNewIdMap[QUuid(valueOfKeyInMapOrEmpty(materialAttributes, "id"))] = newMaterialId; + for (const auto &layerIt: materialIt.second) { + SkeletonMaterialLayer layer; + for (const auto &mapItem: layerIt.second) { + auto textureTypeString = valueOfKeyInMapOrEmpty(mapItem, "for"); + auto textureType = TextureTypeFromString(textureTypeString.toUtf8().constData()); + if (TextureType::None == textureType) { + qDebug() << "Unsupported texture type:" << textureTypeString; + continue; + } + auto linkTypeString = valueOfKeyInMapOrEmpty(mapItem, "linkDataType"); + if ("imageId" != linkTypeString) { + qDebug() << "Unsupported link data type:" << linkTypeString; + continue; + } + auto imageId = QUuid(valueOfKeyInMapOrEmpty(mapItem, "linkData")); + SkeletonMaterialMap materialMap; + materialMap.imageId = imageId; + materialMap.forWhat = textureType; + layer.maps.push_back(materialMap); + } + newMaterial.layers.push_back(layer); + } + materialIdList.push_back(newMaterialId); + emit materialAdded(newMaterialId); + } for (const auto &partKv: snapshot.parts) { const auto newUuid = QUuid::createUuid(); SkeletonPart &part = partMap[newUuid]; @@ -1075,12 +1155,9 @@ void SkeletonDocument::addFromSnapshot(const SkeletonSnapshot &snapshot, bool fr const auto &deformWidthIt = partKv.second.find("deformWidth"); if (deformWidthIt != partKv.second.end()) part.setDeformWidth(deformWidthIt->second.toFloat()); - const auto &metalnessIt = partKv.second.find("metalness"); - if (metalnessIt != partKv.second.end()) - part.metalness = metalnessIt->second.toFloat(); - const auto &roughnessIt = partKv.second.find("roughness"); - if (roughnessIt != partKv.second.end()) - part.roughness = roughnessIt->second.toFloat(); + const auto &materialIdIt = partKv.second.find("materialId"); + if (materialIdIt != partKv.second.end()) + part.materialId = oldNewIdMap[QUuid(materialIdIt->second)]; newAddedPartIds.insert(part.id); } for (const auto &nodeKv: snapshot.nodes) { @@ -1263,6 +1340,8 @@ void SkeletonDocument::addFromSnapshot(const SkeletonSnapshot &snapshot, bool fr emit checkEdge(edgeIt); } + if (!snapshot.materials.empty()) + emit materialListChanged(); if (!snapshot.poses.empty()) emit poseListChanged(); if (!snapshot.motions.empty()) @@ -1279,6 +1358,8 @@ void SkeletonDocument::reset() edgeMap.clear(); partMap.clear(); componentMap.clear(); + materialMap.clear(); + materialIdList.clear(); poseMap.clear(); poseIdList.clear(); motionMap.clear(); @@ -1305,8 +1386,9 @@ MeshLoader *SkeletonDocument::takeResultMesh() MeshLoader *SkeletonDocument::takeResultTextureMesh() { - MeshLoader *resultTextureMesh = m_resultTextureMesh; - m_resultTextureMesh = nullptr; + if (nullptr == m_resultTextureMesh) + return nullptr; + MeshLoader *resultTextureMesh = new MeshLoader(*m_resultTextureMesh); return resultTextureMesh; } @@ -1413,20 +1495,21 @@ void SkeletonDocument::generateMesh() SkeletonSnapshot *snapshot = new SkeletonSnapshot; toSnapshot(snapshot); resetDirtyFlags(); - m_meshGenerator = new MeshGenerator(snapshot, thread); + m_meshGenerator = new MeshGenerator(snapshot); m_meshGenerator->setSmoothNormal(m_smoothNormal); m_meshGenerator->setWeldEnabled(weldEnabled); m_meshGenerator->setGeneratedCacheContext(&m_generatedCacheContext); if (nullptr != m_sharedContextWidget) m_meshGenerator->setSharedContextWidget(m_sharedContextWidget); - m_meshGenerator->moveToThread(thread); for (auto &part: partMap) { m_meshGenerator->addPartPreviewRequirement(part.first); } + m_meshGenerator->moveToThread(thread); connect(thread, &QThread::started, m_meshGenerator, &MeshGenerator::process); connect(m_meshGenerator, &MeshGenerator::finished, this, &SkeletonDocument::meshReady); connect(m_meshGenerator, &MeshGenerator::finished, thread, &QThread::quit); connect(thread, &QThread::finished, thread, &QThread::deleteLater); + emit meshGenerating(); thread->start(); } @@ -1442,12 +1525,31 @@ void SkeletonDocument::generateTexture() m_isTextureObsolete = false; QThread *thread = new QThread; - m_textureGenerator = new TextureGenerator(*m_postProcessedResultContext, thread); + m_textureGenerator = new TextureGenerator(*m_postProcessedResultContext); + for (const auto &bmeshNode: m_postProcessedResultContext->bmeshNodes) { + for (size_t i = 0; i < sizeof(bmeshNode.material.textureImages) / sizeof(bmeshNode.material.textureImages[0]); ++i) { + TextureType forWhat = (TextureType)(i + 1); + const QImage *image = bmeshNode.material.textureImages[i]; + if (nullptr != image) { + if (TextureType::BaseColor == forWhat) + m_textureGenerator->addPartColorMap(bmeshNode.partId, image); + else if (TextureType::Normal == forWhat) + m_textureGenerator->addPartNormalMap(bmeshNode.partId, image); + else if (TextureType::Metalness == forWhat) + m_textureGenerator->addPartMetalnessMap(bmeshNode.partId, image); + else if (TextureType::Roughness == forWhat) + m_textureGenerator->addPartRoughnessMap(bmeshNode.partId, image); + else if (TextureType::AmbientOcclusion == forWhat) + m_textureGenerator->addPartAmbientOcclusionMap(bmeshNode.partId, image); + } + } + } m_textureGenerator->moveToThread(thread); connect(thread, &QThread::started, m_textureGenerator, &TextureGenerator::process); connect(m_textureGenerator, &TextureGenerator::finished, this, &SkeletonDocument::textureReady); connect(m_textureGenerator, &TextureGenerator::finished, thread, &QThread::quit); connect(thread, &QThread::finished, thread, &QThread::deleteLater); + emit textureGenerating(); thread->start(); } @@ -1501,7 +1603,7 @@ void SkeletonDocument::bakeAmbientOcclusionTexture() QThread *thread = new QThread; m_ambientOcclusionBaker = new AmbientOcclusionBaker(); m_ambientOcclusionBaker->setInputMesh(*m_postProcessedResultContext); - m_ambientOcclusionBaker->setBakeSize(TextureGenerator::m_textureWidth, TextureGenerator::m_textureHeight); + m_ambientOcclusionBaker->setBakeSize(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize); if (textureBorderImage) m_ambientOcclusionBaker->setBorderImage(*textureBorderImage); if (textureColorImage) @@ -1578,6 +1680,7 @@ void SkeletonDocument::postProcess() connect(m_postProcessor, &MeshResultPostProcessor::finished, this, &SkeletonDocument::postProcessedMeshResultReady); connect(m_postProcessor, &MeshResultPostProcessor::finished, thread, &QThread::quit); connect(thread, &QThread::finished, thread, &QThread::deleteLater); + emit postProcessing(); thread->start(); } @@ -2155,29 +2258,18 @@ void SkeletonDocument::setPartDeformWidth(QUuid partId, float width) emit skeletonChanged(); } -void SkeletonDocument::setPartMetalness(QUuid partId, float metalness) +void SkeletonDocument::setPartMaterialId(QUuid partId, QUuid materialId) { auto part = partMap.find(partId); if (part == partMap.end()) { qDebug() << "Part not found:" << partId; return; } - part->second.metalness = metalness; - part->second.dirty = true; - emit partMetalnessChanged(partId); - emit skeletonChanged(); -} - -void SkeletonDocument::setPartRoughness(QUuid partId, float roughness) -{ - auto part = partMap.find(partId); - if (part == partMap.end()) { - qDebug() << "Part not found:" << partId; + if (part->second.materialId == materialId) return; - } - part->second.roughness = roughness; + part->second.materialId = materialId; part->second.dirty = true; - emit partRoughnessChanged(partId); + emit partMaterialIdChanged(partId); emit skeletonChanged(); } @@ -2280,6 +2372,17 @@ bool SkeletonDocument::hasPastableNodesInClipboard() const return false; } +bool SkeletonDocument::hasPastableMaterialsInClipboard() const +{ + const QClipboard *clipboard = QApplication::clipboard(); + const QMimeData *mimeData = clipboard->mimeData(); + if (mimeData->hasText()) { + if (-1 != mimeData->text().indexOf(" layers) +{ + QUuid newMaterialId = QUuid::createUuid(); + auto &material = materialMap[newMaterialId]; + material.id = newMaterialId; + + material.name = name; + material.layers = layers; + material.dirty = true; + + materialIdList.push_back(newMaterialId); + + emit materialAdded(newMaterialId); + emit materialListChanged(); + emit optionsChanged(); +} + +void SkeletonDocument::removeMaterial(QUuid materialId) +{ + auto findMaterialResult = materialMap.find(materialId); + if (findMaterialResult == materialMap.end()) { + qDebug() << "Remove a none exist material:" << materialId; + return; + } + materialIdList.erase(std::remove(materialIdList.begin(), materialIdList.end(), materialId), materialIdList.end()); + materialMap.erase(findMaterialResult); + + emit materialListChanged(); + emit materialRemoved(materialId); + emit optionsChanged(); +} + +void SkeletonDocument::setMaterialLayers(QUuid materialId, std::vector layers) +{ + auto findMaterialResult = materialMap.find(materialId); + if (findMaterialResult == materialMap.end()) { + qDebug() << "Find material failed:" << materialId; + return; + } + findMaterialResult->second.layers = layers; + findMaterialResult->second.dirty = true; + emit materialLayersChanged(materialId); + emit optionsChanged(); +} + +void SkeletonDocument::renameMaterial(QUuid materialId, QString name) +{ + auto findMaterialResult = materialMap.find(materialId); + if (findMaterialResult == materialMap.end()) { + qDebug() << "Find material failed:" << materialId; + return; + } + if (findMaterialResult->second.name == name) + return; + + findMaterialResult->second.name = name; + emit materialNameChanged(materialId); + emit optionsChanged(); +} + +void SkeletonDocument::generateMaterialPreviews() +{ + if (nullptr != m_materialPreviewsGenerator) { + return; + } + + QThread *thread = new QThread; + m_materialPreviewsGenerator = new MaterialPreviewsGenerator(); + bool hasDirtyMaterial = false; + for (auto &materialIt: materialMap) { + if (!materialIt.second.dirty) + continue; + m_materialPreviewsGenerator->addMaterial(materialIt.first, materialIt.second.layers); + materialIt.second.dirty = false; + hasDirtyMaterial = true; + } + if (!hasDirtyMaterial) { + delete m_materialPreviewsGenerator; + m_materialPreviewsGenerator = nullptr; + delete thread; + return; + } + + qDebug() << "Material previews generating.."; + + m_materialPreviewsGenerator->moveToThread(thread); + connect(thread, &QThread::started, m_materialPreviewsGenerator, &MaterialPreviewsGenerator::process); + connect(m_materialPreviewsGenerator, &MaterialPreviewsGenerator::finished, this, &SkeletonDocument::materialPreviewsReady); + connect(m_materialPreviewsGenerator, &MaterialPreviewsGenerator::finished, thread, &QThread::quit); + connect(thread, &QThread::finished, thread, &QThread::deleteLater); + thread->start(); +} + +void SkeletonDocument::materialPreviewsReady() +{ + for (const auto &materialId: m_materialPreviewsGenerator->generatedPreviewMaterialIds()) { + auto material = materialMap.find(materialId); + if (material != materialMap.end()) { + MeshLoader *resultPartPreviewMesh = m_materialPreviewsGenerator->takePreview(materialId); + material->second.updatePreviewMesh(resultPartPreviewMesh); + emit materialPreviewChanged(materialId); + } + } + + delete m_materialPreviewsGenerator; + m_materialPreviewsGenerator = nullptr; + + qDebug() << "Material previews generation done"; + + generateMaterialPreviews(); +} + diff --git a/src/skeletondocument.h b/src/skeletondocument.h index 26532ad9..90110bbe 100644 --- a/src/skeletondocument.h +++ b/src/skeletondocument.h @@ -22,6 +22,9 @@ #include "rigtype.h" #include "posepreviewsgenerator.h" #include "curveutil.h" +#include "texturetype.h" + +class MaterialPreviewsGenerator; class SkeletonNode { @@ -97,8 +100,7 @@ public: std::vector nodeIds; bool dirty; bool wrapped; - float metalness; - float roughness; + QUuid materialId; SkeletonPart(const QUuid &withId=QUuid()) : visible(true), locked(false), @@ -112,9 +114,7 @@ public: color(Theme::white), hasColor(false), dirty(true), - wrapped(false), - metalness(0.0), - roughness(1.0) + wrapped(false) { id = withId.isNull() ? QUuid::createUuid() : withId; } @@ -146,17 +146,9 @@ public: { return deformThicknessAdjusted() || deformWidthAdjusted(); } - bool metalnessAdjusted() const - { - return fabs(metalness - 0.0) >= 0.01; - } - bool roughnessAdjusted() const - { - return fabs(roughness - 1.0) >= 0.01; - } bool materialAdjusted() const { - return metalnessAdjusted() || roughnessAdjusted(); + return !materialId.isNull(); } bool isEditVisible() const { @@ -178,8 +170,7 @@ public: wrapped = other.wrapped; componentId = other.componentId; dirty = other.dirty; - metalness = other.metalness; - roughness = other.roughness; + materialId = other.materialId; } void updatePreviewMesh(MeshLoader *previewMesh) { @@ -411,10 +402,54 @@ private: Q_DISABLE_COPY(SkeletonMotion); }; +class SkeletonMaterialMap +{ +public: + TextureType forWhat; + QUuid imageId; +}; + +class SkeletonMaterialLayer +{ +public: + std::vector maps; +}; + +class SkeletonMaterial +{ +public: + SkeletonMaterial() + { + } + ~SkeletonMaterial() + { + delete m_previewMesh; + } + QUuid id; + QString name; + bool dirty = true; + std::vector layers; + void updatePreviewMesh(MeshLoader *previewMesh) + { + delete m_previewMesh; + m_previewMesh = previewMesh; + } + MeshLoader *takePreviewMesh() const + { + if (nullptr == m_previewMesh) + return nullptr; + return new MeshLoader(*m_previewMesh); + } +private: + Q_DISABLE_COPY(SkeletonMaterial); + MeshLoader *m_previewMesh = nullptr; +}; + enum class SkeletonDocumentToSnapshotFor { Document = 0, Nodes, + Materials, Poses, Motions }; @@ -462,8 +497,7 @@ signals: void partRoundStateChanged(QUuid partId); void partColorStateChanged(QUuid partId); void partWrapStateChanged(QUuid partId); - void partMetalnessChanged(QUuid partId); - void partRoughnessChanged(QUuid partId); + void partMaterialIdChanged(QUuid partId); void componentInverseStateChanged(QUuid partId); void cleanup(); void originChanged(); @@ -494,6 +528,15 @@ signals: void motionNameChanged(QUuid motionId); void motionControlNodesChanged(QUuid motionId); void motionKeyframesChanged(QUuid motionId); + void materialAdded(QUuid materialId); + void materialRemoved(QUuid materialId); + void materialListChanged(); + void materialNameChanged(QUuid materialId); + void materialLayersChanged(QUuid materialId); + void materialPreviewChanged(QUuid materialId); + void meshGenerating(); + void postProcessing(); + void textureGenerating(); public: // need initialize float originX; float originY; @@ -517,6 +560,8 @@ public: std::map nodeMap; std::map edgeMap; std::map componentMap; + std::map materialMap; + std::vector materialIdList; std::map poseMap; std::vector poseIdList; std::map motionMap; @@ -527,7 +572,8 @@ public: void toSnapshot(SkeletonSnapshot *snapshot, const std::set &limitNodeIds=std::set(), SkeletonDocumentToSnapshotFor forWhat=SkeletonDocumentToSnapshotFor::Document, const std::set &limitPoseIds=std::set(), - const std::set &limitMotionIds=std::set()) const; + const std::set &limitMotionIds=std::set(), + const std::set &limitMaterialIds=std::set()) const; void fromSnapshot(const SkeletonSnapshot &snapshot); void addFromSnapshot(const SkeletonSnapshot &snapshot, bool fromPaste=true); const SkeletonNode *findNode(QUuid nodeId) const; @@ -537,6 +583,7 @@ public: const SkeletonComponent *findComponent(QUuid componentId) const; const SkeletonComponent *findComponentParent(QUuid componentId) const; QUuid findComponentParentId(QUuid componentId) const; + const SkeletonMaterial *findMaterial(QUuid materialId) const; const SkeletonPose *findPose(QUuid poseId) const; const SkeletonMotion *findMotion(QUuid motionId) const; MeshLoader *takeResultMesh(); @@ -547,6 +594,7 @@ public: void updateTurnaround(const QImage &image); void setSharedContextWidget(QOpenGLWidget *sharedContextWidget); bool hasPastableNodesInClipboard() const; + bool hasPastableMaterialsInClipboard() const; bool hasPastablePosesInClipboard() const; bool hasPastableMotionsInClipboard() const; bool undoable() const; @@ -592,6 +640,8 @@ public slots: void rigReady(); void generatePosePreviews(); void posePreviewsReady(); + void generateMaterialPreviews(); + void materialPreviewsReady(); void setPartLockState(QUuid partId, bool locked); void setPartVisibleState(QUuid partId, bool visible); void setPartSubdivState(QUuid partId, bool subdived); @@ -603,8 +653,7 @@ public slots: void setPartRoundState(QUuid partId, bool rounded); void setPartColorState(QUuid partId, bool hasColor, QColor color); void setPartWrapState(QUuid partId, bool wrapped); - void setPartMetalness(QUuid partId, float metalness); - void setPartRoughness(QUuid partId, float roughness); + void setPartMaterialId(QUuid partId, QUuid materialId); void setComponentInverseState(QUuid componentId, bool inverse); void moveComponentUp(QUuid componentId); void moveComponentDown(QUuid componentId); @@ -658,6 +707,10 @@ public slots: void setMotionControlNodes(QUuid motionId, std::vector controlNodes); void setMotionKeyframes(QUuid motionId, std::vector> keyframes); void renameMotion(QUuid motionId, QString name); + void addMaterial(QString name, std::vector); + void removeMaterial(QUuid materialId); + void setMaterialLayers(QUuid materialId, std::vector layers); + void renameMaterial(QUuid materialId, QString name); private: void splitPartByNode(std::vector> *groups, QUuid nodeId); void joinNodeAndNeiborsToGroup(std::vector *group, QUuid nodeId, std::set *visitMap, QUuid noUseEdgeId=QUuid()); @@ -700,6 +753,7 @@ private: // need initialize MeshResultContext *m_riggedResultContext; PosePreviewsGenerator *m_posePreviewsGenerator; bool m_currentRigSucceed; + MaterialPreviewsGenerator *m_materialPreviewsGenerator; private: static unsigned long m_maxSnapshot; std::deque m_undoItems; diff --git a/src/skeletondocumentwindow.cpp b/src/skeletondocumentwindow.cpp index a41941b4..9ee81d06 100644 --- a/src/skeletondocumentwindow.cpp +++ b/src/skeletondocumentwindow.cpp @@ -31,6 +31,9 @@ #include "rigwidget.h" #include "markiconcreator.h" #include "motionmanagewidget.h" +#include "materialmanagewidget.h" +#include "imageforever.h" +#include "spinnableawesomebutton.h" int SkeletonDocumentWindow::m_modelRenderWidgetInitialX = 16; int SkeletonDocumentWindow::m_modelRenderWidgetInitialY = 16; @@ -150,6 +153,22 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : QPushButton *rotateClockwiseButton = new QPushButton(QChar(fa::rotateright)); Theme::initAwesomeButton(rotateClockwiseButton); + + SpinnableAwesomeButton *regenerateButton = new SpinnableAwesomeButton(); + regenerateButton->setAwesomeIcon(QChar(fa::recycle)); + connect(m_document, &SkeletonDocument::meshGenerating, this, [=]() { + regenerateButton->showSpinner(true); + }); + connect(m_document, &SkeletonDocument::postProcessing, this, [=]() { + regenerateButton->showSpinner(true); + }); + connect(m_document, &SkeletonDocument::textureGenerating, this, [=]() { + regenerateButton->showSpinner(true); + }); + connect(m_document, &SkeletonDocument::resultTextureChanged, this, [=]() { + regenerateButton->showSpinner(false); + }); + connect(regenerateButton->button(), &QPushButton::clicked, m_document, &SkeletonDocument::regenerateMesh); toolButtonLayout->addWidget(addButton); toolButtonLayout->addWidget(selectButton); @@ -164,6 +183,9 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : toolButtonLayout->addSpacing(10); toolButtonLayout->addWidget(rotateCounterclockwiseButton); toolButtonLayout->addWidget(rotateClockwiseButton); + toolButtonLayout->addSpacing(10); + toolButtonLayout->addWidget(regenerateButton); + QLabel *verticalLogoLabel = new QLabel; QImage verticalLogoImage; @@ -216,6 +238,19 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : partTreeWidget->partPreviewChanged(part.first); }); + QDockWidget *materialDocker = new QDockWidget(tr("Materials"), this); + materialDocker->setAllowedAreas(Qt::RightDockWidgetArea); + MaterialManageWidget *materialManageWidget = new MaterialManageWidget(m_document, materialDocker); + materialDocker->setWidget(materialManageWidget); + connect(materialManageWidget, &MaterialManageWidget::registerDialog, this, &SkeletonDocumentWindow::registerDialog); + connect(materialManageWidget, &MaterialManageWidget::unregisterDialog, this, &SkeletonDocumentWindow::unregisterDialog); + addDockWidget(Qt::RightDockWidgetArea, materialDocker); + connect(materialDocker, &QDockWidget::topLevelChanged, [=](bool topLevel) { + Q_UNUSED(topLevel); + for (const auto &material: m_document->materialMap) + emit m_document->materialPreviewChanged(material.first); + }); + QDockWidget *rigDocker = new QDockWidget(tr("Rig"), this); rigDocker->setAllowedAreas(Qt::RightDockWidgetArea); m_rigWidget = new RigWidget(m_document, rigDocker); @@ -247,7 +282,8 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : connect(motionManageWidget, &MotionManageWidget::unregisterDialog, this, &SkeletonDocumentWindow::unregisterDialog); addDockWidget(Qt::RightDockWidgetArea, motionDocker); - tabifyDockWidget(partTreeDocker, rigDocker); + tabifyDockWidget(partTreeDocker, materialDocker); + tabifyDockWidget(materialDocker, rigDocker); tabifyDockWidget(rigDocker, poseDocker); tabifyDockWidget(poseDocker, motionDocker); @@ -495,17 +531,17 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : }); m_viewMenu->addAction(m_resetModelWidgetPosAction); - m_toggleWireframeAction = new QAction(tr("Toggle Wireframe"), this); - connect(m_toggleWireframeAction, &QAction::triggered, [=]() { - m_modelRenderWidget->toggleWireframe(); - }); - m_viewMenu->addAction(m_toggleWireframeAction); + //m_toggleWireframeAction = new QAction(tr("Toggle Wireframe"), this); + //connect(m_toggleWireframeAction, &QAction::triggered, [=]() { + // m_modelRenderWidget->toggleWireframe(); + //}); + //m_viewMenu->addAction(m_toggleWireframeAction); - m_toggleSmoothNormalAction = new QAction(tr("Toggle Smooth Normal"), this); - connect(m_toggleSmoothNormalAction, &QAction::triggered, [=]() { - m_document->toggleSmoothNormal(); - }); - m_viewMenu->addAction(m_toggleSmoothNormalAction); + //m_toggleSmoothNormalAction = new QAction(tr("Toggle Smooth Normal"), this); + //connect(m_toggleSmoothNormalAction, &QAction::triggered, [=]() { + // m_document->toggleSmoothNormal(); + //}); + //m_viewMenu->addAction(m_toggleSmoothNormalAction); connect(m_viewMenu, &QMenu::aboutToShow, [=]() { m_resetModelWidgetPosAction->setEnabled(!isModelSitInVisibleArea(m_modelRenderWidget)); @@ -520,6 +556,13 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : }); m_windowMenu->addAction(m_showPartsListAction); + m_showMaterialsAction = new QAction(tr("Materials"), this); + connect(m_showMaterialsAction, &QAction::triggered, [=]() { + materialDocker->show(); + materialDocker->raise(); + }); + m_windowMenu->addAction(m_showMaterialsAction); + m_showRigAction = new QAction(tr("Rig"), this); connect(m_showRigAction, &QAction::triggered, [=]() { rigDocker->show(); @@ -760,30 +803,30 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : connect(m_document, &SkeletonDocument::partRoundStateChanged, partTreeWidget, &SkeletonPartTreeWidget::partRoundStateChanged); connect(m_document, &SkeletonDocument::partWrapStateChanged, partTreeWidget, &SkeletonPartTreeWidget::partWrapStateChanged); connect(m_document, &SkeletonDocument::partColorStateChanged, partTreeWidget, &SkeletonPartTreeWidget::partColorStateChanged); - connect(m_document, &SkeletonDocument::partMetalnessChanged, partTreeWidget, &SkeletonPartTreeWidget::partMetalnessChanged); - connect(m_document, &SkeletonDocument::partRoughnessChanged, partTreeWidget, &SkeletonPartTreeWidget::partRoughnessChanged); + connect(m_document, &SkeletonDocument::partMaterialIdChanged, partTreeWidget, &SkeletonPartTreeWidget::partMaterialIdChanged); connect(m_document, &SkeletonDocument::partRemoved, partTreeWidget, &SkeletonPartTreeWidget::partRemoved); connect(m_document, &SkeletonDocument::cleanup, partTreeWidget, &SkeletonPartTreeWidget::removeAllContent); connect(m_document, &SkeletonDocument::partChecked, partTreeWidget, &SkeletonPartTreeWidget::partChecked); connect(m_document, &SkeletonDocument::partUnchecked, partTreeWidget, &SkeletonPartTreeWidget::partUnchecked); connect(m_document, &SkeletonDocument::skeletonChanged, m_document, &SkeletonDocument::generateMesh); - connect(m_document, &SkeletonDocument::resultMeshChanged, [=]() { - if ((m_exportPreviewWidget && m_exportPreviewWidget->isVisible())) { - m_document->postProcess(); - } - }); + //connect(m_document, &SkeletonDocument::resultMeshChanged, [=]() { + // if ((m_exportPreviewWidget && m_exportPreviewWidget->isVisible())) { + // m_document->postProcess(); + // } + //}); + connect(m_document, &SkeletonDocument::resultMeshChanged, m_document, &SkeletonDocument::postProcess); connect(m_document, &SkeletonDocument::resultMeshChanged, m_document, &SkeletonDocument::generateRig); connect(m_document, &SkeletonDocument::rigChanged, m_document, &SkeletonDocument::generateRig); connect(m_document, &SkeletonDocument::postProcessedResultChanged, m_document, &SkeletonDocument::generateTexture); - connect(m_document, &SkeletonDocument::resultTextureChanged, m_document, &SkeletonDocument::bakeAmbientOcclusionTexture); - + //connect(m_document, &SkeletonDocument::resultTextureChanged, m_document, &SkeletonDocument::bakeAmbientOcclusionTexture); + connect(m_document, &SkeletonDocument::resultTextureChanged, [=]() { + m_modelRenderWidget->updateMesh(m_document->takeResultTextureMesh()); + }); + connect(m_document, &SkeletonDocument::resultMeshChanged, [=]() { m_modelRenderWidget->updateMesh(m_document->takeResultMesh()); }); - //connect(m_document, &SkeletonDocument::resultSkeletonChanged, [=]() { - // m_skeletonRenderWidget->updateMesh(m_document->takeResultSkeletonMesh()); - //}); connect(graphicsWidget, &SkeletonGraphicsWidget::cursorChanged, [=]() { m_modelRenderWidget->setCursor(graphicsWidget->cursor()); @@ -821,6 +864,15 @@ SkeletonDocumentWindow::SkeletonDocumentWindow() : m_document->generatePosePreviews(); }); connect(m_document, &SkeletonDocument::resultRigChanged, m_document, &SkeletonDocument::generatePosePreviews); + + connect(m_document, &SkeletonDocument::materialAdded, this, [=](QUuid materialId) { + Q_UNUSED(materialId); + m_document->generateMaterialPreviews(); + }); + connect(m_document, &SkeletonDocument::materialLayersChanged, this, [=](QUuid materialId) { + Q_UNUSED(materialId); + m_document->generateMaterialPreviews(); + }); connect(this, &SkeletonDocumentWindow::initialized, m_document, &SkeletonDocument::uiReady); @@ -1037,6 +1089,26 @@ void SkeletonDocumentWindow::saveTo(const QString &saveAsFilename) if (imageByteArray.size() > 0) ds3Writer.add("canvas.png", "asset", &imageByteArray); } + + for (auto &material: snapshot.materials) { + for (auto &layer: material.second) { + for (auto &mapItem: layer.second) { + auto findImageIdString = mapItem.find("linkData"); + if (findImageIdString == mapItem.end()) + continue; + QUuid imageId = QUuid(findImageIdString->second); + const QImage *image = ImageForever::get(imageId); + if (nullptr == image) + continue; + QByteArray imageByteArray; + QBuffer pngBuffer(&imageByteArray); + pngBuffer.open(QIODevice::WriteOnly); + image->save(&pngBuffer, "PNG"); + if (imageByteArray.size() > 0) + ds3Writer.add("images/" + imageId.toString() + ".png", "asset", &imageByteArray); + } + } + } if (ds3Writer.save(filename)) { setCurrentFilename(filename); @@ -1063,6 +1135,24 @@ void SkeletonDocumentWindow::open() QApplication::setOverrideCursor(Qt::WaitCursor); Ds3FileReader ds3Reader(filename); + + for (int i = 0; i < ds3Reader.items().size(); ++i) { + Ds3ReaderItem item = ds3Reader.items().at(i); + if (item.type == "asset") { + if (item.name.startsWith("images/")) { + QString filename = item.name.split("/")[1]; + QString imageIdString = filename.split(".")[0]; + QUuid imageId = QUuid(imageIdString); + if (!imageId.isNull()) { + QByteArray data; + ds3Reader.loadItem(item.name, &data); + QImage image = QImage::fromData(data, "PNG"); + (void)ImageForever::add(&image, imageId); + } + } + } + } + for (int i = 0; i < ds3Reader.items().size(); ++i) { Ds3ReaderItem item = ds3Reader.items().at(i); if (item.type == "model") { @@ -1104,19 +1194,11 @@ void SkeletonDocumentWindow::exportObjResult() return; } QApplication::setOverrideCursor(Qt::WaitCursor); - m_modelRenderWidget->exportMeshAsObj(filename); - QApplication::restoreOverrideCursor(); -} - -void SkeletonDocumentWindow::exportObjPlusMaterialsResult() -{ - QString filename = QFileDialog::getSaveFileName(this, QString(), QString(), - tr("Wavefront (*.obj)")); - if (filename.isEmpty()) { - return; + MeshLoader *resultMesh = m_document->takeResultMesh(); + if (nullptr != resultMesh) { + resultMesh->exportAsObj(filename); + delete resultMesh; } - QApplication::setOverrideCursor(Qt::WaitCursor); - m_modelRenderWidget->exportMeshAsObjPlusMaterials(filename); QApplication::restoreOverrideCursor(); } diff --git a/src/skeletondocumentwindow.h b/src/skeletondocumentwindow.h index b0b8d8e2..431fbfe6 100644 --- a/src/skeletondocumentwindow.h +++ b/src/skeletondocumentwindow.h @@ -39,7 +39,6 @@ public slots: void saveTo(const QString &saveAsFilename); void open(); void exportObjResult(); - void exportObjPlusMaterialsResult(); void exportGltfResult(); void showExportPreview(); void newWindow(); @@ -135,6 +134,7 @@ private: QMenu *m_windowMenu; QAction *m_showPartsListAction; QAction *m_showDebugDialogAction; + QAction *m_showMaterialsAction; QAction *m_showRigAction; QAction *m_showPosesAction; QAction *m_showMotionsAction; diff --git a/src/skeletonparttreewidget.cpp b/src/skeletonparttreewidget.cpp index 05977b15..df759402 100644 --- a/src/skeletonparttreewidget.cpp +++ b/src/skeletonparttreewidget.cpp @@ -932,18 +932,7 @@ void SkeletonPartTreeWidget::partColorStateChanged(QUuid partId) widget->updateColorButton(); } -void SkeletonPartTreeWidget::partMetalnessChanged(QUuid partId) -{ - auto item = m_partItemMap.find(partId); - if (item == m_partItemMap.end()) { - qDebug() << "Part item not found:" << partId; - return; - } - SkeletonPartWidget *widget = (SkeletonPartWidget *)itemWidget(item->second, 0); - widget->updateColorButton(); -} - -void SkeletonPartTreeWidget::partRoughnessChanged(QUuid partId) +void SkeletonPartTreeWidget::partMaterialIdChanged(QUuid partId) { auto item = m_partItemMap.find(partId); if (item == m_partItemMap.end()) { diff --git a/src/skeletonparttreewidget.h b/src/skeletonparttreewidget.h index 73d7736f..c1396865 100644 --- a/src/skeletonparttreewidget.h +++ b/src/skeletonparttreewidget.h @@ -62,8 +62,7 @@ public slots: void partRoundStateChanged(QUuid partId); void partWrapStateChanged(QUuid partId); void partColorStateChanged(QUuid partId); - void partMetalnessChanged(QUuid partId); - void partRoughnessChanged(QUuid partId); + void partMaterialIdChanged(QUuid partId); void partChecked(QUuid partId); void partUnchecked(QUuid partId); void groupChanged(QTreeWidgetItem *item, int column); diff --git a/src/skeletonpartwidget.cpp b/src/skeletonpartwidget.cpp index 8a2f7319..9c8a1322 100644 --- a/src/skeletonpartwidget.cpp +++ b/src/skeletonpartwidget.cpp @@ -5,9 +5,12 @@ #include #include #include +#include #include "skeletonpartwidget.h" #include "theme.h" #include "floatnumberwidget.h" +#include "materiallistwidget.h" +#include "infolabel.h" SkeletonPartWidget::SkeletonPartWidget(const SkeletonDocument *document, QUuid partId) : m_document(document), @@ -131,8 +134,7 @@ SkeletonPartWidget::SkeletonPartWidget(const SkeletonDocument *document, QUuid p connect(this, &SkeletonPartWidget::setPartRoundState, m_document, &SkeletonDocument::setPartRoundState); connect(this, &SkeletonPartWidget::setPartWrapState, m_document, &SkeletonDocument::setPartWrapState); connect(this, &SkeletonPartWidget::setPartColorState, m_document, &SkeletonDocument::setPartColorState); - connect(this, &SkeletonPartWidget::setPartMetalness, m_document, &SkeletonDocument::setPartMetalness); - connect(this, &SkeletonPartWidget::setPartRoughness, m_document, &SkeletonDocument::setPartRoughness); + connect(this, &SkeletonPartWidget::setPartMaterialId, m_document, &SkeletonDocument::setPartMaterialId); connect(this, &SkeletonPartWidget::checkPart, m_document, &SkeletonDocument::checkPart); connect(this, &SkeletonPartWidget::enableBackgroundBlur, m_document, &SkeletonDocument::enableBackgroundBlur); connect(this, &SkeletonPartWidget::disableBackgroundBlur, m_document, &SkeletonDocument::disableBackgroundBlur); @@ -323,53 +325,23 @@ void SkeletonPartWidget::showColorSettingPopup(const QPoint &pos) } }); - FloatNumberWidget *metalnessWidget = new FloatNumberWidget; - metalnessWidget->setItemName(tr("Metalness")); - metalnessWidget->setRange(0, 1); - metalnessWidget->setValue(part->metalness); - - connect(metalnessWidget, &FloatNumberWidget::valueChanged, [=](float value) { - emit setPartMetalness(m_partId, value); - emit groupOperationAdded(); - }); - - FloatNumberWidget *roughnessWidget = new FloatNumberWidget; - roughnessWidget->setItemName(tr("Roughness")); - roughnessWidget->setRange(0, 1); - roughnessWidget->setValue(part->roughness); - - connect(roughnessWidget, &FloatNumberWidget::valueChanged, [=](float value) { - emit setPartRoughness(m_partId, value); - emit groupOperationAdded(); - }); - - QPushButton *metalnessEraser = new QPushButton(QChar(fa::eraser)); - initToolButton(metalnessEraser); - - connect(metalnessEraser, &QPushButton::clicked, [=]() { - metalnessWidget->setValue(0.0); - emit groupOperationAdded(); - }); - - QPushButton *roughnessEraser = new QPushButton(QChar(fa::eraser)); - initToolButton(roughnessEraser); - - connect(roughnessEraser, &QPushButton::clicked, [=]() { - roughnessWidget->setValue(1.0); - emit groupOperationAdded(); - }); - - QHBoxLayout *metalnessLayout = new QHBoxLayout; - QHBoxLayout *roughnessLayout = new QHBoxLayout; - metalnessLayout->addWidget(metalnessEraser); - metalnessLayout->addWidget(metalnessWidget); - roughnessLayout->addWidget(roughnessEraser); - roughnessLayout->addWidget(roughnessWidget); - QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(colorLayout); - mainLayout->addLayout(metalnessLayout); - mainLayout->addLayout(roughnessLayout); + + if (m_document->materialIdList.empty()) { + InfoLabel *infoLabel = new InfoLabel; + infoLabel->setText(tr("Missing Materials")); + mainLayout->addWidget(infoLabel); + } else { + MaterialListWidget *materialListWidget = new MaterialListWidget(m_document); + materialListWidget->enableMultipleSelection(false); + materialListWidget->selectMaterial(part->materialId); + connect(materialListWidget, &MaterialListWidget::currentSelectedMaterialChanged, this, [=](QUuid materialId) { + emit setPartMaterialId(m_partId, materialId); + emit groupOperationAdded(); + }); + mainLayout->addWidget(materialListWidget); + } popup->setLayout(mainLayout); diff --git a/src/skeletonpartwidget.h b/src/skeletonpartwidget.h index f227c3cd..d5d2c63e 100644 --- a/src/skeletonpartwidget.h +++ b/src/skeletonpartwidget.h @@ -21,8 +21,7 @@ signals: void setPartRoundState(QUuid partId, bool rounded); void setPartColorState(QUuid partId, bool hasColor, QColor color); void setPartWrapState(QUuid partId, bool wrapped); - void setPartMetalness(QUuid partId, float metalness); - void setPartRoughness(QUuid partId, float roughness); + void setPartMaterialId(QUuid partId, QUuid materialId); void movePartUp(QUuid partId); void movePartDown(QUuid partId); void movePartToTop(QUuid partId); diff --git a/src/skeletonsnapshot.h b/src/skeletonsnapshot.h index a6154b2d..32494648 100644 --- a/src/skeletonsnapshot.h +++ b/src/skeletonsnapshot.h @@ -17,6 +17,7 @@ public: std::map rootComponent; std::vector, std::map>>> poses; // std::pair std::vector, std::vector>, std::vector>>> motions; // std::tuple + std::vector, std::vector, std::vector>>>>> materials; // std::pair layer: std::pair public: void resolveBoundingBox(QRectF *mainProfile, QRectF *sideProfile, const QString &partId=QString()); }; diff --git a/src/skeletonxml.cpp b/src/skeletonxml.cpp index 7a943933..7005c8ed 100644 --- a/src/skeletonxml.cpp +++ b/src/skeletonxml.cpp @@ -91,6 +91,41 @@ void saveSkeletonToXmlStream(SkeletonSnapshot *snapshot, QXmlStreamWriter *write writer->writeEndElement(); } + writer->writeStartElement("materials"); + std::vector, std::vector, std::vector>>>>>::iterator materialIterator; + for (materialIterator = snapshot->materials.begin(); materialIterator != snapshot->materials.end(); materialIterator++) { + std::map::iterator materialAttributeIterator; + writer->writeStartElement("material"); + for (materialAttributeIterator = materialIterator->first.begin(); materialAttributeIterator != materialIterator->first.end(); materialAttributeIterator++) { + writer->writeAttribute(materialAttributeIterator->first, materialAttributeIterator->second); + } + writer->writeStartElement("layers"); + std::vector, std::vector>>>::iterator layerIterator; + for (layerIterator = materialIterator->second.begin(); layerIterator != materialIterator->second.end(); layerIterator++) { + std::map::iterator layerAttributeIterator; + writer->writeStartElement("layer"); + for (layerAttributeIterator = layerIterator->first.begin(); layerAttributeIterator != layerIterator->first.end(); layerAttributeIterator++) { + writer->writeAttribute(layerAttributeIterator->first, layerAttributeIterator->second); + } + writer->writeStartElement("maps"); + std::vector>::iterator mapIterator; + for (mapIterator = layerIterator->second.begin(); mapIterator != layerIterator->second.end(); mapIterator++) { + std::map::iterator attributesIterator; + writer->writeStartElement("map"); + for (attributesIterator = mapIterator->begin(); attributesIterator != mapIterator->end(); + attributesIterator++) { + writer->writeAttribute(attributesIterator->first, attributesIterator->second); + } + writer->writeEndElement(); + } + writer->writeEndElement(); + writer->writeEndElement(); + } + writer->writeEndElement(); + writer->writeEndElement(); + } + writer->writeEndElement(); + writer->writeStartElement("poses"); std::vector, std::map>>>::iterator poseIterator; for (poseIterator = snapshot->poses.begin(); poseIterator != snapshot->poses.end(); poseIterator++) { @@ -165,6 +200,8 @@ void loadSkeletonFromXmlStream(SkeletonSnapshot *snapshot, QXmlStreamReader &rea { std::stack componentStack; std::vector elementNameStack; + std::pair, std::vector>> currentMaterialLayer; + std::pair, std::vector, std::vector>>>> currentMaterial; std::pair, std::map>> currentPose; std::tuple, std::vector>, std::vector>> currentMotion; while (!reader.atEnd()) { @@ -243,6 +280,25 @@ void loadSkeletonFromXmlStream(SkeletonSnapshot *snapshot, QXmlStreamReader &rea if (!parentChildrenIds.isEmpty()) parentChildrenIds += ","; parentChildrenIds += componentId; + } else if (fullName == "canvas.materials.material.layers.layer") { + currentMaterialLayer = decltype(currentMaterialLayer)(); + foreach(const QXmlStreamAttribute &attr, reader.attributes()) { + currentMaterialLayer.first[attr.name().toString()] = attr.value().toString(); + } + } else if (fullName == "canvas.materials.material.layers.layer.maps.map") { + std::map attributes; + foreach(const QXmlStreamAttribute &attr, reader.attributes()) { + attributes[attr.name().toString()] = attr.value().toString(); + } + currentMaterialLayer.second.push_back(attributes); + } else if (fullName == "canvas.materials.material") { + QString materialId = reader.attributes().value("id").toString(); + if (materialId.isEmpty()) + continue; + currentMaterial = decltype(currentMaterial)(); + foreach(const QXmlStreamAttribute &attr, reader.attributes()) { + currentMaterial.first[attr.name().toString()] = attr.value().toString(); + } } else if (fullName == "canvas.poses.pose") { QString poseId = reader.attributes().value("id").toString(); if (poseId.isEmpty()) @@ -285,6 +341,10 @@ void loadSkeletonFromXmlStream(SkeletonSnapshot *snapshot, QXmlStreamReader &rea } else if (reader.isEndElement()) { if (fullName.startsWith("canvas.components.component")) { componentStack.pop(); + } else if (fullName == "canvas.materials.material.layers.layer") { + currentMaterial.second.push_back(currentMaterialLayer); + } else if (fullName == "canvas.materials.material") { + snapshot->materials.push_back(currentMaterial); } else if (fullName == "canvas.poses.pose") { snapshot->poses.push_back(currentPose); } else if (fullName == "canvas.motions.motion") { diff --git a/src/skinnedmeshcreator.cpp b/src/skinnedmeshcreator.cpp index a38555cb..f7eb0566 100644 --- a/src/skinnedmeshcreator.cpp +++ b/src/skinnedmeshcreator.cpp @@ -62,8 +62,8 @@ MeshLoader *SkinnedMeshCreator::createMeshFromTransform(const std::vector #include +#include +#include #include "texturegenerator.h" #include "theme.h" -int TextureGenerator::m_textureWidth = 512; -int TextureGenerator::m_textureHeight = 512; +int TextureGenerator::m_textureSize = 1024; -TextureGenerator::TextureGenerator(const MeshResultContext &meshResultContext, QThread *thread) : +TextureGenerator::TextureGenerator(const MeshResultContext &meshResultContext) : m_resultTextureGuideImage(nullptr), m_resultTextureImage(nullptr), m_resultTextureBorderImage(nullptr), m_resultTextureColorImage(nullptr), - m_thread(thread), + m_resultTextureNormalImage(nullptr), + m_resultTextureMetalnessRoughnessAmbientOcclusionImage(nullptr), + m_resultTextureRoughnessImage(nullptr), + m_resultTextureMetalnessImage(nullptr), + m_resultTextureAmbientOcclusionImage(nullptr), m_resultMesh(nullptr) { m_resultContext = new MeshResultContext(); @@ -25,6 +30,11 @@ TextureGenerator::~TextureGenerator() delete m_resultTextureImage; delete m_resultTextureBorderImage; delete m_resultTextureColorImage; + delete m_resultTextureNormalImage; + delete m_resultTextureMetalnessRoughnessAmbientOcclusionImage; + delete m_resultTextureRoughnessImage; + delete m_resultTextureMetalnessImage; + delete m_resultTextureAmbientOcclusionImage; delete m_resultMesh; } @@ -56,6 +66,13 @@ QImage *TextureGenerator::takeResultTextureColorImage() return resultTextureColorImage; } +QImage *TextureGenerator::takeResultTextureNormalImage() +{ + QImage *resultTextureNormalImage = m_resultTextureNormalImage; + m_resultTextureNormalImage = nullptr; + return resultTextureNormalImage; +} + MeshResultContext *TextureGenerator::takeResultContext() { MeshResultContext *resultContext = m_resultContext; @@ -70,17 +87,80 @@ MeshLoader *TextureGenerator::takeResultMesh() return resultMesh; } -void TextureGenerator::process() +void TextureGenerator::addPartColorMap(QUuid partId, const QImage *image) { + if (nullptr == image) + return; + m_partColorTextureMap[partId] = *image; +} + +void TextureGenerator::addPartNormalMap(QUuid partId, const QImage *image) +{ + if (nullptr == image) + return; + m_partNormalTextureMap[partId] = *image; +} + +void TextureGenerator::addPartMetalnessMap(QUuid partId, const QImage *image) +{ + if (nullptr == image) + return; + m_partMetalnessTextureMap[partId] = *image; +} + +void TextureGenerator::addPartRoughnessMap(QUuid partId, const QImage *image) +{ + if (nullptr == image) + return; + m_partRoughnessTextureMap[partId] = *image; +} + +void TextureGenerator::addPartAmbientOcclusionMap(QUuid partId, const QImage *image) +{ + if (nullptr == image) + return; + m_partAmbientOcclusionTextureMap[partId] = *image; +} + +QPainterPath TextureGenerator::expandedPainterPath(const QPainterPath &painterPath) +{ + QPainterPathStroker stroker; + stroker.setWidth(20); + stroker.setJoinStyle(Qt::MiterJoin); + return (stroker.createStroke(painterPath) + painterPath).simplified(); +} + +void TextureGenerator::generate() +{ + bool hasNormalMap = false; + bool hasMetalnessMap = false; + bool hasRoughnessMap = false; + bool hasAmbientOcclusionMap = false; + const std::vector &triangleMaterials = m_resultContext->triangleMaterials(); const std::vector &triangleUvs = m_resultContext->triangleUvs(); - m_resultTextureColorImage = new QImage(TextureGenerator::m_textureWidth, TextureGenerator::m_textureHeight, QImage::Format_ARGB32); - m_resultTextureColorImage->fill(Qt::transparent); + m_resultTextureColorImage = new QImage(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize, QImage::Format_ARGB32); + m_resultTextureColorImage->fill(Theme::white); - m_resultTextureBorderImage = new QImage(TextureGenerator::m_textureWidth, TextureGenerator::m_textureHeight, QImage::Format_ARGB32); + m_resultTextureBorderImage = new QImage(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize, QImage::Format_ARGB32); m_resultTextureBorderImage->fill(Qt::transparent); + m_resultTextureNormalImage = new QImage(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize, QImage::Format_ARGB32); + m_resultTextureNormalImage->fill(Qt::transparent); + + m_resultTextureMetalnessRoughnessAmbientOcclusionImage = new QImage(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize, QImage::Format_ARGB32); + m_resultTextureMetalnessRoughnessAmbientOcclusionImage->fill(Qt::transparent); + + m_resultTextureMetalnessImage = new QImage(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize, QImage::Format_ARGB32); + m_resultTextureMetalnessImage->fill(Qt::transparent); + + m_resultTextureRoughnessImage = new QImage(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize, QImage::Format_ARGB32); + m_resultTextureRoughnessImage->fill(Qt::transparent); + + m_resultTextureAmbientOcclusionImage = new QImage(TextureGenerator::m_textureSize, TextureGenerator::m_textureSize, QImage::Format_ARGB32); + m_resultTextureAmbientOcclusionImage->fill(Qt::transparent); + QColor borderColor = Qt::darkGray; QPen pen(borderColor); @@ -93,6 +173,26 @@ void TextureGenerator::process() textureBorderPainter.begin(m_resultTextureBorderImage); textureBorderPainter.setRenderHint(QPainter::Antialiasing); textureBorderPainter.setRenderHint(QPainter::HighQualityAntialiasing); + + QPainter textureNormalPainter; + textureNormalPainter.begin(m_resultTextureNormalImage); + textureNormalPainter.setRenderHint(QPainter::Antialiasing); + textureNormalPainter.setRenderHint(QPainter::HighQualityAntialiasing); + + QPainter textureMetalnessPainter; + textureMetalnessPainter.begin(m_resultTextureMetalnessImage); + textureMetalnessPainter.setRenderHint(QPainter::Antialiasing); + textureMetalnessPainter.setRenderHint(QPainter::HighQualityAntialiasing); + + QPainter textureRoughnessPainter; + textureRoughnessPainter.begin(m_resultTextureRoughnessImage); + textureRoughnessPainter.setRenderHint(QPainter::Antialiasing); + textureRoughnessPainter.setRenderHint(QPainter::HighQualityAntialiasing); + + QPainter textureAmbientOcclusionPainter; + textureAmbientOcclusionPainter.begin(m_resultTextureAmbientOcclusionImage); + textureAmbientOcclusionPainter.setRenderHint(QPainter::Antialiasing); + textureAmbientOcclusionPainter.setRenderHint(QPainter::HighQualityAntialiasing); // round 1, paint background for (auto i = 0u; i < triangleUvs.size(); i++) { @@ -100,11 +200,12 @@ void TextureGenerator::process() const ResultTriangleUv *uv = &triangleUvs[i]; for (auto j = 0; j < 3; j++) { if (0 == j) { - path.moveTo(uv->uv[j][0] * TextureGenerator::m_textureWidth, uv->uv[j][1] * TextureGenerator::m_textureHeight); + path.moveTo(uv->uv[j][0] * TextureGenerator::m_textureSize, uv->uv[j][1] * TextureGenerator::m_textureSize); } else { - path.lineTo(uv->uv[j][0] * TextureGenerator::m_textureWidth, uv->uv[j][1] * TextureGenerator::m_textureHeight); + path.lineTo(uv->uv[j][0] * TextureGenerator::m_textureSize, uv->uv[j][1] * TextureGenerator::m_textureSize); } } + path = expandedPainterPath(path); QPen textureBorderPen(triangleMaterials[i].color); textureBorderPen.setWidth(32); texturePainter.setPen(textureBorderPen); @@ -116,14 +217,82 @@ void TextureGenerator::process() for (auto i = 0u; i < triangleUvs.size(); i++) { QPainterPath path; const ResultTriangleUv *uv = &triangleUvs[i]; - for (auto j = 0; j < 3; j++) { - if (0 == j) { - path.moveTo(uv->uv[j][0] * TextureGenerator::m_textureWidth, uv->uv[j][1] * TextureGenerator::m_textureHeight); - } else { - path.lineTo(uv->uv[j][0] * TextureGenerator::m_textureWidth, uv->uv[j][1] * TextureGenerator::m_textureHeight); - } - } + float points[][2] = { + {uv->uv[0][0] * TextureGenerator::m_textureSize, uv->uv[0][1] * TextureGenerator::m_textureSize}, + {uv->uv[1][0] * TextureGenerator::m_textureSize, uv->uv[1][1] * TextureGenerator::m_textureSize}, + {uv->uv[2][0] * TextureGenerator::m_textureSize, uv->uv[2][1] * TextureGenerator::m_textureSize} + }; + path.moveTo(points[0][0], points[0][1]); + path.lineTo(points[1][0], points[1][1]); + path.lineTo(points[2][0], points[2][1]); + path = expandedPainterPath(path); + // Fill base color texturePainter.fillPath(path, QBrush(triangleMaterials[i].color)); + // Copy color texture if there is one + const std::pair source = m_resultContext->triangleSourceNodes()[i]; + auto findColorTextureResult = m_partColorTextureMap.find(source.first); + if (findColorTextureResult != m_partColorTextureMap.end()) { + texturePainter.setClipping(true); + texturePainter.setClipPath(path); + QPen textureBorderPen(triangleMaterials[i].color); + textureBorderPen.setWidth(0); + texturePainter.setPen(textureBorderPen); + texturePainter.drawImage(0, 0, findColorTextureResult->second); + texturePainter.setPen(Qt::NoPen); + texturePainter.setClipping(false); + } + // Copy normal texture if there is one + auto findNormalTextureResult = m_partNormalTextureMap.find(source.first); + if (findNormalTextureResult != m_partNormalTextureMap.end()) { + textureNormalPainter.setClipping(true); + textureNormalPainter.setClipPath(path); + QPen textureBorderPen(triangleMaterials[i].color); + textureBorderPen.setWidth(0); + textureNormalPainter.setPen(textureBorderPen); + textureNormalPainter.drawImage(0, 0, findNormalTextureResult->second); + textureNormalPainter.setPen(Qt::NoPen); + textureNormalPainter.setClipping(false); + hasNormalMap = true; + } + // Copy metalness texture if there is one + auto findMetalnessTextureResult = m_partMetalnessTextureMap.find(source.first); + if (findMetalnessTextureResult != m_partMetalnessTextureMap.end()) { + textureMetalnessPainter.setClipping(true); + textureMetalnessPainter.setClipPath(path); + QPen textureBorderPen(triangleMaterials[i].color); + textureBorderPen.setWidth(0); + textureMetalnessPainter.setPen(textureBorderPen); + textureMetalnessPainter.drawImage(0, 0, findMetalnessTextureResult->second); + textureMetalnessPainter.setPen(Qt::NoPen); + textureMetalnessPainter.setClipping(false); + hasMetalnessMap = true; + } + // Copy roughness texture if there is one + auto findRoughnessTextureResult = m_partRoughnessTextureMap.find(source.first); + if (findRoughnessTextureResult != m_partRoughnessTextureMap.end()) { + textureRoughnessPainter.setClipping(true); + textureRoughnessPainter.setClipPath(path); + QPen textureBorderPen(triangleMaterials[i].color); + textureBorderPen.setWidth(0); + textureRoughnessPainter.setPen(textureBorderPen); + textureRoughnessPainter.drawImage(0, 0, findRoughnessTextureResult->second); + textureRoughnessPainter.setPen(Qt::NoPen); + textureRoughnessPainter.setClipping(false); + hasRoughnessMap = true; + } + // Copy ambient occlusion texture if there is one + auto findAmbientOcclusionTextureResult = m_partAmbientOcclusionTextureMap.find(source.first); + if (findAmbientOcclusionTextureResult != m_partAmbientOcclusionTextureMap.end()) { + textureAmbientOcclusionPainter.setClipping(true); + textureAmbientOcclusionPainter.setClipPath(path); + QPen textureBorderPen(triangleMaterials[i].color); + textureBorderPen.setWidth(0); + textureAmbientOcclusionPainter.setPen(textureBorderPen); + textureAmbientOcclusionPainter.drawImage(0, 0, findAmbientOcclusionTextureResult->second); + textureAmbientOcclusionPainter.setPen(Qt::NoPen); + textureAmbientOcclusionPainter.setClipping(false); + hasAmbientOcclusionMap = true; + } } pen.setWidth(0); @@ -133,13 +302,40 @@ void TextureGenerator::process() for (auto j = 0; j < 3; j++) { int from = j; int to = (j + 1) % 3; - textureBorderPainter.drawLine(uv->uv[from][0] * TextureGenerator::m_textureWidth, uv->uv[from][1] * TextureGenerator::m_textureHeight, - uv->uv[to][0] * TextureGenerator::m_textureWidth, uv->uv[to][1] * TextureGenerator::m_textureHeight); + textureBorderPainter.drawLine(uv->uv[from][0] * TextureGenerator::m_textureSize, uv->uv[from][1] * TextureGenerator::m_textureSize, + uv->uv[to][0] * TextureGenerator::m_textureSize, uv->uv[to][1] * TextureGenerator::m_textureSize); } } texturePainter.end(); textureBorderPainter.end(); + textureNormalPainter.end(); + textureMetalnessPainter.end(); + textureRoughnessPainter.end(); + textureAmbientOcclusionPainter.end(); + + if (!hasNormalMap) { + delete m_resultTextureNormalImage; + m_resultTextureNormalImage = nullptr; + } + + if (!hasMetalnessMap && !hasRoughnessMap && !hasAmbientOcclusionMap) { + delete m_resultTextureMetalnessRoughnessAmbientOcclusionImage; + m_resultTextureMetalnessRoughnessAmbientOcclusionImage = nullptr; + } else { + for (int row = 0; row < m_resultTextureMetalnessRoughnessAmbientOcclusionImage->height(); ++row) { + for (int col = 0; col < m_resultTextureMetalnessRoughnessAmbientOcclusionImage->width(); ++col) { + QColor color; + if (hasMetalnessMap) + color.setBlue(qGray(m_resultTextureMetalnessImage->pixel(col, row))); + if (hasRoughnessMap) + color.setRed(qGray(m_resultTextureRoughnessImage->pixel(col, row))); + if (hasAmbientOcclusionMap) + color.setGreen(qGray(m_resultTextureAmbientOcclusionImage->pixel(col, row))); + m_resultTextureMetalnessRoughnessAmbientOcclusionImage->setPixelColor(col, row, color); + } + } + } m_resultTextureImage = new QImage(*m_resultTextureColorImage); @@ -151,8 +347,20 @@ void TextureGenerator::process() m_resultMesh = new MeshLoader(*m_resultContext); m_resultMesh->setTextureImage(new QImage(*m_resultTextureImage)); - + if (nullptr != m_resultTextureNormalImage) + m_resultMesh->setNormalMapImage(new QImage(*m_resultTextureNormalImage)); + if (nullptr != m_resultTextureMetalnessRoughnessAmbientOcclusionImage) { + m_resultMesh->setMetalnessRoughnessAmbientOcclusionImage(new QImage(*m_resultTextureMetalnessRoughnessAmbientOcclusionImage)); + m_resultMesh->setHasMetalnessInImage(hasMetalnessMap); + m_resultMesh->setHasRoughnessInImage(hasRoughnessMap); + m_resultMesh->setHasAmbientOcclusionInImage(hasAmbientOcclusionMap); + } +} + +void TextureGenerator::process() +{ + generate(); + this->moveToThread(QGuiApplication::instance()->thread()); - emit finished(); } diff --git a/src/texturegenerator.h b/src/texturegenerator.h index 922aa58d..811f859e 100644 --- a/src/texturegenerator.h +++ b/src/texturegenerator.h @@ -10,29 +10,46 @@ class TextureGenerator : public QObject { Q_OBJECT public: - TextureGenerator(const MeshResultContext &meshResultContext, QThread *thread); + TextureGenerator(const MeshResultContext &meshResultContext); ~TextureGenerator(); QImage *takeResultTextureGuideImage(); QImage *takeResultTextureImage(); QImage *takeResultTextureBorderImage(); QImage *takeResultTextureColorImage(); + QImage *takeResultTextureNormalImage(); MeshResultContext *takeResultContext(); MeshLoader *takeResultMesh(); + void addPartColorMap(QUuid partId, const QImage *image); + void addPartNormalMap(QUuid partId, const QImage *image); + void addPartMetalnessMap(QUuid partId, const QImage *image); + void addPartRoughnessMap(QUuid partId, const QImage *image); + void addPartAmbientOcclusionMap(QUuid partId, const QImage *image); + void generate(); signals: void finished(); public slots: void process(); public: - static int m_textureWidth; - static int m_textureHeight; + static int m_textureSize; +private: + QPainterPath expandedPainterPath(const QPainterPath &painterPath); private: MeshResultContext *m_resultContext; QImage *m_resultTextureGuideImage; QImage *m_resultTextureImage; QImage *m_resultTextureBorderImage; QImage *m_resultTextureColorImage; - QThread *m_thread; + QImage *m_resultTextureNormalImage; + QImage *m_resultTextureMetalnessRoughnessAmbientOcclusionImage; + QImage *m_resultTextureRoughnessImage; + QImage *m_resultTextureMetalnessImage; + QImage *m_resultTextureAmbientOcclusionImage; MeshLoader *m_resultMesh; + std::map m_partColorTextureMap; + std::map m_partNormalTextureMap; + std::map m_partMetalnessTextureMap; + std::map m_partRoughnessTextureMap; + std::map m_partAmbientOcclusionTextureMap; }; #endif diff --git a/src/texturetype.cpp b/src/texturetype.cpp new file mode 100644 index 00000000..7cbaf6ac --- /dev/null +++ b/src/texturetype.cpp @@ -0,0 +1,5 @@ +#include "texturetype.h" + +IMPL_TextureTypeToDispName +IMPL_TextureTypeToString +IMPL_TextureTypeFromString \ No newline at end of file diff --git a/src/texturetype.h b/src/texturetype.h new file mode 100644 index 00000000..1883cafd --- /dev/null +++ b/src/texturetype.h @@ -0,0 +1,79 @@ +#ifndef TEXTURE_TYPE_H +#define TEXTURE_TYPE_H +#include +#include +#include + +enum class TextureType +{ + None, + BaseColor, + Normal, + Metalness, + Roughness, + AmbientOcclusion, + Count +}; + +QString TextureTypeToDispName(TextureType type); +#define IMPL_TextureTypeToDispName \ +QString TextureTypeToDispName(TextureType type) \ +{ \ + switch (type) { \ + case TextureType::BaseColor: \ + return QObject::tr("Base Color"); \ + case TextureType::Normal: \ + return QObject::tr("Normal"); \ + case TextureType::Metalness: \ + return QObject::tr("Metalness"); \ + case TextureType::Roughness: \ + return QObject::tr("Roughness"); \ + case TextureType::AmbientOcclusion: \ + return QObject::tr("Ambient Occlusion"); \ + case TextureType::None: \ + return QObject::tr("None"); \ + default: \ + return ""; \ + } \ +} + +const char *TextureTypeToString(TextureType type); +#define IMPL_TextureTypeToString \ +const char *TextureTypeToString(TextureType type) \ +{ \ + switch (type) { \ + case TextureType::BaseColor: \ + return "BaseColor"; \ + case TextureType::Normal: \ + return "Normal"; \ + case TextureType::Metalness: \ + return "Metalness"; \ + case TextureType::Roughness: \ + return "Roughness"; \ + case TextureType::AmbientOcclusion: \ + return "AmbientOcclusion"; \ + case TextureType::None: \ + return "None"; \ + default: \ + return ""; \ + } \ +} +TextureType TextureTypeFromString(const char *typeString); +#define IMPL_TextureTypeFromString \ +TextureType TextureTypeFromString(const char *typeString) \ +{ \ + QString type = typeString; \ + if (type == "BaseColor") \ + return TextureType::BaseColor; \ + if (type == "Normal") \ + return TextureType::Normal; \ + if (type == "Metalness") \ + return TextureType::Metalness; \ + if (type == "Roughness") \ + return TextureType::Roughness; \ + if (type == "AmbientOcclusion") \ + return TextureType::AmbientOcclusion; \ + return TextureType::None; \ +} + +#endif diff --git a/src/theme.cpp b/src/theme.cpp index b09c80d0..dd22d024 100644 --- a/src/theme.cpp +++ b/src/theme.cpp @@ -34,6 +34,7 @@ int Theme::toolIconSize = 24; int Theme::miniIconFontSize = 9; int Theme::miniIconSize = 15; int Theme::partPreviewImageSize = (Theme::miniIconSize * 3); +int Theme::materialPreviewImageSize = 75; int Theme::posePreviewImageSize = 75; int Theme::motionPreviewImageSize = 75; int Theme::sidebarPreferredWidth = 200; diff --git a/src/theme.h b/src/theme.h index b9e0f810..d6548569 100644 --- a/src/theme.h +++ b/src/theme.h @@ -34,6 +34,7 @@ public: static QWidget *createVerticalLineWidget(); static int toolIconFontSize; static int toolIconSize; + static int materialPreviewImageSize; static int posePreviewImageSize; static int partPreviewImageSize; static int motionPreviewImageSize; diff --git a/thirdparty/meshlite/meshlite_unstable_vc14_x64/meshlite_ffi.dll b/thirdparty/meshlite/meshlite_unstable_vc14_x64/meshlite_ffi.dll index 837cdd819ebf49860abaebddd5dbf8eafbba2360..8c18771608d74a0816cf293a96f2edf7b2bfca63 100644 GIT binary patch delta 127346 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%0DO>tFy`_g=ZLwUnA=v6(H~rf0n7kFErLrS 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