1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[]>
2<html xml:lang="en-US" lang="en-US">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../css/document.css" type="text/css" />
7    <title>Basic Features</title>
8  </head>
9  <body>
10    <h1>Basic Features</h1>
11
12    <h2 id="play">Model Display</h2>
13    <div class="section">
14      <p>The following is a simple procedure for displaying a model.</p>
15      <p class="notice">
16      Information regarding graphics library initialization is left out.<br /> See the InitializeGraphics demo.
17      </p>
18      <p><strong>For details, see SimpleDemo.</strong></p>
19      <ol>
20        <li>Set up a stream resource.
21          <pre><a href="../../nw/gfx/res/ResGraphicsFile/Setup.html">nw::gfx::res::ResGraphicsFile::Setup</a></pre>
22          <p class="annotation">Specify a location in memory before setup as necessary using <a href="../../nw/gfx/res/ResGraphicsFile/ForeachTexture.html">nw::gfx::res::ResGraphicsFile::ForeachTexture</a> or other such function.</p>
23        </li>
24
25        <li>Create an instance of the model and initialize.
26          <pre>
27          <a href="../../nw/gfx/SceneBuilder/Overview.html">nw::gfx::SceneBuilder</a><br />
28          <a href="../../nw/gfx/SceneInitializer/Begin.html">SceneInitializer::Begin</a> → <a href="../../nw/gfx/SceneNode/Accept.html">SceneNode::Accept</a> → <a href="../../nw/gfx/SceneInitializer/End.html">SceneInitializer::End</a><br />
29          <a href="../../nw/gfx/SceneTraverser/Begin.html">SceneTraverser::Begin</a> → <a href="../../nw/gfx/SceneNode/Accept.html">SceneNode::Accept</a> → <a href="../../nw/gfx/SceneTraverser/End.html">SceneTraverser::End</a><br />
30          <a href="../../nw/gfx/SceneEnvironmentSetting/ResolveReference.html">SceneEnvironmentSetting::ResolveReference</a> → <a href="../../nw/gfx/SceneEnvironment/ApplyFrom.html">SceneEnvironment::ApplyFrom</a><br />
31          </pre>
32          <p class="annotation">
33          Create instances of camera and lights as necessary.<br /> Call <a href="../../nw/gfx/SceneHelper/ResolveReference.html">nw::gfx::SceneHelper::ResolveReference</a> to apply parent-child relationships of resources to instances. <br /> Only call SceneInitializer or SceneTraverser when there is a change in the scene tree.<br /> Select Apply to the SceneEnvironment under SceneEnvironmentSetting when switching scenes.
34          </p>
35        </li>
36
37        <li>Update models.
38        <p class="annotation">For the flow of updating and rendering models, see <a href="./ProcessFlow.html#update_sequence">Update Sequence</a>.</p>
39          <pre>
40          <a href="../../nw/gfx/SceneUpdater/UpdateAll.html">nw::gfx::SceneUpdater::UpdateAll</a><br />
41          <a href="../../nw/gfx/RenderContext/SetActiveCamera.html">nw::gfx::RenderContext::SetActiveCamera</a><br />
42          <a href="../../nw/gfx/SceneUpdater/SubmitView.html">nw::gfx::SceneUpdater::SubmitView</a><br />
43          Sorting of <a href="../../nw/gfx/RenderQueue.html">nw::gfx::RenderQueue</a><br />
44          </pre>
45          <p class="annotation">
46          Set camera, lights and fog for the scene environment as necessary.
47          </p>
48        </li>
49
50        <li>Render models.
51          <pre>
52          <a href="../../nw/gfx/RenderContext/SetRenderTarget.html">nw::gfx::RenderContext::SetRenderTarget</a><br />
53          <a href="../../nw/gfx/RenderContext/SetCameraMatrix.html">nw::gfx::RenderContext::SetCameraMatrix</a><br />
54          <a href="../../nw/gfx/MeshRenderer/RenderMesh.html">nw::gfx::MeshRenderer::RenderMesh</a><br />
55          <a href="../../nw/gfx/RenderContext/ResetState.html">nw::gfx::RenderContext::ResetState</a><br />
56          </pre>
57        </li>
58        <p class="annotation">
59        Render models using the camera matrix set using SetCameraMatrix for the configured render targets.<br />Reset the status of RenderContext and SceneEnvironment by calling ResetState.
60        </p>
61      </ol>
62    </div>
63    <h2 id="feature_list">List of Basic Functions</h2>
64    <div class="section">
65    <p>The following is a list of basic features compared with NW4R.</p>
66      <table class="members">
67        <tr><th>Feature</th><th>NW4C</th><th>NW4R</th><th>Supplemental Information</th></tr>
68        <tr>
69          <td>Update scene</td>
70          <td><CODE>SceneTraverser</CODE>+<CODE>SceneUpdater</CODE>, etc.</td>
71          <td>ScnRoot</td>
72          <td></td>
73        </tr>
74        <tr>
75          <td>Base class for scene elements</td>
76          <td><CODE>SceneObject</CODE></td>
77          <td><CODE>G3dObj</CODE>/<CODE>ResCommon</CODE></td>
78          <td>Base class representing objects in a scene.</td>
79        </tr>
80        <tr>
81          <td>Node making up the scene hierarchical structure.</td>
82          <td><CODE>SceneNode</CODE></td>
83          <td>ScnGroup</td>
84          <td><CODE>SceneNode</CODE> doesn't contain any transform information.</td>
85        </tr>
86        <tr>
87          <td>Node including transform information</td>
88          <td><CODE>TransformNode</CODE></td>
89          <td><CODE>ScnGroup</CODE>/<CODE>ScnLeaf</CODE></td>
90          <td></td>
91        </tr>
92        <tr>
93          <td>Node for rendering models</td>
94          <td><CODE>Model</CODE></td>
95          <td><CODE>ScnMdl</CODE>/<CODE>ScnMdl1Mat1Shp</CODE></td>
96          <td></td>
97        </tr>
98        <tr>
99          <td>Model including hierarchical structure</td>
100          <td><CODE>SkeletalModel</CODE></td>
101          <td><CODE>ScnMdl</CODE>/<CODE>ScnMdlSimple</CODE></td>
102          <td></td>
103        </tr>
104        <tr>
105          <td>Node in a model</td>
106          <td>Bone</td>
107          <td>ResNode</td>
108          <td>Rerpresents a node of the hierarchical structure built into the model.</td>
109        </tr>
110        <tr>
111          <td>Camera</td>
112          <td>Camera</td>
113          <td>Camera</td>
114          <td>Cameras in NW4C are a type of <CODE>TransformNode</CODE>.</td>
115        </tr>
116        <tr>
117          <td>Lights</td>
118          <td><CODE>Light</CODE></td>
119          <td>LightObj</td>
120          <td>Lights in NW4C are a type of <CODE>TransformNode</CODE>.</td>
121        </tr>
122        <tr>
123          <td>Light Sets</td>
124          <td>LightSet</td>
125          <td>LightSet</td>
126          <td>Manages combinations of lights to be applied to a model or other object.</td>
127        </tr>
128        <tr>
129          <td>Fog</td>
130          <td>Fog</td>
131          <td>Fog</td>
132          <td>Fog in NW4C is a type of <CODE>TransformNode</CODE>.</td>
133        </tr>
134        <tr>
135          <td>Combining shapes and materials</td>
136          <td>Mesh</td>
137          <td><CODE>ResByteCode</CODE></td>
138          <td>Represents a set of polygons to be rendered using materials. <CODE>ResByteCode</CODE> is a generic class.</td>
139        </tr>
140        <tr>
141          <td>Shape (polygonal shape)</td>
142          <td>Shape</td>
143          <td>ResShp</td>
144          <td></td>
145        </tr>
146        <tr>
147          <td>Material (polygon appearance)</td>
148          <td>Material</td>
149          <td>ResMat</td>
150          <td></td>
151        </tr>
152      </table>
153    </div>
154    <h2>Comparison of Model Classes</h2>
155    <div class="section">
156      <table class="members">
157        <tr><th>Package</th><th>Name</th><th>Internal Hierarchical Structure</th><th>Skinning</th><th>Vertex morphing<br />(Shape animation)</th></tr>
158        <tr><th rowspan="2">NW4C</th><td><CODE>Model</CODE></td><td>×</td><td>×</td><td>O (Not implemented.)</td></tr>
159        <tr><td><CODE>SkeletalModel</CODE></td><td>○</td><td>○</td><td>O (Not implemented.)</td></tr>
160        <tr><th rowspan="3">NW4R</th><td><CODE>ScnMdlSimple</CODE></td><td>○</td><td>○</td><td>×</td></tr>
161        <tr><td><CODE>ScnMdl</CODE></td><td>○</td><td>○</td><td>○</td></tr>
162        <tr><td>ScnMdl1Mat1Shp</td><td>×</td><td>×</td><td>×</td></tr>
163      </table>
164      <ul>
165        <li><CODE>ScnMdl1Mat1Shp</CODE> has been replaced by <CODE>Model</CODE>.</li>
166        <li><CODE>ScnMdlSimple</CODE> and <CODE>ScnMdl</CODE> have been replaced by <CODE>SkeletalModel</CODE>.</li>
167      </ul>
168    </div>
169  <hr><p>CONFIDENTIAL</p></body>
170</html>
171