PanoSalado 3d Objects
Every space can contain many 3D objects of any avaible type. It is possible to have e.g. additional cube floating inside cubic panorama, but attributes of this cube must be altered in order for it to be visible. Besides, it is hard to find any practical reason to have cube inside panorama. Usual use of 3D objects is having one 3D object for displaying panorama, and bunch of hotspots pinned to its surface.
There are basically two types of avaible 3D objects:
- Hotspots are only reasonable additional 3D objects that should be added to scene besides the one displaing panorama. They are intended to be pinned to panorama surface, and to recieve user interaction.
- Other 3D objects are textured with panorama images and are used for displaying panoramas. Very important attribute in every 3D object is segments attribute. It determines objects complexity - more segments it contains, less waviness is visible, but panorama runs slower. Best way to speed up panorama is by setting dynamicQualityAdjustment value to false and giving 3D object displaying panorama additional segments until quality/speed is acceptable.
hotspot
<hotspot id="my_hotspot"
useOwnContainer="true"
useHandCursor="true"
pan="15"
tilt="0"
onClick="action"
>
<file>graphics/hotspot.png</file>
</hotspot>- Same thing as plain, but with pan and tilt arguments, that make it easy to place
- hotspot is facing camera by default
- It is used to navigate between panoramas and by performing special actions after user interacts with panorama surface
- arguments useOwnContainer value needs to be set to "true" in order for hotspot to be visible
cube
<cube id="my_cubical_pano" segments="16">
<file face="front">images/cube/pano_11.jpg</file>
<file face="right">images/cube/pano_22.jpg</file>
<file face="back">images/cube/pano_33.jpg</file>
<file face="left">images/cube/pano_44.jpg</file>
<file face="top">images/cube/pano_55.jpg</file>
<file face="bottom">images/cube/pano_66.jpg</file>
</cube>- Only 3D object that does not has vawy nadirs and zeniths
- With default segments value panorama is very vawy, but increasing its value solves this problem while keeping panorama fast
- From my experience, this is best way of displaying panoramas
sphere
<sphere id="my_spherical_pano">
<file>images/sphere/pano.jpg</file>
</sphere>- Sphere from Papervison 3D is based on 4-side faces
- It has wavy nadirs and zeniths for low segments value, for high values it is rather slow
geodesicSphere
<geodesicSphere id="my_spherical_pano">
<file>images/sphere/pano.jpg</file>
</geodesicSphere>- Geodesic sphere is a triangulation of a Platonic solid, so in oposition to sphere based on 4-side faces, it is builded out of triangles
- Same as sphere, it has wavy nadirs and zeniths and for high segments value it is slow
cylinder
<cylinder id="my_cylindrical_pano" autoFOV="true" segments="16">
<file>images/cylinder/pano.jpg</file>
</cylinder>- Currently cylinder shows outer bounds when zooming out. Possible workarounds are:
- Disabling zooming by setting cameraMinimumZoom and cameraMaximumZoom to same value
- Set cameraMinimumTilt and cameraMaximumTilt to values that entire cylinder is visible only while maximum zoomout. Then zooming out will not be a problem, but while zooming in less of cylinder will be accessible
- Others types of displaying panoramas functionate better, so shuold they be used instead
Plane
<plane id="plane" segments="4" useOwnContainer="true" rotationY="90" width="1000" height="1000" x="3000">
<file>images/light_red/light_red_prev.jpg</file>
</plane> - It is used to display flat surfaces
- It is basically the same thing as hotspot, but it is much harder to place
QTVR
<qtvr id="qtvr_preview_pano" applyCameraSettingsFromThisQTVR="true">
<mov>PSQTVRPreviewParse.php?mov=images/qtvr_lgphoto/20070824_LG.mov</mov>
</qtvr>
[...]
<qtvr id="qtvr_fullres_pano" applyCameraSettingsFromThisQTVR="true">
<mov>PSQTVRParse.php?mov=images/qtvr_lgphoto/20070824_LG.mov</mov>
</qtvr> - QTVR requires files to be hosted on server supporting php
- *.mov files need to contain cube faces
- compressed headers are NOT compatible
- I haven't seen it working yet, so I would be glad to hear from someone who succedded at this