#author("2024-05-03T17:58:43+00:00","default:iseki","iseki")
** LLMesh [#g136d88e]
- %%http://wiki.secondlife.com/wiki/Avatar_Appearance#Linden_binary_mesh_file %%  違うフォーマットのよう
- http://wiki.secondlife.com/wiki/Mesh/Mesh_Asset_Format
- see OpenSim/Region/Physics/Meshing/Meshmerizer.cs: GenerateCoordsAndFacesFromPrimMeshData()
#author("2024-05-04T03:40:29+00:00","default:iseki","iseki")


*** 概要 [#nf8cf1f4]
- [[LLSD]] 形式のメッシュデータ
- llmeshデータ = LLSD ヘッダ(LLSDバイナリ) + deflateデータ



*** llsd ヘッダ [#d16d1619]
- LLSD 形式のバイナリ
- [[ヘッダサンプル>./header]]
- 以下のサンプルは llmesh のヘッダを JunkBox_Lib で XMLに変換したもの.

 <llsd>
    <map>
        <key>high_lod</key>
        <map>
            <key>offset</key>
            <integer>38760</integer>
            <key>size</key>
            <integer>82221</integer>
        </map>
        <key>low_lod</key>
        <map>
            <key>offset</key>
            <integer>5356</integer>
            <key>size</key>
            <integer>7734</integer>
        </map>
        <key>lowest_lod</key>
        <map>
            <key>offset</key>
            <integer>1210</integer>
            <key>size</key>
            <integer>4146</integer>
        </map>
        <key>medium_lod</key>
        <map>
            <key>offset</key>
            <integer>13090</integer>
            <key>size</key>
            <integer>25670</integer>
        </map>
        <key>physics_convex</key>
        <map>
            <key>offset</key>
            <integer>805</integer>
            <key>size</key>
            <integer>405</integer>
        </map>
        <key>skin</key>
        <map>
            <key>offset</key>
            <integer>0</integer>
            <key>size</key>
            <integer>805</integer>
        </map>
    </map>
 </llsd>


*** ボディ [#p37d3374]
- deflate で圧縮された LLSD バイナリ
- 以下のサンプルは llmesh のボディを JunkBox_Lib で XMLに変換したもの.
-- <binary> の内容は長いので,省略している.
- 座標などのバイナリデータは 符号なし16bit整数を Min,Max 間で正規化したもの.法線ベクトルは -1.0~1.0 間で正規化.

 <llsd>
    <array>
        <map>
            <key>Normal</key>
            <binary>QF2Il+v48r68nh...</binary>
            <key>Position</key>
            <binary>4KLPjv/prrfPjp...</binary>
            <key>PositionDomain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.500000</real>
                    <real>0.500000</real>
                    <real>0.500000</real>
                </array>
                <key>Min</key>
                <array>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                </array>
            </map>
            <key>TexCoord0</key>
            <binary>/Fq5goNaFnY/a8...</binary>
            <key>TexCoord0Domain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.983160</real>
                    <real>0.987910</real>
                </array>
                <key>Min</key>
                <array>
                    <real>0.003640</real>
                    <real>0.009650</real>
                </array>
            </map>
            <key>TriangleList</key>
            <binary>AAABAAIAAgADA...</binary>
            <key>Weights</key>
            <binary>Bv///wb///8G/...</binary>
        </map>
        <map>
            <key>Normal</key>
            <binary>NJn/f4ECe2wSk...</binary>
            <key>Position</key>
            <binary>tIG7flu4QnWYh...</binary>
            <key>PositionDomain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.500000</real>
                    <real>0.500000</real>
                    <real>0.500000</real>
                </array>
                <key>Min</key>
                <array>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                </array>
            </map>
            <key>TexCoord0</key>
            <binary>3+CJrOLaOJnN...</binary>
            <key>TexCoord0Domain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.993510</real>
                    <real>0.985410</real>
                </array>
                <key>Min</key>
                <array>
                    <real>0.007760</real>
                    <real>0.006590</real>
                </array>
            </map>
            <key>TriangleList</key>
            <binary>AAABAAIAAwA...</binary>
            <key>Weights</key>
            <binary>Bv///wb///8...</binary>
        </map>
        <map>
            <key>Normal</key>
            <binary>HO2LnwK78MJ...</binary>
            <key>Position</key>
            <binary>RNUAiErWI88...</binary>
            <key>PositionDomain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.500000</real>
                    <real>0.500000</real>
                    <real>0.500000</real>
                </array>
                <key>Min</key>
                <array>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                </array>
            </map>
            <key>TexCoord0</key>
            <binary>FB1RibIfWZZ...</binary>
            <key>TexCoord0Domain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.689960</real>
                    <real>0.993080</real>
                </array>
                <key>Min</key>
                <array>
                    <real>0.001510</real>
                    <real>0.015280</real>
                </array>
            </map>
            <key>TriangleList</key>
            <binary>AAABAAIAA...</binary>
            <key>Weights</key>
            <binary>Bv///wb/8...</binary>
        </map>
        <map>
            <key>Normal</key>
            <binary>Nn5CoNn7k...</binary>
            <key>Position</key>
            <binary>U7WMgE+uV...</binary>
            <key>PositionDomain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.500000</real>
                    <real>0.500000</real>
                    <real>0.500000</real>
                </array>
                <key>Min</key>
                <array>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                </array>
            </map>
            <key>TexCoord0</key>
            <binary>rwRMHrYDWB6...</binary>
            <key>TexCoord0Domain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.998020</real>
                    <real>0.999050</real>
                </array>
                <key>Min</key>
                <array>
                    <real>0.007630</real>
                    <real>0.000000</real>
                </array>
            </map>
            <key>TriangleList</key>
            <binary>AAABAAIAgA...</binary>
            <key>Weights</key>
            <binary>BP///wT///...</binary>
        </map>
        <map>
            <key>Normal</key>
            <binary>zHuw+jikCI...</binary>
            <key>Position</key>
            <binary>7qe3lX0Dkr...</binary>
            <key>PositionDomain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.500000</real>
                    <real>0.500000</real>
                    <real>0.500000</real>
                </array>
                <key>Min</key>
                <array>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                </array>
            </map>
            <key>TexCoord0</key>
            <binary>sNIaTrXZyF...</binary>
            <key>TexCoord0Domain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.993160</real>
                    <real>1.000000</real>
                </array>
                <key>Min</key>
                <array>
                    <real>0.000000</real>
                    <real>0.005020</real>
                </array>
            </map>
            <key>TriangleList</key>
            <binary>AAABAAIAAwAE...</binary>
            <key>Weights</key>
            <binary>EP9/D/9//xD/...</binary>
        </map>
        <map>
            <key>Normal</key>
            <binary>CPN2nTpQwO3/...</binary>
            <key>Position</key>
            <binary>2r+cjsp4vcP/...</binary>
            <key>PositionDomain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.500000</real>
                    <real>0.500000</real>
                    <real>0.500000</real>
                </array>
                <key>Min</key>
                <array>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                    <real>-0.500000</real>
                </array>
            </map>
            <key>TexCoord0</key>
            <binary>E6TCIeOjtCg...</binary>
            <key>TexCoord0Domain</key>
            <map>
                <key>Max</key>
                <array>
                    <real>0.991700</real>
                    <real>0.995860</real>
                </array>
                <key>Min</key>
                <array>
                    <real>0.007720</real>
                    <real>0.010140</real>
                </array>
            </map>
            <key>TriangleList</key>
            <binary>AAABAAIAADAA...</binary>
            <key>Weights</key>
            <binary>DP///wz///8M...</binary>
        </map>
    </array>
 </llsd>

**** [[lod sample>./lod]]
#br
#ls2


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS