📄 classsmterrain.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>vtlib library: SMTerrain Class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.5 --><div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li id="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul></div><div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div><h1>SMTerrain Class Reference<br><small>[<a class="el" href="group__dynterr.html">Dynamic Terrain (CLOD)</a>]</small></h1><!-- doxytag: class="SMTerrain" --><!-- doxytag: inherits="vtDynTerrainGeom" -->Inheritance diagram for SMTerrain:<p><center><img src="classSMTerrain__inherit__graph.png" border="0" usemap="#SMTerrain__inherit__map" alt="Inheritance graph"></center><map name="SMTerrain__inherit__map"><area href="classvtDynTerrainGeom.html" shape="rect" coords="57,380,191,407" alt=""><area href="classvtDynGeom.html" shape="rect" coords="7,305,100,332" alt=""><area href="classvtGeom.html" shape="rect" coords="19,231,88,257" alt=""><area href="classvtNode.html" shape="rect" coords="21,156,85,183" alt=""><area href="classvtNodeBase.html" shape="rect" coords="7,81,100,108" alt=""><area href="classvtTarget.html" shape="rect" coords="19,7,88,33" alt=""><area doxygen="vtdata.tag:../vtdata/" href="../vtdata/classvtHeightFieldGrid3d.html" shape="rect" coords="124,305,265,332" alt=""><area doxygen="vtdata.tag:../vtdata/" href="../vtdata/classvtHeightField3d.html" shape="rect" coords="137,231,252,257" alt=""><area doxygen="vtdata.tag:../vtdata/" href="../vtdata/classvtHeightField.html" shape="rect" coords="144,156,245,183" alt=""></map><center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classSMTerrain-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2><dl compact><dt><b></b></dt><dd>The SMTerrain class implements Seumas McNally's algorithm for regular-grid terrain LOD. It was implemented directly from correspondence from the <a href="http://www.gamedev.net/community/memorial/seumas/">dearly missed</a> Seumas, and is highly similar to the implementation in his game <a href="http://www.treadmarks.com/">Treadmarks</a>. </dd></dl><dl compact><dt><b></b></dt><dd>This implementation requires that the input heightfield is a square regular grid of dimension 2^n+1, e.g.. 1025, 2049, or 4097. Storage requirements are around 3-5 bytes/vertex. The data is represented in memory by a regular grid of height values, an implicit binary tree of variance values, and an explicit binary tree of visible faces. </dd></dl><dl compact><dt><b></b></dt><dd>This is the fastest and most memory-efficient algorithm currently known for terrain rendering with a long viewing distance and an unconstrained viewpoint. </dd></dl><dl compact><dt><b></b></dt><dd><h4>Usage</h4></dd></dl><ol type=1><li>Create a new SMTerrain object</li><li>Initialize it with a LocalGrid to provide height values</li><li>add it to your scene graph</li><li>set the desired level detail with <a class="el" href="classvtDynTerrainGeom.html#cf10bbd6b3d18f37dfe4e0a1b70ed0ba">SetPolygonTarget()</a></li><li>for a detail texture, call SetDetailMaterial()</li><li>let the scene graph API render the terrain for you each frame <h4>Performance Issues</h4></li></ol><p><ul><li>Use of triangle fans can be toggled at runtime, via the m_bUseTriStrips member. In testing, this has shown around a 15% speed increase. </li></ul><p><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7ecb3e1d5dc17588489359a59e30ab7c"></a><!-- doxytag: member="SMTerrain::Init" ref="7ecb3e1d5dc17588489359a59e30ab7c" args="(const vtElevationGrid *pGrid, float fZScale)" -->DTErr </td><td class="memItemRight" valign="bottom"><a class="el" href="classSMTerrain.html#7ecb3e1d5dc17588489359a59e30ab7c">Init</a> (const <a class="elRef" doxygen="vtdata.tag:../vtdata/" href="../vtdata/classvtElevationGrid.html">vtElevationGrid</a> *pGrid, float fZScale)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">initialization <br></td></tr></table><hr size="1"><address style="align: right;"><small>Generated on Mon Jan 14 14:41:00 2008 for vtlib library by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.5 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -