LOD
LOD是Levels of Detail的简称,是多细节层次的展示方法。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
官方的例子在 /examples/lod ,配置本机环境,请参考OSGJS官方例子使用说明-本机部署,核心代码如下:
function createScene() {
var lodNode = new osg.Lod();
P.resolve( osgDB.parseSceneGraph( window.getModelB() ) ).then( function ( o ) {
lodNode.addChild( o, 0, 50 );
} );
P.resolve( osgDB.parseSceneGraph( window.getModel() ) ).then( function ( data ) {
lodNode.addChild( data, 50, Infinity );
} );
return lodNode;
}
html页面中
<script type="text/javascript" src="mickey.osgjs"></script>
<script type="text/javascript" src="monkey.osgjs"></script>
-
window.getModelB()这个函数在 monkey.osgjs 中,window.getModel() 在 mickey.osgjs中,二者返回的都是模型的 json 字符串
-
读取模型使用的 osgDB.parseSceneGraph() 函数,还有另外一个函数osgDB.readNodeURl()也可以
-
lodNode.addChild( data, 50, Infinity)(function ( node, min, max ))三个参数分别代表 节点,显示距离的最小,最大值
-
这里的 P 是 Promise对象,参考阮大神的作品