flagflag  
2: 2014-06-21 (Sat) 21:40:39 iseki source Cur: 2014-10-02 (Thu) 09:04:17 iseki source
Line 1: Line 1:
** OpenSim ジオラマ 開発用 [#w8cfb9a8] ** OpenSim ジオラマ 開発用 [#w8cfb9a8]
 + AddDynamicTextureURL()
 + RenderPlugins[contentType].AsyncConvert​Url(updater.UpdaterID, url, extraParams);
 +   contentType を持つモジュールの AsyncConvertUrl() を呼び出す.
 +
 +#br
 +*** RenderTerrainScale [#o1907c41]
 +- void LLDrawPoolTerrain::renderFullShader() の sDetailScale
 +- デフォルトは 7, テクスチャは (リージョンサイズ/7) 個繰り返し表示される.1/7 = 0.14285714
 +- UVMap は (リージョンサイズ/7) 倍される.
 +- 256にすれば,1枚の画像.
 +#br
*** Terrain Texture [#ta44cfc7] *** Terrain Texture [#ta44cfc7]
Line 17: Line 28:
                                     ↓                ↓                                      ↓                ↓
                                     →          lldrawpoolterrain.cpp                                      →          lldrawpoolterrain.cpp
 + 
#br #br
Line 23: Line 34:
*** Tecture Functions [#zd2d2e9c] *** Tecture Functions [#zd2d2e9c]
- lldrawpoolterrain.cpp - lldrawpoolterrain.cpp
- setVec(sDetailScale, 0.0f, 0.0f, 0.0);+ void LLDrawPoolTerrain::renderFullShaderX() 
 + { 
 +    // Hack! Get the region that this draw pool is rendering from! 
 +    LLViewerRegion *regionp = mDrawFace[0]->getDrawable()->getVObj()->​getRegion(); 
 +    LLVLComposition *compp = regionp->getComposition(); 
 +    // 
 +    LLViewerTexture *detail_texture0p = compp->mDetailTextures[4]; 
 +  
 +    // 
 +    sDetailScale = 0.142857/36.; 
 +  
 +    LLVector4 tp0, tp1; 
 +     
 +    tp0.setVec(sDetailScale, 0.0f, 0.0f, 0.0);
    tp1.setVec(0.0f, sDetailScale, 0.0f, 0.0);     tp1.setVec(0.0f, sDetailScale, 0.0f, 0.0);
 + 
    //     //
    // detail texture 0     // detail texture 0
Line 32: Line 56:
    gGL.getTexUnit(detail0)->bind(detail​_texture0p);     gGL.getTexUnit(detail0)->bind(detail​_texture0p);
    gGL.getTexUnit(0)->activate();     gGL.getTexUnit(0)->activate();
 + 
    LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr;     LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr;
    llassert(shader);     llassert(shader);
 +    
    shader->uniform4fv(LLShaderMgr::OBJE​CT_PLANE_S, 1, tp0.mV);     shader->uniform4fv(LLShaderMgr::OBJE​CT_PLANE_S, 1, tp0.mV);
    shader->uniform4fv(LLShaderMgr::OBJE​CT_PLANE_T, 1, tp1.mV);     shader->uniform4fv(LLShaderMgr::OBJE​CT_PLANE_T, 1, tp1.mV);
 + 
    gGL.matrixMode(LLRender::MM_TEXTURE)​;     gGL.matrixMode(LLRender::MM_TEXTURE)​;
    gGL.loadIdentity();     gGL.loadIdentity();
    gGL.matrixMode(LLRender::MM_MODELVIE​W);     gGL.matrixMode(LLRender::MM_MODELVIE​W);
- + 
-    // +
-    // detail texture 1 +
-    // +
-// S32 detail1 = sShader->enableTexture(LLViewerShaderMgr​::TERRAIN_DETAIL1); +
-// gGL.getTexUnit(detail1)->bind(detail_tex​ture1p); +
- +
-    /// ALPHA TEXTURE COORDS 0: +
- // gGL.getTexUnit(1)->activate(); +
- // gGL.matrixMode(LLRender::MM_TEXTURE); +
- // gGL.loadIdentity(); +
- // gGL.matrixMode(LLRender::MM_MODELVIEW); ​+
- +
-    // detail texture 2 +
-    // +
- // S32 detail2 = sShader->enableTexture(LLViewerShaderMgr​::TERRAIN_DETAIL2); +
- // gGL.getTexUnit(detail2)->bind(detail_tex​ture2p); +
- +
- // gGL.getTexUnit(2)->activate(); +
- +
-    /// ALPHA TEXTURE COORDS 1: +
- // gGL.matrixMode(LLRender::MM_TEXTURE); +
- // gGL.loadIdentity(); +
- // gGL.translatef(-2.f, 0.f, 0.f); +
- // gGL.matrixMode(LLRender::MM_MODELVIEW); ​+
- +
-  // +
-    // detail texture 3 +
-    // +
- // S32 detail3 = sShader->enableTexture(LLViewerShaderMgr​::TERRAIN_DETAIL3); +
- // gGL.getTexUnit(detail3)->bind(detail_tex​ture3p); +
- +
-    /// ALPHA TEXTURE COORDS 2: +
- // gGL.getTexUnit(3)->activate(); +
- // gGL.matrixMode(LLRender::MM_TEXTURE); +
- // gGL.loadIdentity(); +
- // gGL.translatef(-1.f, 0.f, 0.f); +
- // gGL.matrixMode(LLRender::MM_MODELVIEW); ​+
- +
-  // +
-    // Alpha Ramp +
-    // +
-    //S32 alpha_ramp = sShader->enableTexture(LLViewerShaderMgr​::TERRAIN_ALPHARAMP); +
-    //gGL.getTexUnit(alpha_ramp)->bind(m​2DAlphaRampImagep); +
    // GL_BLEND disabled by default     // GL_BLEND disabled by default
    drawLoop();     drawLoop();
 + 
    // Disable multitexture     // Disable multitexture
- // sShader->disableTexture(LLViewerShaderMg​r::TERRAIN_ALPHARAMP); 
    sShader->disableTexture(LLViewerShad​erMgr::TERRAIN_DETAIL0);     sShader->disableTexture(LLViewerShad​erMgr::TERRAIN_DETAIL0);
- // sShader->disableTexture(LLViewerShaderMg​r::TERRAIN_DETAIL1); + 
- // sShader->disableTexture(LLViewerShaderMg​r::TERRAIN_DETAIL2); +
- // sShader->disableTexture(LLViewerShaderMg​r::TERRAIN_DETAIL3); +
- +
- / gGL.getTexUnit(alpha_ramp)->unbind(LLTex​Unit::TT_TEXTURE); +
- // gGL.getTexUnit(4)->disable(); +
- // gGL.getTexUnit(4)->activate(); +
- +
- // gGL.getTexUnit(detail3)->unbind(LLTexUni​t::TT_TEXTURE); +
- // gGL.getTexUnit(3)->disable(); +
- // gGL.getTexUnit(3)->activate(); +
- +
- // gGL.matrixMode(LLRender::MM_TEXTURE); +
- // gGL.loadIdentity(); +
- // gGL.matrixMode(LLRender::MM_MODELVIEW); ​+
- +
- // gGL.getTexUnit(detail2)->unbind(LLTexUni​t::TT_TEXTURE); +
- // gGL.getTexUnit(2)->disable(); +
- // gGL.getTexUnit(2)->activate(); +
- +
- // gGL.matrixMode(LLRender::MM_TEXTURE); +
- // gGL.loadIdentity(); +
- // gGL.matrixMode(LLRender::MM_MODELVIEW); ​+
- +
- // gGL.getTexUnit(detail1)->unbind(LLTexUni​t::TT_TEXTURE); +
- // gGL.getTexUnit(1)->disable(); +
- // gGL.getTexUnit(1)->activate(); +
- +
- // gGL.matrixMode(LLRender::MM_TEXTURE); +
- // gGL.loadIdentity(); +
- // gGL.matrixMode(LLRender::MM_MODELVIEW); ​+
    //----------------------------------​----------------------------------------​--     //----------------------------------​----------------------------------------​--
    // Restore Texture Unit 0 defaults     // Restore Texture Unit 0 defaults
 +    
    gGL.getTexUnit(detail0)->unbind(LLTe​xUnit::TT_TEXTURE);     gGL.getTexUnit(detail0)->unbind(LLTe​xUnit::TT_TEXTURE);
    gGL.getTexUnit(0)->enable(LLTexUnit:​:TT_TEXTURE);     gGL.getTexUnit(0)->enable(LLTexUnit:​:TT_TEXTURE);
Line 143: Line 91:
    {     {
     LLUUID tmp_id;      LLUUID tmp_id;
 + 
     msg->getUUID("RegionInfo", "TerrainDetail0", tmp_id);      msg->getUUID("RegionInfo", "TerrainDetail0", tmp_id);
     compp->setDetailTextureID(0, tmp_id);      compp->setDetailTextureID(0, tmp_id);
Line 152: Line 100:
     msg->getUUID("RegionInfo", "TerrainDetail3", tmp_id);      msg->getUUID("RegionInfo", "TerrainDetail3", tmp_id);
     compp->setDetailTextureID(3, tmp_id);      compp->setDetailTextureID(3, tmp_id);
 + 
     // Iseki      // Iseki
     tmp_id.set("1c5e544e-9198-4681-b87e-9868ae61e461");      tmp_id.set("1c5e544e-9198-4681-b87e-9868ae61e461");


Front page   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 2024Next Month
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today

Who's Online

35 user(s) are online (1 user(s) are browsing xpwiki)

Members: 0
Guests: 35

more...

Access Counter

Today : 4132413241324132
Yesterday : 8599859985998599
Total : 2365113823651138236511382365113823651138236511382365113823651138
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com