From 817f053d0378bc01e703330c5b95bb469e73206c Mon Sep 17 00:00:00 2001 From: cignoni Date: Thu, 9 Sep 2004 23:15:35 +0000 Subject: [PATCH] updated docs --- apps/shadevis/shadevis.txt | 92 ++++++++++++++++++++++++++++++-------- 1 file changed, 74 insertions(+), 18 deletions(-) diff --git a/apps/shadevis/shadevis.txt b/apps/shadevis/shadevis.txt index 34b66355..ab29004c 100644 --- a/apps/shadevis/shadevis.txt +++ b/apps/shadevis/shadevis.txt @@ -1,31 +1,87 @@ + + VCGLib http://vcg.sf.net o o + Visual and Computer Graphics Library o o + _ O _ + Copyright(C) 2004 \/)\/ + Visual Computing Lab http://vcg.isti.cnr.it /\/| + ISTI - Italian National Research Council | + \ + Metro, All rights reserved. + + + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License (http://www.gnu.org/licenses/gpl.txt) +for more details. + +--- Synopsis --- + +'shadevis' is a tool designed to compute a per vertex, ambient occlusion term + +Please, when using this tool cite the following reference: + +For any question about this software please contact: +Paolo Cignoni ( p.cignoni@isti.cnr.it ) + + This value is mapped into a gray shade according to this formula v=clamp(v,LowPass,HighPass) -v=(v-LowPass)/(HighPass-LowPass) -graylevel=GammaCorrection(v,GammaLev) +v=(v-LowPass)/(HighPass-LowPass) /// Normalized 0..1 +graylevel=GammaCorrection(v,GammaLev) + +This graylevel is used in the Opengl lighting equation as follow. +Let assume that there is just a single directional light and no emissive and no specular component in the material, the gl lighting equation is: + +C = Acm *Acs + Acm*Acli + (n*L)*Dcm*Dcli + +where +Acm is the ambient color of the material (glMaterial or glColor if glColorMaterial is enabled) +Acs is ambient color of the scene (glLightModel) +Acli is the ambient intensity of the light (glLight) + +We simply substitute the constant ambient that is usually constant, with a per vertex color, using a constant diffuse color. + +Simple one line tutorial: + +-- load a ply mesh, press 'enter', wait, press keys from 1 to 4. + + Some useful hints: - keys - -'c' compute the sampling (sample are added so pressing c twice is the same of using 2n sampling directions) -'S' save a ply with the currently computed color. -'s' smooth (average) the computed visibility + Keys +'esc' quit +'enter' compute the sampling (sample are added so pressing the key twice is the same of using 2n sampling directions) ' ' add the current view to the sampling direction +'S' save a ply with the currently computed color. +'s' smooth (average) the computed visibility among adjacent vertices +'v' toggle the rendering of directions used for the sampling. +'V' Save a Snapshot of the current View. -'l' Increase LowPass -'L' Decrease LowPass -'h' Increase HighPass -'H' Decrease HighPass -'g' Increase GammaLev -'G' Decrease GammaLev +'tab' switch between object trackball light trackball -'a' Toggle Lighting -'A' Toggle per vertex coloring +'l'-'L' Increase/Decrease LowPass +'h'-'H' Increase/Decrease HighPass +'p'-'p' Increase/Decrease GammaLev + +'C' Toggle Lighting +'c' Toggle per vertex coloring + +'a'-'A' Increase/Decrease Ambient Coefficient +'d'-'D' Increase/Decrease Diffuse Coefficient +'e'-'E' Increase/Decrease Balance between Diffuse and Ambient coefficient +'1'..'4' Some preset ambient/diffuse values ranging from standard constant ambient to a options --n set the number of sampling direction (default 32, but 100~1000 should be better) +-n set the number of sampling direction (default 64, but 100~500 should be better) -f flip normal of the surface --z specify the z tolerance used to decide if a vertex is visible against the zbuffer or not (default 1e-4, useful range 1e-3 .. 1e-6) - +-z specify the z tolerance used to decide if a vertex is visible against the zbuffer or not (default 1e-3, useful range 1e-3 .. 1e-6)