I've heard HD View (and HD View SL) can accept image pyramids written for KML (Google Earth), but couldn't find the way to successfully modify the HD View XML. Until I looked at this page:
http://research.microsoft.com/en-us/um/redmond/groups/ivm/HDView/Preview/
Here they show some KMLs and their corresponding HD View XMLs.
Example:
KML:
<PhotoOverlay>
...
<Icon>
<href>http://site.com/tiles/$[level]/$[y]/$[x].jpg</href>
</Icon>
<ViewVolume id="viewvolume">
<leftFov>-97.0925</leftFov>
<rightFov>97.0925</rightFov>
<bottomFov>-33.0208</bottomFov>
<topFov>47.0724326915678</topFov>
<near>120.0</near>
</ViewVolume>
<ImagePyramid>
<tileSize>256</tileSize>
<maxWidth>59783</maxWidth>
<maxHeight>24658</maxHeight>
<gridOrigin>upperLeft</gridOrigin>
</ImagePyramid>
</PhotoOverlay>
HD View XML:
<imageset
url="http://site.com/tiles/{l}/{r}/{c}.jpg"
levels="9"
width="59783"
height="24658"
tileWidth="256"
tileHeight="256"
tileOverlap="0"
projection="spherical"
thetaMin="82.9075"
thetaMax="277.0925"
phiMin="42.9275673084322"
phiMax="123.02080000000001"
maxZoom="2"
areTilesPadded="true" />
Where:
{l} is $[level], {r} is $[y], {c} is $[x]
dFov = rightFov - leftFov
thetaMin is 180 - dFov/2, thetaMax is 180 + dFov/2 (the center of the HD View panorama must be at 180)
phiMin is 90 - topFov, phiMax is 90 - bottomFov
tileOverlap="0"
areTilesPadded="true"
It works!