File: vtkrendering_vtkshadowmappass.html

package info (click to toggle)
freemat 4.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 141,800 kB
  • ctags: 14,082
  • sloc: ansic: 126,788; cpp: 62,046; python: 2,080; perl: 1,255; sh: 1,146; yacc: 1,019; lex: 239; makefile: 100
file content (116 lines) | stat: -rw-r--r-- 8,446 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: vtkShadowMapPass</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FreeMat
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('vtkrendering_vtkshadowmappass.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">vtkShadowMapPass </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_vtkrendering.html">Visualization Toolkit Rendering Classes</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>Render the opaque polygonal geometry of a scene with shadow maps (a technique to render hard shadows in hardware).</p>
<p>This pass expects an initialized depth buffer and color buffer. Initialized buffers means they have been cleared with farest z-value and background color/gradient/transparent color. An opaque pass may have been performed right after the initialization.</p>
<p>Its delegate is usually set to a vtkOpaquePass.</p>
<p>.SECTION Implementation The first pass of the algorithm is to generate a shadow map per light (depth map from the light point of view) by rendering the opaque objects with the OCCLUDER property keys. The second pass is to render the opaque objects with the RECEIVER keys.</p>
<p>To create an instance of class vtkShadowMapPass, simply invoke its constructor as follows </p>
<pre class="fragment">  obj = vtkShadowMapPass
</pre> <h1><a class="anchor" id="Methods"></a>
Methods</h1>
<p>The class vtkShadowMapPass has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, <code>obj</code> is an instance of the vtkShadowMapPass class. </p>
<ul>
<li>
<code>string = obj.GetClassName ()</code>  </li>
<li>
<code>int = obj.IsA (string name)</code>  </li>
<li>
<code>vtkShadowMapPass = obj.NewInstance ()</code>  </li>
<li>
<code>vtkShadowMapPass = obj.SafeDownCast (vtkObject o)</code>  </li>
<li>
<code>obj.ReleaseGraphicsResources (vtkWindow w)</code> - Release graphics resources and ask components to release their own resources. <dl class="section pre"><dt>Precondition:</dt><dd>w_exists: w!=0  </dd></dl>
</li>
<li>
<code>vtkRenderPass = obj.GetOpaquePass ()</code> - Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.  </li>
<li>
<code>obj.SetOpaquePass (vtkRenderPass opaquePass)</code> - Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.  </li>
<li>
<code>vtkRenderPass = obj.GetCompositeZPass ()</code> - Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.  </li>
<li>
<code>obj.SetCompositeZPass (vtkRenderPass opaquePass)</code> - Delegate for rendering the opaque polygonal geometry. If it is NULL, nothing will be rendered and a warning will be emitted. It is usually set to a vtkTranslucentPass. Initial value is a NULL pointer.  </li>
<li>
<code>obj.SetResolution (int )</code> - Set/Get the number of pixels in each dimension of the shadow maps (shadow maps are square). Initial value is 256. The greater the better. Resolution does not have to be a power-of-two value.  </li>
<li>
<code>int = obj.GetResolution ()</code> - Set/Get the number of pixels in each dimension of the shadow maps (shadow maps are square). Initial value is 256. The greater the better. Resolution does not have to be a power-of-two value.  </li>
<li>
<code>obj.SetPolygonOffsetFactor (float )</code> - Factor used to scale the maximum depth slope of a polygon (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetUnits to solve self-shadowing. Valid values can be either positive or negative. Initial value is 1.1f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 3.1f works well with the regression test.  </li>
<li>
<code>float = obj.GetPolygonOffsetFactor ()</code> - Factor used to scale the maximum depth slope of a polygon (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetUnits to solve self-shadowing. Valid values can be either positive or negative. Initial value is 1.1f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 3.1f works well with the regression test.  </li>
<li>
<code>obj.SetPolygonOffsetUnits (float )</code> - Factor used to scale an implementation dependent constant that relates to the usable resolution of the depth buffer (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetFactor to solve self-shadowing. Valid values can be either positive or negative. Initial value is 4.0f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 10.0f works well with the regression test.  </li>
<li>
<code>float = obj.GetPolygonOffsetUnits ()</code> - Factor used to scale an implementation dependent constant that relates to the usable resolution of the depth buffer (definition from OpenGL 2.1 spec section 3.5.5 "Depth Offset" page 112). This is used during the creation the shadow maps (not during mapping of the shadow maps onto the geometry) Play with this value and PolygonOffsetFactor to solve self-shadowing. Valid values can be either positive or negative. Initial value is 4.0f (recommended by the nVidia presentation about Shadow Mapping by Cass Everitt). 10.0f works well with the regression test.  </li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_vtkrendering.html">Visualization Toolkit Rendering Classes</a></li>
    <li class="footer">Generated on Thu Jul 25 2013 17:18:35 for FreeMat by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>