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

查看:429
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆