prophetk-3d-viewer
Version:
A Three.js r128 based GLB/GLTF model viewer for WeChat Mini Program and Web.
163 lines (162 loc) • 3.82 kB
JavaScript
module.exports = {
renderer: {
clearColor: '#000000',
clearAlpha: 1,
shadowMapEnabled: false,
outputEncoding: 'sRGB',
toneMapping: 'ACESFilmic',
toneMappingExposure: 1.0,
},
environment: {
showDragGrid: false, // 拖动时显示水平参考网格。
showBounds: true, // 选中时显示模型包围框。
url: '',
showSkybox: false,
},
camera: {
controlMode: 'orbit', // 'orbit': rotate around lookAt; 'pan': translate on XZ.
position: [0, 1.5, 3],
lookAt: [0, 0, 0],
fov: 60,
near: 0.01,
far: 1000,
},
models: [
{
id: 'plane',
clickEvent: 'openDetails',
type: 'gltf',
url: 'demoRes/plane.glb',
position: [0, 0, 0],
rotation: [0, 0, 0],
scale: [100, 1, 100],
},
{
id: 'box1',
clickEvent: 'openDetails',
type: 'gltf',
url: 'demoRes/bucket.glb',
isMovable: true,
position: [0, 0, 0],
rotation: [0, 0, 0],
scale: [1, 1, 1],
},
{
id: 'box2',
clickEvent: 'openDetails',
type: 'gltf',
url: 'demoRes/bucket.glb',
isMovable: true,
invisible:true,
position: [1, 0, 0],
rotation: [0, 0, 0],
scale: [1, 1, 1],
},
{
id: 'box3',
clickEvent: 'openDetails',
parent: 'box1', // 子模型随 box1 移动,TRS 相对于 box1。
type: 'gltf',
url: 'demoRes/bucket.glb',
isMovable: false,
position: [0, 1, 0],
rotation: [0, 0, 0],
scale: [0.4, 0.4, 0.4],
}
],
lights: [
{
type: 'ambient',
color: '#ffffff',
intensity: 0.5,
},
{
type: 'directional',
color: '#ffffff',
intensity: 0.8,
position: [5, 10, 7],
},
{
type: 'point',
color: '#ffffff',
intensity: 0.5,
position: [-1, 1, -1],
},
],
decal_projector: {
target: 'main',
// Set a packaged image path here to enable the demo decal without a server.
url: '',
scaleX: 1,
scaleY: 1,
opacity: 1,
projectorPosition: [0, 1, 0],
projectorTarget: [0, 0, 0],
projectorRollDeg: 45,
projectorWidth: 1,
projectorHeight: 0.5,
projectorNormalThreshold: 0,
debug: true,
},
ui: [
{
type: 'label',
id: 'decal_status_label',
position: [0.04, 0.9],
scale: [0.72, 0.06],
text: 'decal scaleX=1 scaleY=1 opacity=1 projector=1x0.5 roll=45',
alpha: 1,
color: '#ffffff',
fontSize: 14,
backgroundColor: 'rgba(0, 0, 0, 0.45)',
borderColor: 'rgba(255, 255, 255, 0.25)',
align: 'left',
},
{
type: 'button',
position: [0.06, 0.04],
scale: [0.24, 0.08],
text: 'Reload',
// img: 'http://10.11.136.138:8080/decal.png',
alpha: 1,
event: 'event_btn_reload_model',
},
{
type: 'slider',
position: [0.04, 0.16],
scale: [0.3, 0.08],
text: 'decal x',
min: 0.2,
max: 3,
value: 1,
step: 0.01,
alpha: 1,
event: 'event_slider_decal_scale_x',
target: 'decal.scaleX',
},
{
type: 'slider',
position: [0.04, 0.27],
scale: [0.3, 0.08],
text: 'decal y',
min: 0.2,
max: 3,
value: 1,
step: 0.01,
alpha: 1,
event: 'event_slider_decal_scale_y',
target: 'decal.scaleY',
},
],
// decal: {
// target: 'main',
// url: 'http://10.11.136.138:8080/decal.png',
// decalAngleDeg: 0,
// decalHeight: 0,
// decalScaleX: 1,
// decalScaleY: 1,
// arcWidth: 1.0471975512,
// heightRange: 1.0,
// opacity: 1.0,
// },
};