From 582e9250adffeb85071148dc7fb42d4b81b4ffce Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 11 Dec 2020 00:12:21 +0000 Subject: [PATCH] update warp3d.dll; let prims have a bit higher LOD --- .../World/Warp3DMap/Warp3DImageModule.cs | 28 ++++++++++++------ bin/Warp3D.dll | Bin 74240 -> 74240 bytes 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs index 4924bf84c4..9338426998 100644 --- a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs +++ b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs @@ -66,7 +66,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap #pragma warning disable 414 private static string LogHeader = "[WARP 3D IMAGE MODULE]"; #pragma warning restore 414 - private const float m_cameraHeight = 4096f; internal Scene m_scene; private IRendering m_primMesher; @@ -83,6 +82,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap private bool m_texturePrims = true; // true if should texture the rendered prims private float m_texturePrimSize = 48f; // size of prim before we consider texturing it private bool m_renderMeshes = false; // true if to render meshes rather than just bounding boxes + + private const float m_cameraHeight = 4096f; private float m_renderMinHeight = -100f; private float m_renderMaxHeight = 4096f; @@ -122,7 +123,14 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap m_renderMaxHeight = Util.GetConfigVarFromSections(m_config, "RenderMaxHeight", configSections, m_renderMaxHeight); m_renderMinHeight = Util.GetConfigVarFromSections(m_config, "RenderMinHeight", configSections, m_renderMinHeight); + /* + m_cameraHeight = Util.GetConfigVarFromSections(m_config, "RenderCameraHeight", configSections, m_cameraHeight); + if (m_cameraHeight < 250f) + m_cameraHeight = 250f; + else if (m_cameraHeight > 4096f) + m_cameraHeight = 4096f; + */ if (m_renderMaxHeight < 100f) m_renderMaxHeight = 100f; else if (m_renderMaxHeight > m_cameraHeight - 10f) @@ -205,9 +213,6 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap viewHeight = (int)m_scene.RegionInfo.RegionSizeY; orto = true; -// fov = warp_Math.rad2deg(2f * (float)Math.Atan2(viewWitdh, 4096f)); -// orto = false; - Bitmap tile = GenImage(); // image may be reloaded elsewhere, so no compression format string filename = "MAP-" + m_scene.RegionInfo.RegionID.ToString() + ".png"; @@ -261,7 +266,7 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap #endregion Camera renderer.Scene.setAmbient(warp_Color.getColor(192, 191, 173)); - renderer.Scene.addLight("Light1", new warp_Light(new warp_Vector(0f, 1f, 8f), warp_Color.White, 0, 320, 40)); + renderer.Scene.addLight("Light1", new warp_Light(new warp_Vector(0f, 1f, 8f), warp_Color.White, 0, 200, 20)); CreateWater(renderer); CreateTerrain(renderer); @@ -501,7 +506,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap if (screenFactor < 0) return; - int p2 = (int)(-(float)Math.Log(screenFactor) * 1.442695f * 0.5 - 1); + const float log2inv = -1.442695f; + int p2 = (int)((float)Math.Log(screenFactor) * log2inv * 0.25 - 1); if (p2 < 0) p2 = 0; @@ -578,12 +584,12 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap if (faceColor.A == 0) continue; - string materialName = String.Empty; + string materialName = string.Empty; if (m_texturePrims) { - // if(lod > DetailLevel.Low) + // if(lod > DetailLevel.Low) { - // materialName = GetOrCreateMaterial(renderer, faceColor, teFace.TextureID, lod == DetailLevel.Low); + // materialName = GetOrCreateMaterial(renderer, faceColor, teFace.TextureID, lod == DetailLevel.Low); materialName = GetOrCreateMaterial(renderer, faceColor, teFace.TextureID, false, prim); if (String.IsNullOrEmpty(materialName)) continue; @@ -812,21 +818,25 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap #region Static Helpers // Note: axis change. + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private static warp_Vector ConvertVector(float x, float y, float z) { return new warp_Vector(x, z, y); } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private static warp_Vector ConvertVector(Vector3 vector) { return new warp_Vector(vector.X, vector.Z, vector.Y); } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private static warp_Quaternion ConvertQuaternion(Quaternion quat) { return new warp_Quaternion(quat.X, quat.Z, quat.Y, -quat.W); } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private static int ConvertColor(Color4 color) { int c = warp_Color.getColor((byte)(color.R * 255f), (byte)(color.G * 255f), (byte)(color.B * 255f), (byte)(color.A * 255f)); diff --git a/bin/Warp3D.dll b/bin/Warp3D.dll index 583c0bea465475f5876648ae9926dc831a9de5fd..0c41ed93226582c59a92911eafa3e3a751d089f9 100755 GIT binary patch delta 8327 zcmcJV33wF6w#Uz@%=A=uXOfvrlF4L}2m*$%NI(K%HN+qR0YyMSwjd}VTToCh0Xtz+ z7Fk|n0M{r%kzEnO5;h44As{LuSM*)*dVwnh<0pKbM zkTmL`6%C+!{W<`KsTDnTD;@2*9iaH`W}M4=b4}cKHt_I=SeRx#=26o1? zt*wBj`L%JC0FIw@mh$8f1g)Mn?oqmV^`anxE8z0GOuZ;cB;9^@v|bbvNl!i5(iGux ztAO9-6lr1HD%#NJagxo|-SoTlB1=>zoSaG<`nZ!6P9iJXPYKaV3o`tswVh6DPQ$|S zUu{^mYyGPY-~De5Q?>R#8?*lDVeXtFhv|%1%*4Mr;@|hd0@pv9>i^>r|9-&M|JTC) zewcrElr;X|#jlF@e>Qyo?z;Ydl)o9I$M5QAa=*Kuvrhy6%SN@InVP<#Z0fw`R<;LW zO-SfIPaD$qq4uPY`Ep5r33l{o@OnyT(s@#sk|NA==TgqnU^miPNkT8h_aOZwN$7!? zY|^Y`p?hVzDW#*}9#<~urkEb2wUc{z65(sew&->gvPoN@(2u0fl**-6NG+FICN+r( z&puRXB6OGfqpaaOsUUscHH6ihDl{opbj2BlGk`Q#FB(QeQcHuivZwRng;RBs(3vv* zvAZv&ZzPHNsFx^a=xVf>mHPSs(q7>qWL>}?CGG1UNxCd7W}+B`PN(KI_$5wgbHC6( zxkL@qK+NTIV~n(p@t_6c^&w=)O&(9GQS&G}gfzX`o*uCy7PzbD@)B+K|qax-Ic3N*|QEJ!Neal}Z)bC_IVstx8&ZnyAZmG9P?Jjk`R9$KvsSirErFx~NOMOV{VoToM zi<(N!JQonXJ`y#9v?%HY(#PCll*cJBHR#|GBfFXWD9zAcQboE}%8R5+Jui_ymmoX? zv`iZ8iG7`P70sUp@5(tlD(CDQOwK!mUTKSL$mr=P4P0-q^KKiEzOsCUX%J3$$G77OAsIX+deHASB5Bay><)#Udj7 zK`Je!MIcrYL8l%et));AAhi8t`ah{#2nKZ#VJ0<}Cd7eg(a9QfN zvbJASM9u}uu@FQAAk;|Ly0QT`MK8TcNIfMB9F*2N(i)ceH+10>Ez@tw>gvh{-j?Zl zGJRe8n9^qvb(fwfhM1LjsasPhZNb@8k+m-@G)fu*Qnv^*jF;9cx=8PpK9^-$Y&nFn z0WnV>(UKvwk=xkGcedplam#2?4$`rMa4hgP>DK5~q-W%|6lD{^TH|j+x7!U7VmtUc zQc<0zs=J)Lfzth>DoFc=wvmdBs===^xSZ`eQm*l2QWyN{6@mFms2i#75izkXN}Qql zq`oAzP^xOhqFy5$&~}lNAtPX*XD_9H+le)@LqR#dCO#3j3+2wvlCgb*i6+m`(WF6T zQ0RxjYSOY8;i)GJ{WL7}rp&3Lt|!82c~*L3EpZNCaEaZY6ZnWUpT^;sZyhhc?TT~k zT%e_)QPR?AkSe#_2{|8sk(=sfa(l|pf?lK}rM@in&bV%rv&|>;F*+p?<_5Z11ncF7 zarXL7S@n5Y^<}9I5=1j6ql7wDI}aYGx)f()iFw{Uqz9u7I0}*bT zj5ZBKkZK@;w220rWb@APGKZqnId%|!2)sajoK7b^!X5M^q+=(sqkaF5kae8Wn`?>p z>6!3^?@#nR^VJqq0$SjV#|>>1El563wG}989X{{zzyw91dv&Vp8 zinb*IH(|e`wAeGAXh@-#aN#*Re5RMj3nLT`3ZL=Bz?X{pC!X=dLS|jzIy329yaqm4 z{ollWaC<#zgJ)9c4FNJ0^+_@9Hao+;HOi|_cRU_+`FI??{5zE6(|7`e6+Iga@k47=m5j@a0qvnvC$?2VLeXJ6kHZrF}@ggs5DeJq8C z??aMG;El{oo}Q?$}Z7A=H++OogzUSV zW}Ac`=TAe9qE&7|`HJ3mkFyVa5RRS5pMeQZ9>rdfeffiym}WQJlhJS*x8PisQ`39i zu{af=g+r~AcDbfQlA?|Yvu$fn*s}QxP>?M=O5i>HB|aanDf-Y@&TSao%CT(>E2Vu(~Ug@d&O_+qe9uiav390?`5U%g* z*p6|NhjDs8hb9}QeQ1A1???17-aFXId(|^SPr+V_ZidI|saUA!3C{#Q4d+H^8ov$S zQKYAg)o;hmik|gMu|MgPIp=&kTtgx=R%S zJ$PJEIyb-4F;dVf4!C>&?P zF@8lKjPxL&tCT(<|3p;>Sq(gHeDrieB`&jUjl=A=((GF%-j3N>BJG!L-L53^()} zkKz)Q*CjS+Jci{H9gp{jhGXBS9Lfkxus0l>lA3CaMAuxAR|0SFy2dDso-aM9{>FB< znlL@UN7iJ-wlSW-FKx%qo!G&Cqh?COuErm*+Y;$bANL+KCSif1kx_k(B79QO>7+q+ z=R@JtM-2-PsJt1mJ}AM@6*Y|-ZI>Jhk=OPzXek4JbOrz#Q;xl4yS zTE)g3>|Q23oa1614wEE~i?KKl_d5hX#33xeV~UoCXB!J6^nrV}QHqz8ZId?1cp2dh zpsNIyhZhlbdQ;F$xbB*5yotjkl@KkmjJL6JnJ}Kl(FT2af!|7UnqQ0Y<+31krp#E6 zLn5@o*nkrvwBFc=?>huJUJWYn0eZ%X26O1?T!9ZOI+duw7964IBkdBmw%`hd2U9Nb zEqGSZZb{AGa;jiP+wte#j`6N+p-{iP{FpViLeC9*mk25Ypro;F40aL zt*Dgf18lTblq-Q`>e^llZwjP>f7A9EAEIxaFp5yV#H%q+QYoyAJ7iSjMM=&w9mYB0 z4G&6aW;8gAHZH$s6Ek9yrJk%_-EsDvu2LztWng!h%zr={SA(-tznoy;5tS5L|3sULVoiamc8$IW(M;3 z&v-*pDcplW^Jjd}+9-|kNp%y8C6&U@v9-;cn7v8ZO5u~Z+9t5?6is#2Hjz1_7g3@C zV~Z+;r=WC`v2P+YOE*~bW@!WF&oaF%Uy*n{iDe@;TaK|NmOfgr70URH?{V&9m0KK} zI2L_u(pHDwW^GI#D^t|gU4%Y%LeVjPH`#vMH6Od;*r;nkswIA#Q%hs-KptR^ZUbr` zXTk(S;Cx{u`g2ShGr+2p>u0_^qS2L3!6QWRZ1i@A9&u@qz_ux>=NEKd5WRYQ6?>nV zz^+HAml^MfJmj&D!j&qU)~v%sMP_ zr&CP^Q9YKYDC8M#rmI1e!eIY6GlLD4HWAJPc>^|Ckoq9kfPE>*k{Bdo=B``DV!bh2 zBnZWdrtxO%Y=kD7cd`84w>+nqE!bv<=!Nq+vo-6tN0x(Pw$No^*cC;`_~ZOumb2IK{33C& zc`sWWp;ygLtU{0)Z)f(IL%azuH#@Vh9I|*TK9P53ryZnI@Ex-YgMG3fK0<`w3HtRO<$&0cJgqHo<5W*>G$(aMx6vmf()=+t>GwlNH3If|_DuEsEk z6)J2Nsxk+&az%x~Dsw11t|+WGhT+V+->IfMFTxS5o}wkmHRcG`UePoBV{;_yAE7VI zG3==boiYpAd`0(I{0nnDTd8m)(FC?%Q4)3LX?8==ByW{j#4-;!%}?^4F)cPMLf@Mu zY>A?aNfqWaR-{W9Hi?4Rd^^Uu0KF1~~IvTRBo3mKC!UfdC0+xNyajoO4G8eHL zMe#&SSV4_r(|r}@E9|18MhRN?M+tyuwxrXlfR4=EBdP^ zW_WZtt5mp8ziPh4Qa*BA`;hAjmLH+`=y%wJ2wgQ-u}VedsqxWk*fmAB2a0eVn|#En zWgyQo*Rh%-8)A+%kFy%Ow&0%RESDe8#pg=x<_h84ng&hf({~nTrjD2SQ(aB5G$zcN z;twIAJnoT}`lzN^toqn~jv^&9sJEQM} z0JJ0x!$YKXU@&Pzc$V}oSe{F_Hn58H9ym>UAN)Yt6PAR{eGWAKXE_UGp}cE!MiUExUJ{CGnVthf~~WDtXL34j&ak~5BZ|lYa(51VeLd* zP_a7+yW!%CL2SD?CK=m%zm5_f&h_=;e#!Vc<}Usz8S7wLMQRvNu&7+{F20_MP0cL& eChSgVM&HP^sPNaqYSc5GeyVrn|NQeuF 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