OpenSim ジオラマ 開発用 
AddDynamicTextureURL() RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams); contentType を持つモジュールの AsyncConvertUrl() を呼び出す.
RenderTerrainScale 
- void LLDrawPoolTerrain::renderFullShader() の sDetailScale
- デフォルトは 7, テクスチャは (リージョンサイズ/7) 個繰り返し表示される.1/7 = 0.14285714
- UVMap は (リージョンサイズ/7) 倍される.
- 256にすれば,1枚の画像.
Terrain Texture 
- llviewerregion.cpp
- void LLViewerRegion::unpackRegionHandshake()
- Texture のUUID をセット
- void LLViewerRegion::unpackRegionHandshake()
- Render
- pipeline.cpp LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
- p->reander(i)
- lldrawpoolterrain.cpp LLDrawPoolTerrain::render(S32 pass)
- p->reander(i)
- pipeline.cpp LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
llviewerlayer.cpp ↓ llseurfacepatch.cpp → llvicomposition.cpp → llvierwerrecion.cpp ↓ ↓ → lldrawpoolterrain.cpp
Tecture Functions 
- lldrawpoolterrain.cpp
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); // // detail texture 0 // S32 detail0 = sShader->enableTexture(LLViewerShaderMgr::TERRAIN_DETAIL0); gGL.getTexUnit(detail0)->bind(detail_texture0p); gGL.getTexUnit(0)->activate(); LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr; llassert(shader); shader->uniform4fv(LLShaderMgr::OBJECT_PLANE_S, 1, tp0.mV); shader->uniform4fv(LLShaderMgr::OBJECT_PLANE_T, 1, tp1.mV); gGL.matrixMode(LLRender::MM_TEXTURE); gGL.loadIdentity(); gGL.matrixMode(LLRender::MM_MODELVIEW); // GL_BLEND disabled by default drawLoop(); // Disable multitexture sShader->disableTexture(LLViewerShaderMgr::TERRAIN_DETAIL0); //---------------------------------------------------------------------------- // Restore Texture Unit 0 defaults gGL.getTexUnit(detail0)->unbind(LLTexUnit::TT_TEXTURE); gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE); gGL.getTexUnit(0)->activate(); gGL.matrixMode(LLRender::MM_TEXTURE); gGL.loadIdentity(); gGL.matrixMode(LLRender::MM_MODELVIEW); }
- llviewerregion.cpp
- void LLViewerRegion::unpackRegionHandshake()
mCentralBakeVersion = region_protocols & 1; // was (S32)gSavedSettings.getBOOL("UseServerTextureBaking"); LLVLComposition *compp = getComposition(); if (compp) { LLUUID tmp_id; msg->getUUID("RegionInfo", "TerrainDetail0", tmp_id); compp->setDetailTextureID(0, tmp_id); msg->getUUID("RegionInfo", "TerrainDetail1", tmp_id); compp->setDetailTextureID(1, tmp_id); msg->getUUID("RegionInfo", "TerrainDetail2", tmp_id); compp->setDetailTextureID(2, tmp_id); msg->getUUID("RegionInfo", "TerrainDetail3", tmp_id); compp->setDetailTextureID(3, tmp_id); // Iseki tmp_id.set("1c5e544e-9198-4681-b87e-9868ae61e461"); compp->setDetailTextureID(4, tmp_id);
- void LLViewerRegion::unpackRegionHandshake()
- llvlcomposition.h
enum ECorner { SOUTHWEST = 0, SOUTHEAST = 1, NORTHWEST = 2, NORTHEAST = 3, // Iseki //CORNER_COUNT = 4 CORNER_COUNT = 5 };
Counter: 1021,
today: 1,
yesterday: 0
最終更新: 2014-10-02 (木) 09:04:17 (JST) (3822d) by iseki