Index: projectionDesigner/tag/ProjectionDesigner_1.1.5/doc/base.css
===================================================================
--- projectionDesigner/tag/ProjectionDesigner_1.1.5/doc/base.css	(revision 4)
+++ projectionDesigner/tag/ProjectionDesigner_1.1.5/doc/base.css	(revision 4)
@@ -0,0 +1,230 @@
+@charset "UTF-8";
+
+HTML {
+	PADDING-RIGHT: 0px;
+	PADDING-LEFT: 0px;
+	BACKGROUND: #FFF
+	PADDING-BOTTOM: 0px;
+	MARGIN: 0px;
+	PADDING-TOP: 0px;
+}
+
+BODY {
+	PADDING-RIGHT: 0px;
+	PADDING-LEFT: 0px;
+	FONT-SIZE: small;
+	BACKGROUND: #FFF;
+	PADDING-BOTTOM: 0px;
+	MARGIN: 1px;
+	PADDING-TOP: 0px;
+	FONT-FAMILY: "Trebuchet MS", Verdana, "Lucida Sans", "Lucida Sans Unicode", Arial, Sans-Serif;
+}
+
+/*
+"",inherit
+}
+*/
+
+.clear {
+	CLEAR: both
+}
+.pad {
+	padding: 5px;
+
+}
+
+.menuBox {
+	padding: 5px;
+	border: 1px solid #DDD;
+	margin: 0px 10px 10px 10px;
+	background: #FFF url(./images/bg_gray.png);
+	background-repeat: repeat-x;
+	text-align: left;
+}
+
+.menuBox ul {
+  margin: 0px 0px 10px 5px;
+@padding: 10px 30px;
+	list-style-image: url('./images/li_bl.gif');
+}
+
+.menuBox h2 {
+	margin: 10px 0px 10px 0px;
+	padding: 3px 3px 3px 8px;
+	font-size: 100%;
+	color: #8F8F8F;
+	background: #FFF url(./images/gray_stripe.png);
+	background-repeat: repeat-x;
+	letter-spacing: 0pt;
+	border-left: 4px solid #CCC;
+	border-right: 1px solid #DDD;
+	border-bottom: 1px solid #DDD;
+}
+
+
+P {
+	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-TOP: 0px
+}
+
+a {
+	color: #9c9c9c;
+	text-decoration: none;
+	font-weight: bold;
+}
+a:hover {
+	color: #E92;
+	text-decoration: underline;
+}
+
+a:visited {
+  color: #9c9c9c;
+}
+
+a:visited:hover {
+	color: #E92;
+	text-decoration: underline;
+}
+
+#header {
+	width: 100%;
+	height: 95px;
+	background: #FFF url(./images/bg_gray.png);
+	background-repeat: repeat-x;
+	margin: 0px;
+}
+
+#header img {
+	margin-left: -5px;
+	margin-top: 17px;
+}
+
+
+
+
+
+p,dl {
+	margin: 5px 10px 10px 20px;
+}
+dt {
+	margin-left: 10px;
+	font-weight: bold;
+	color: #888;
+}
+dd {
+	margin-bottom: 5px;
+}
+
+
+/* padding for IE indent problem. */
+
+
+
+
+
+#container {
+	PADDING-TOP: 0px;
+	PADDING-RIGHT: 0px;
+	PADDING-LEFT: 0px;
+	PADDING-BOTTOM: 0px;
+	WIDTH: 100%;
+	background: #FFF;
+	margin-top: 5px;
+}
+
+#container img {
+	margin: 5px;
+	padding: 5px;
+	border: 1px solid #DDD;
+}
+
+
+
+#left-container {
+	background: #CCC url(./images/stripe.gif);
+	FLOAT: left;
+	WIDTH: 100%;
+	MARGIN-RIGHT: -200px;
+	padding-top: 10px;
+}
+
+#left-container .sub {
+	FLOAT: right;
+	MARGIN-LEFT: -200px;
+	WIDTH: 100%;
+}
+
+#right-container {
+	padding-top: 10px;
+}
+
+
+#main {
+	PADDING: 0px;
+	BACKGROUND: #EEE;
+	MARGIN: 0px 200px 150px 200px;
+	border: 1px solid #D2D2D2;
+}
+
+#main ul {
+  margin: 0px 0px 10px 10px;
+@padding: 10px 30px;
+  list-style-image: url('./images/li_bl.gif');
+}
+
+
+#main h2 {
+	margin: 5px 0px 10px 0px;
+	padding: 7px;
+	font-size: 110%;
+	color: #8F8F8F;
+	background: #FFF url(./images/bg_gray.png);
+	background-repeat: repeat-x;
+	letter-spacing: 1pt;
+	border-left: 6px solid #BBB;
+	border-right: 1px solid #DDD;
+	border-bottom: 1px solid #DDD;
+}
+
+#main h3 {
+	margin: 5px 0px 5px 11px;
+	padding: 3px 3px 3px 6px;
+	font-size: 105%;
+	color: #8F8F8F;
+	letter-spacing: 1pt;
+	background: #FFF url(./images/bg_gray.png);
+	border-left: 5px solid #CCC;
+	border-right: 1px solid #DDD;
+	border-bottom: 1px solid #DDD;
+}
+
+#main h4 {
+	margin: 5px 5px 5px 20px;
+	padding: 2px 2px 2px 10px;
+    letter-spacing: 1pt;
+	font-size: 100%;
+	color: #666;
+	border-bottom: 2px dotted #CCC;
+}
+
+
+#left {
+	CLEAR: all;
+
+	FLOAT: left;
+	WIDTH: 200px;
+}
+#right {
+
+	FLOAT: right;
+	WIDTH: 200px;
+}
+
+#footer {
+	BACKGROUND: #E5E5E5;
+	width: 100%;
+	background: #FFF url(./images/bg_gray.png);
+	background-repeat: repeat-x;
+	text-align: center;
+}
+
+
Index: projectionDesigner/tag/ProjectionDesigner_1.1.5/doc/index.html
===================================================================
--- projectionDesigner/tag/ProjectionDesigner_1.1.5/doc/index.html	(revision 4)
+++ projectionDesigner/tag/ProjectionDesigner_1.1.5/doc/index.html	(revision 4)
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="ja">
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+	<title>Projection Designer</title>
+	<meta http-equiv="content-style-type" content="text/css">
+	<meta http-equiv="content-language" content="en">
+	<link rel="stylesheet" href="base.css" type="text/css">
+    <style type="text/css">
+<!--
+.style2 {font-size: 36px}
+.style4 {font-size: 16px}
+-->
+    </style>
+</head>
+<body>
+
+<DIV id=header>
+  <p>
+    <!--<H1>Inneroptics CSS Layouts</H1>-->
+    </p>
+  <p><span class="style2">Projection Designer </span><span class="style4">ver.1.1.0<br>
+  Projection Environment Setup Tool</span></p>
+</DIV>
+
+<!-- ************* body ****************-->
+<DIV id=container>
+<DIV id=left-container>
+<DIV class=sub>
+
+<DIV id=main>
+<DIV class=pad>
+
+<a name="overview"><h2>Overview</h2></a>
+<p><strong>ProjectionDesigner</strong> is a setup tool for distortion correction and edge blending in  multiple projection theater environments with various types of screen shapes.  With this tool you can setup virtual projectors and a virtual screen in 3d  environment to simulate the projection. You should run this tool in the actual  environment to confirm the result of the simulation in real-time. After the  setup, this tool exports the setup result as a <strong>&lsquo;Projection data set&rsquo;</strong> &ndash; <strong>Distortion  map image</strong>, <strong>Blending map image</strong> and <strong>View matrix file</strong>. This data set  is basic information for projection in your environment.</p>
+<p>You can use a movie converter tool with  this data set to split and distort movie files for each projector. If you can  link GLRC(OpenGL rendering composite library) with your OpenGL application, the  application will load this data set for distortion correction and edge blending  in real-time. With a special OpenGL replacement driver GLWare, you can also  make these corrections for many OpenGL based applications without their source  code.</p>
+<p>This projection data set is simple,  universal and not depends on implementation of applications. So you can make  OpenGL or DirectX based 3d application, converter tools and etc based on this  data set. From content creator&rsquo;s point of view, you can expect that each theater  has its own projection data set made by its user or vendor. So you can focus  your energy on creating immersive content itself, not depending on actual theater  environments.</p>
+<p>ProjectionDesigner is a primitive, manual  based setup tool. Basically it has no auto calibration functions such as  (patented) camera-projector feedback algorithm. It&rsquo;s important that there is at  least one way to make the projection data set for free. If you want more  automated, easy way to achieve the result, you should look for other tools.</p>
+<a name="mainfeatures">
+<h2>Main features </h2>
+</a>
+<ul>
+  <li>Virtual screen and projectors simulation  in real-time 3d environment.</li>
+  <li>Server / client synchronization for  multiple PC projection environments.</li>
+  <li>Supports plane, box, dome and any  polygon-based shape screen.</li>
+  <li>Projector&rsquo;s position, direction, field of  view, aspect ratio lens shift is configurable.</li>
+  <li>2d-based direct distortion / blend map  shape manipulation.</li>
+  <li>Image overlaying on projection image for  reference.</li>
+  <li>Simple Wavefront (.obj) format model  importer for sample scene.</li>
+  <li>Open format. Open source. Freely  available!</li>
+</ul>
+
+
+
+<a name="screenshots">
+<h2>Screenshots</h2>
+</a>
+<p><a href="images/projdesigner.png" target="_blank"><img src="images/projdesigner_s.png" alt="ProjectionDesigner GUI" width="128" height="96" border="0"></a> <a href="images/onscreen.png" target="_blank"><img src="images/onscreen_s.png" alt="Projected image on screen" width="128" height="96" border="0"></a> <a href="images/distortwindow.png" target="_blank"><img src="images/distortwindow_s.png" alt="Distortion design" width="96" height="76" border="0"></a> <a href="images/blendwindow.png" target="_blank"><img src="images/blendwindow_s.png" alt="Blend map design" width="96" height="76" border="0"></a></p>
+
+
+
+<a name="author">
+<h2>Author</h2>
+</a>
+<p>Toshiyuki Takahei (takahei&lt;at&gt;orihalcon.jp)</p>
+
+
+
+<a name="platform"><h2>Platform</h2></a>
+<p>Windows 2000/XP</p>
+<a name="licence"><h2>Licence</h2></a>
+<p>General Public Licence (GPL) / Commercial License (Dual License) </p>
+
+
+
+<a name="download"><h2>Download</h2></a>
+<p><a href="http://www.orihalcon.jp/download/projdesigner_1.1.0.zip">Source and Windows binary</a></p>
+
+
+<a name="preparation"><h2>Preparation</h2></a>
+<h3>Hardware setup </h3>
+
+<p>When you setup the projection system with  ProjectionDesigner, you should run it in actual projectors and PCs. In the  following adjustment step, you&rsquo;ll put virtual projectors and a screen strictly  same as the actual ones, and project the simulated distortion images with the  actual hardware to check the precise of result for more detail adjustment. For  this reason, you need actual number of projectors to use, and one more screen  to display the ProjectionDesigner user interface. You can use graphic cards  with multiple display output, and networked PCs to prepare the enough number of  displays.</p>
+<p>ProjectionDesigner heavily uses OpenGL  functions, especially off-screen rendering features such as a P-Buffer. You  should use the latest graphic card and powerful PC you have. You should also  install the latest graphic card driver.</p>
+<p>To minimize the number of variable projector&rsquo;s  parameters, you should disable projector&rsquo;s own distortion correction. You  should also set the same parameters to zoom angle, lens shift, brightness and  so on for all projectors you use. </p>
+<h3>Network setup</h3>
+<p>If you want to use ProjectionDesigner as server /  client system over LAN environment, prepare your PC to be able to connect each  other, and open a socket port (default port number is 55555) in firewall. I  recommend to put ProjectionDesigner in a share folder where all PCs can access,  and use the same program file. In this case, if you need many connections more  than Window&rsquo;s limitation (ex. 8 in WindowsXP), you should put the files in  non-Windows based NAS.</p>
+<h3>Execute and Exit program</h3>
+<h4>Boot as Standalone / Server</h4>
+<p>When you use ProjectionDesigner only in one  PC, or use it on a server PC to do adjustment work, run <strong>projdesigner.exe</strong> program without arguments. If you want to specify a custom port  number, use <strong>[-portno]</strong> option.</p>
+<p><strong>projdesigner.exe [-portno 12345]</strong></p>
+<h4>Boot as Client</h4>
+<p>When you use ProjectionDesigner on a client  PC which connected to projectors, run <strong>projdesigner.exe</strong> program with <strong>[-client]</strong> option. You should give a server address with <strong>[-address]</strong> option, and a custom port number with <strong>[-portno]</strong> option.</p>
+<p><strong>projdesigner.exe &ndash;client &ndash;address 192.168.0.10 [-portno  12345]</strong></p>
+<p>If the client program can not connect a server  program, it tries to connect the server again and again. So you can boot a  server after clients. But when you change number of clients or their host name,  you should execute <strong>[File]</strong> &gt; <strong>[Sync Clients]</strong> in menu for synchronization. It  will be described in detail later. </p>
+<h4>Exit the program</h4>
+
+<p>You can quit standalone / server program by <strong>[File] &gt; [Exit]</strong> in menu or click <strong>[X]</strong> button on the title bar. If your client program is displayed  in full screen mode and menus are hidden, hit <strong>[Alt]  + [Return]</strong> to cancel the full screen mode. You can also quit  server and all client programs at once by <strong>[File]  &gt; [Exit All]</strong> in server&rsquo;s menu. When you close the standalone /  server program, all unsaved data will be discarded. Needless to say, save your  data before exit the program!</p>
+
+
+<a name="tutorial"><h3>Tutorial</h3></a>
+<p>In the following section describes each step of adjustment with ProjectionDesigner.</p>
+<h4>Execute programs</h4>
+<p>At first run <strong>projdesigner.exe</strong> on a server PC which has a screen to display the  ProjectionDesigner&rsquo;s adjustment user interface. Then run <strong>projdesigner.exe</strong> on client PCs with <strong>[-client]</strong> option and <strong>[-address]</strong> option with the server&rsquo;s address as a client mode. If  the clients successfully connect to the server, a message &ldquo;Connected to server:  server address&rdquo; is displayed in their log area.</p>
+<h4>Setup screen shape</h4>
+
+
+
+<p>Click <strong>[Screen]</strong> tab in GUI panel, select a shape type in <strong>[Shape]</strong> group&rsquo;s <strong>[Type]</strong> combo box. Set screen&rsquo;s size depends on its shape type (unit is meter). In some  screen shape, you can set wire frame resolution. If you can mark reference  points on screen surface, or if your screen has some geometrical hint for  reference, it&rsquo;s highly useful for later adjustment to set the wire frame  resolution to match the reference points. Set your screen&rsquo;s position, rotation  and scale in the <strong>[Screen]</strong> tab&rsquo;s <strong>[Transform]</strong> group. Check <strong>[Wire  frame]</strong> to display screen&rsquo;s wire frame grid.</p>
+<h4>Add a Channel</h4>
+<p>Let&rsquo;s add the first Channel. <strong>&lsquo;Channel&rsquo;</strong> means a set which consists of one projector (&lsquo;<strong>Projector&rsquo;</strong>) and rendering view (<strong>&lsquo;View&rsquo;</strong>) for it. This first channel becomes the basis of the following  other channel, so setup this channel accurately as much as you can.</p>
+<p>Click <strong>[Channels]</strong> tab in GUI panel, click <strong>[Add]</strong> button  to add a channel. In [Name] field you can set name of channel. Channel name must  be unique among all channels.</p>
+<h4>Setup for projection</h4>
+<p>If you&rsquo;re connecting the first channel&rsquo;s  projector to the server PC, click <strong>[Open Window&hellip;]</strong> button at the bottom of <strong>[Channels]</strong> tab. When a <strong>Projector Window</strong> appears, move  it to the screen for projection, click somewhere in the window, then hit <strong>[Alt]  + [Return]</strong> to toggle it to full screen mode.<img src="images/remotesettings.png" alt="Remote Settings" width="233" height="155" align="right"></p>
+<p>If you want to use a client PC for the  first channel, click <strong>[Remote Settings]</strong> in <strong>[Channels] </strong>tab, and set client  PC&rsquo;s network host name in <strong>[Host name]</strong> field. Then click <strong>[Full screen]</strong> check box to full screen mode. After that, select <strong>[File]  &gt; [Sync Clients]</strong> in menu to synchronize between  server and clients.</p>
+<p>Now you have ProjectionDesigner&rsquo;s main window and one  other screen for projection of the first channel. In the following steps, you  should adjust parameters by actually projecting the channel image on the  screen. </p>
+<h4>Setup Projector's parameters</h4>
+<p><img src="images/projectorsettings.png" alt="Projector Settings" width="234" height="304" align="right">Click <strong>[Channels]</strong> tab in GUI panel, then click <strong>[Projector]</strong> to open a sub panel. In this panel, set <strong>[FOV]</strong> (projector&rsquo;s vertical field of view in degree) and <strong>[Aspect]</strong> (projector&rsquo;s aspect ratio, width/height. Ex. 1.33333  in XGA) values refer to its spec sheet. If your projector projects image to  upper direction (most projectors do it), you should set <strong>[Off-axis X, Y]</strong> value (offset distance of image center at 1m from the  projector&rsquo;s center). Though these parameters are anytime adjustable in  real-time, but I recommend to set precise values at first, and use the same  value among all projectors.</p>
+<p>Next, let's setup position and direction of the  first channel&rsquo;s Projector. In the 3D area there is a screen and projector&rsquo;s  projection area. Purpose of this step is to make the projector&rsquo;s parameters to  the actual one. But in most case it is difficult to measure the projector&rsquo;s  precise position and direction, you should use wire frame grid to match it to  reference points or geometrical hints.</p>
+<p> You can set parameter values in fields of <strong>[Projector</strong>] sub panel in <strong>[Channels]</strong> tab, or use the following keyboard shortcuts in 3D area. To use keyboard  shortcuts, hit <strong>[Esc]</strong> key first to focus on 3D  area.</p>
+<p> I repeat that precise of first channel&rsquo;s  adjustment effects the following channels. Keep it in mind and setup precisely  as much as you can.</p>
+<p><strong>Shortcut keys in 3D area</strong></p>
+<p><table border="1">
+  <tr>
+    <th>Shortcut</th>
+    <th>Meanings</th>
+  </tr>
+  <tr>
+    <td><strong>Mouse  left drag</strong></td>
+    <td>Rotation  of 3D view.</td>
+  </tr>
+  <tr>
+    <td><strong>Mouse  right drag </strong></td>
+    <td>Pan  of 3D view.</td>
+  </tr>
+  <tr>
+    <td><strong>Mouse  wheel</strong></td>
+    <td>Change  distance of 3D view.</td>
+  </tr>
+  <tr>
+    <td><strong>[Cursor  key]</strong></td>
+    <td>Change  direction of Projector / View.*</td>
+  </tr>
+  <tr>
+    <td><strong>[Home][End]</strong></td>
+    <td>Change direction  (roll) of Projector / View.*</td>
+  </tr>
+  <tr>
+    <td><strong>[8][4][6][2]</strong></td>
+    <td>Move Projector /  View horizontally.*</td>
+  </tr>
+  <tr>
+    <td><strong>[9][3]</strong></td>
+    <td>Move  Projector / View vertically.*</td>
+  </tr>
+  <tr>
+    <td><strong>[+][-][*][/]</strong></td>
+    <td>Change  Projector / View &lsquo;s lens shift value.*</td>
+  </tr>
+  <tr>
+    <td><strong>[.][,]</strong></td>
+    <td>Change  Projector / View &lsquo;s field of view.*</td>
+  </tr>
+  <tr>
+    <td><strong>[F1]-[F5]</strong></td>
+    <td>Change 3D view mode.</td>
+  </tr>
+  <tr>
+    <td><strong>[Q]</strong></td>
+    <td>Switch  operation mode between Projector and View.</td>
+  </tr>
+  <tr>
+    <td><strong>[T]</strong></td>
+    <td>Switch  move coordinate between Local and World.</td>
+  </tr>
+  <tr>
+    <td><strong>[Space]</strong></td>
+    <td>Change the current channel.</td>
+  </tr>
+  <tr>
+    <td><strong>[A]</strong></td>
+    <td>Show or hide coordinate axes.</td>
+  </tr>
+  <tr>
+    <td><strong>[G]</strong></td>
+    <td>Show or hide grid frame.</td>
+  </tr>
+  <tr>
+    <td><strong>[I]</strong></td>
+    <td>Show or hide information at upper left corner.</td>
+  </tr>
+  <tr>
+    <td><strong>[Esc]</strong></td>
+    <td>Focus on 3D area.</td>
+  </tr>
+</table>
+</p>
+<p>* marked shortcut  can adjust values in 1/10 accuracy with <strong>[Shift]</strong> key, in 1/100 accuracy with <strong>[Shift] +  [Ctrl]</strong> keys.</p>
+<h4>Setup View parameters</h4>
+<p><img src="images/viewsettings.png" alt="View Settings" width="234" height="247" align="right">After the Projector setup, you need to setup View  parameters. View means rendering area of the scene. In practice, you should adjust  it as a view from the sweet spot (a point where you can see undistorted image  in the theater), covering whole projector&rsquo;s projected area on the screen  surface. <strong>[Channels]</strong> tab in GUI panel has a channel list at the top of it.  In this channel list, click <strong>[P]</strong>(Projector) cell of the current channel twice to make  it gray check, click <strong>[V]</strong>(View) to make it gray check too. Now you can see blue  Projector area and yellow View area on the screen surface. Let&rsquo;s adjust the  yellow area to cover whole blue area. Hit <strong>[Esc]</strong> key to focus on 3D area, <strong>[Q]</strong> key to switch View operation mode. Move the View to  sweet spot where the best view position in the theater (ex. In dome screen, it  should center of the dome &ndash; origin of the coordinate). Then change direction of  the View by <strong>[Cursor key]</strong>,<strong>[Home]</strong>,<strong>[End]</strong> key, and change FOV by <strong>[.]</strong>,<strong>[,]</strong> key to cover the whole blue area. More the View area  becomes closer to Projector area, higher distortion rendering quality you&rsquo;ll get.</p>
+<h4>Save your projection setup data</h4>
+<p>Now you finished the first channel setup. You  should save the current setup data. Select [File] &gt; [Save As] in menu to  save the current data to xml file. Needless to say, you should save data  frequently.</p>
+<h4>Setup other channels</h4>
+<p>For the next step, you should setup the  next channel. In <strong>[Channels]</strong> tab in GUI panel, click <strong>[Add]</strong> button to add a new channel. Added new channel has the same parameter values as  the first channel (last selected channel) as default. It&rsquo;s useful when you  setup left channel after right channel.</p>
+<p>You can setup the new channel same as the  first channel. When you adjust the Projector of the new channel, you&rsquo;ll notify  that when the two projector&rsquo;s projection area are overlapped, edge of the  projection area is visible in another projector&rsquo;s projection image. It will be  helpful hint for precise adjustment. With these hints you may be able to setup  the following channels easier than the first one. But you should keep in mind  that adjustment errors are accumulated in each channel. You still need to work precisely.</p>
+<h4>Test with a sample scene</h4>
+<p><img src="images/channellist.png" alt="Channel List" width="234" height="190" align="right">Now let&rsquo;s see a sample scene with adjusted  distortion correction. In channel list in <strong>[Channels]</strong> tab of GUI panel, make all <strong>[P]</strong>(Projector) and <strong>[V]</strong>(View)  to be unchecked, and make all <strong>[S]</strong>(Scene)  to be checked by clicking header of the channel list. If you setup the  projection correctly, you can see an undistorted teapot model from the sweet  spot in your theater. If you need higher resolution for distortion correction,  select <strong>[Edit] &gt; [Preference&hellip;]</strong> in menu  to open <strong>Preference Dialog</strong>, and then  change <strong>[Size]</strong> value in <strong>[Off-screen  Scene Rendering]</strong> group.</p>
+<p>You can freely move the sample scene  object. Select <strong>[Window] &gt; [Scene Viewer&hellip;]</strong> in  menu to open <strong>Scene Viewer Window</strong>. In this  window, you can rotate the scene by mouse left drag, and change distance from  the object by mouse wheel.</p>
+<h4>Warp distortion for detail adjustment</h4>
+<p><img src="images/distortwindow_m.png" alt="Distortion map design" width="240" height="190" align="right">In spite of the careful setup, accumulation  of adjustment, screen shape and lens distortion error may cause small but  unfixable projection error. For these cases, you can use direct image  distortion to tweak the distortion correction. Keep in mind that this direct  tweak does not reflect geometrical information. You must use it for tiny error  only.</p>
+<p>Select <strong>[Channels]</strong> tab in GUI panel, and then check <strong>[Enable]</strong> check  box in <strong>[Warp]</strong> group. Click <strong>[Open Window&hellip;]</strong> button to open <strong>Projector  Window</strong> on the server PC. Since you activated the warp  flag, you&rsquo;ll see yellow control points in the <strong>Projector  Window</strong>. You can tweak the projection image directly by  dragging these yellow control points. If you want more control points, set <strong>[Res.]</strong> value  in <strong>[Warp]</strong> group. Notice that when you change the number of control points, the current  setup of control points will be discarded. You can reset the control points by  clicking <strong>[Reset]</strong> button. </p>
+<h4>Make a blend map</h4>
+<p><img src="images/blendwindow_m.png" alt="Blend map design" width="240" height="190" align="right">When you use multiple projectors, you&rsquo;ll  notice that projector&rsquo;s overlapped area will becomes brighter. To equalize  intensity on the screen surface, you need to make a <strong>blend map</strong> which represents darken overlapped area.</p>
+<p>To make a blend map in ProjectionDesigner,  select <strong>[Edit] &gt; [Blend Map]</strong> in menu  to switch to blend map editing mode. In the actual projection environment, you&rsquo;ll  see the white images of all projectors cause undesirable intensity  distribution. Select a channel to make a blend map in the channel list in <strong>[Channels]</strong> tab, click <strong>[Open Window&hellip;] </strong>button to open <strong>Projector Window</strong>. Click somewhere in the window and hit <strong>[Space]</strong> key to confirm switching selected blend channel name displayed at  the upper left corner. Now select a channel which overlapped on the current  channel by hitting <strong>[Space]</strong> key  some times. You can darken the blend channel by hitting <strong>[B]</strong> key. Adjust the blend value by <strong>[B]</strong>,<strong>[D]</strong> key until achieving flat  intensity distribution on the screen surface.</p>
+<p>You can smooth the blending edge for seamless  intensity distribution. Select <strong>[Edit]  &gt; [Preference&hellip;]</strong> in menu to open <strong>Preference Dialog</strong>, check <strong>[Soft  edge]</strong> in <strong>[Blend  Map]</strong> group. You can also change width and intensity  curve of the blending edge by editing <strong>[Width]</strong> and <strong>[Exponent]</strong> fields.</p>
+<h4>Export the Projection data set</h4>
+<p><img src="images/preferencedialog.png" alt="Preference Dialog" width="343" height="377" align="right">After finishing the projection setup,  export the Projection data set to use it in other applications. Save the  current data at first, then select <strong>[File] &gt; [Export Data set&hellip;]</strong> in menu to export the data set. The Projection data set will be  exported in the same directory as the data file saved like:</p>
+<p>distort_CHANNELNAME.png<br>
+blend_CHANNELNAME.png<br>
+view_CHANNELNAME.cfg</p>
+<p>You can change size of distortion map and  blend map image. Select <strong>[Edit] &gt; [Preference&hellip;]</strong> in menu to open <strong>Preference Dialog</strong>, and then change <strong>[Image size]</strong> value in <strong>[Export]</strong> group. You can also set file name pattern in the <strong>Preference  Dialog</strong>. In the file name pattern setting,  <strong>%CHANNELNAME%</strong> will be replaced to channel name, <strong>%CHANNELINDEX%</strong> to channel  index, <strong>%REMOTEHOST%</strong> to remote host name.</p>
+<p align="right">&nbsp;</p>
+<a name="formats"><h2>Format of Projection data set</h2></a>
+<p>This chapter explains format specifications of the  Projection data set.</p>
+<h3>Distortion map image</h3>
+<p><img src="images/distortmap.png" alt="Distortion map image" width="128" height="128" align="right">In distortion correction, you need to  pre-warp a rendered image to make a projection image on a screen surface  undistorted viewed from a sweet spot in your theater. Distortion map defines  where each pixel in the projection image mapped from undistorted rendered image.  Color value of each pixel in the distortion map image represents normalized  coordinate in the rendered image.</p>
+<p>&nbsp; X =  ( B / 255 + ( R mod 16 ) ) / 16.<br>
+  &nbsp; Y =  ( G / 255+ ( R  / 16 ) ) / 16.</p>
+<p>Here, X and Y is normalized coordinate (0.0-1.0) in  the rendered image, R, G and B is color element value in the distortion map  (0-255). You can use this formula in your shader code or texture mapping  coordinate generation code to realize the distortion correction.</p>
+<h3>Blend map image</h3>
+<p><img src="images/blendmap.png" alt="Blend map image" width="128" height="128" align="right">In multiple projector environments, you need to  darken overlapped area of projectors to flatten intensity on the screen  surface. Blend map represents intensity distribution and color correction for  the projection image. You should multiply this blend map image to projection  image which is pre-warped by the distortion map.</p>
+<h3>View matrix file</h3>
+<p>View matrix file defines View&rsquo;s model/view  matrix and projection matrix of a channel for rendering in your 3D application.</p>
+<p>This file is a simple text file nested by &lsquo;{&lsquo;  and &lsquo;}&rsquo; &nbsp;blocks. The most outer block is &quot;Channel&quot; like this: </p>
+<p>Camera &ldquo;CHANNELNAME&rdquo; { &hellip; }</p>
+<p>In this block, the following &quot;Lens&quot; block represents  a projection matrix of the View.</p>
+<p>&nbsp;&nbsp;&nbsp;&nbsp;Lens {<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Frustum &lt;left&gt; &lt;right&gt; &lt;bottom&gt; &lt;top&gt; &lt;znear&gt;  &lt;zfar&gt;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;}</p>
+<p>Frustum&rsquo;s parameter format is same as glFrustum()  function in OpenGL.<br>
+  Model/View matrix is defined in an &quot;Offset&quot; block,  which may contain &quot;Translate&quot; and &quot;Rotate&quot; lines in order of operations.</p>
+<p>&nbsp;&nbsp;&nbsp;&nbsp;Offset {<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transform &lt;x&gt; &lt;y&gt; &lt;z&gt;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rotate &lt;angle (degree)&gt; &lt;x&gt; &lt;y&gt;  &lt;z&gt;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;}</p>
+<p>These Translate and Rotate formats are also  same as glTranslate*() and glRotate*() functions in OpenGL.</p>
+<p> This View matrix file format is a subset of  Open Producer&rsquo;s camera configuration file. So you can use it as it is in Open Scene  Graph based applications.</p>
+<a name="build"><h2>Build</h2></a>
+    <h3>Dependencies</h3>
+    <p>To build ProjectionDesigner by yourself, you have to prepare the following libraries.</p>
+    <dl>
+        <dt>Trolltech Qt library ver. 4.2 or later
+        <dd>Download the latest Trolltech Qt library from its web site: <a href="http://www.trolltec.com/">http://www.trolltec.com/</a>.</dd>
+</dl>
+
+
+<a name="todo"><h2>Todo</h2></a>
+<ul>
+<li>More stability. Avoid redundant renderings. 
+</ul>
+
+
+<a name="future"><h2>Future Plans</h2></a>
+<ul>
+<li>Automatic calibration (for free) ?
+<li>etc...
+</ul>
+
+
+<a name="change"><h2>Change Log</h2></a>
+<ul>
+<li>2007/4/10 Projection Designer version 1.1.0. Remove GLRC, DevIL, Glee and libQGLViewer dependencies. Split the scene renderings as a plug-in.
+<li>2006/7/15 Projection Designer version 1.0.0, the first public release.
+</ul>
+</DIV>
+<!-- //#main.pad --></DIV><!-- //#main --></DIV><!-- //#left-container.sub -->
+
+<!-- ************* left menu ****************-->
+<DIV id=left>
+<DIV class=menuBox>
+
+<h2>contents</h2>
+<ul>
+<li><a href="#overview">Overview</a></li>
+<li><a href="#features">Main Features</a></li>
+<li><a href="#screenshots">Screenshots</a></li>
+<li><a href="#author">Author</a></li>
+<li><a href="#platform">Platform</a></li>
+<li><a href="#licence">Licence</a></li>
+<li><a href="#download">Download</a></li>
+<li><a href="#preparation">Preparation</a></li>
+<li><a href="#tutorial">Tutorial</a></li>
+<li><a href="#build">Build</a></li>
+<li><a href="#todo">Todo</a></li>
+<li><a href="#future">Future Plans</a></li>
+<li><a href="#change">Change Log</a></li>
+</ul>
+</DIV><!-- //#menuBox -->
+</DIV><!-- //#left -->
+</DIV><!-- //#left-container -->
+
+
+<DIV id=right-container>
+<!-- ************* menu right ****************-->
+<!-- //#right -->
+</DIV>
+<!-- //#container -->
+
+<DIV class=clear></DIV>
+
+<DIV id=footer>
+<address>
+This site copyright (c) 2006 Toshiyuki Takahei.
+</address></DIV>
+
+</BODY></HTML>
+
