autodesk-forge - viewer 怎么在场景中增加点光源
本文介绍了autodesk-forge - viewer 怎么在场景中增加点光源的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如何在场景中添加点光源,像灯光一样的效果
var light = new THREE.PointLight( 0xff0000, 0, 100 );
light.position.set( pos.x, pos.y, pos.z );
viewer.impl.sceneAfter.add( light );
这样在场景里面添加光源貌似没有效果。
解决方案
就我所知目前 Viewer 不支持这样新增光源的方式,如果要自个加的话,可以考虑透过 Autodesk.Viewing.Private.lightPresets
新增一个自个的光设置,如下所示:
const preset = Autodesk.Viewing.Private.lightPresets[0];
const myPreset = {};
Autodesk.Viewing.Private.copyLightPreset( preset, myPreset );
// ======= 自定义光的设置开始 ====
// light preset name
myPreset.name = 'my light preset';
// the path that the preset (render materials) will load.
// If null; the preset is the common light.
myPreset.path = 'DarkSky';
myPreset.tonemap = 1;
myPreset.E_bias = -2;
// direct light color in RGB
myPreset.directLightColor = [1; 1; 1];
//ambient color in RGB
myPreset.ambientColor = [0; 0; 0];
// light intensity
myPreset.lightMultiplier = 2.5;
//background color gradient.
//There is a pre-defined array ‘b’.
//it can be explicitly value
//e.g. [red; green; blue; red2; green2; blue2]
myPreset.bgColorGradient = Autodesk.Viewing.Private.BackgroundPresets['Dark Grey'];
//whether darker fade
myPreset.darkerFade = !1
// ======= 自定义光的设置结束 ====
// 将自定义光的设置丢到 Viewer 的光源设置里
Autodesk.Viewing.Private.lightPresets.push( myPreset );
// 切换自定义光
const idx = Autodesk.Viewing.Private.lightPresets.indexOf( myPreset );
viewer.setLightPreset( idx );
备注:这是一个权宜之计,非官方的解法,你必需考虑及自行承担使用此代码所带来的风险。
参考:http://adndevblog.typepad.com...
这篇关于autodesk-forge - viewer 怎么在场景中增加点光源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文