viewer 怎么在场景中增加点光源

发布于 2022-09-05 04:08:46 字数 216 浏览 7 评论 0

如何在场景中添加点光源,像灯光一样的效果

 var light = new THREE.PointLight( 0xff0000, 0, 100 );
 light.position.set( pos.x, pos.y, pos.z );
 viewer.impl.sceneAfter.add( light );

这样在场景里面添加光源貌似没有效果。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明媚殇 2022-09-12 04:08:46

就我所知目前 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...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文