<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chromanoid+Xeno</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chromanoid+Xeno"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Chromanoid_Xeno"/>
	<updated>2026-06-28T12:14:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LayerData&amp;diff=60485</id>
		<title>LayerData</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LayerData&amp;diff=60485"/>
		<updated>2008-03-29T18:33:53Z</updated>

		<summary type="html">&lt;p&gt;Chromanoid Xeno: /* Usage and Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ProtocolNav}}&lt;br /&gt;
==Message Layout==&lt;br /&gt;
&amp;lt;pre width=80&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	LayerData High Trusted Unencoded&lt;br /&gt;
	{&lt;br /&gt;
		LayerID				Single&lt;br /&gt;
		{	Type			U8	}&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
	{&lt;br /&gt;
		LayerData			Single&lt;br /&gt;
		{	Data			Variable	2	}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Usage and Notes==&lt;br /&gt;
&lt;br /&gt;
LayerData packets transmit terrain, wind, and cloud information using a custom IDCT routine similar to JPEG but with different coefficients. The data in these packets is stored in a proprietary format of 16x16 meter blocks.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
&lt;br /&gt;
      -  76 : LLSurface (terrain)&lt;br /&gt;
      -  55 : LLWind (wind)&lt;br /&gt;
      -  56 : LLCloudLayer (Cloud)&lt;br /&gt;
&lt;br /&gt;
Data:&lt;br /&gt;
&lt;br /&gt;
:[patchgroupSize] - uint8&lt;br /&gt;
:[unk] - uint8&lt;br /&gt;
:[patchHeader]&lt;br /&gt;
::[patchSize] - uint8&lt;br /&gt;
::[unknown0] - uint32&lt;br /&gt;
::[unknown1] - uin16&lt;br /&gt;
::[unknown2] - 10 bit unsigned integer&lt;br /&gt;
:[patchData]&lt;br /&gt;
::[zeroCode] - One bit. If 0, the data is zerocoded&lt;br /&gt;
::[hasData] - One bit, If 0, the entire patch is zeros.&lt;br /&gt;
::[data] - has a size of (patchSize % 16) + 2&lt;br /&gt;
::[data] ... - repeat until patchSize has been read&lt;br /&gt;
:[patchHeader] ... - repeat until patchgroupSize has been read&lt;br /&gt;
::...&lt;br /&gt;
&lt;br /&gt;
The data then has to be decompressed, and I have no idea how this data is used.&lt;br /&gt;
&lt;br /&gt;
You may find some use from the psuedocode at [http://www.libsecondlife.org/wiki/LayerData LibSecondLife.org]&lt;br /&gt;
&lt;br /&gt;
[[Category:Messages]]&lt;/div&gt;</summary>
		<author><name>Chromanoid Xeno</name></author>
	</entry>
</feed>