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