@lumiscaphe/react-viewer
v2.0.1
Published
Official React component for Lumiscaphe 3D Viewer
Downloads
1,678
Keywords
Readme
react-viewer
Lumiscaphe 3D Viewer React Component
Installation
$ npm i @lumiscaphe/react-viewer
or
$ yarn add @lumiscaphe/react-viewer
The basics
Initialize Lumiscaphe Viewer as simply as this:
const server = 'https://wr.lumiscaphe.com';
const scene = [{
database: 'ee294840-5689-49b0-9edb-527598602df0',
configuration: 'Bin.Blue/Cabin.Yellow/Style.Design1/Wheels.Red',
animations: ['LeftDoor'],
}];
const view = {
mode: 'image',
camera: 'EXTER/1',
background: 'product',
};
// Optional
const transition = {
fromPosition: 0,
toPosition: 2,
animation: {
name: 'Porte Gauche',
camera: '/Camera_Ext',
duration: 1,
reverse: false,
},
};
// Optional - default values
const encoder = {
format: 'jpeg',
quality: 80,
};
// Optional - default values
const parameters = {
antialiasing: false,
superSampling: 2,
};
// Optional - default values
const onLoadStart = () => {};
const onLoadProgress = () => {};
const onLoadEnd = () => {};
const onLoadError = () => {};
const onVrcubeInteraction = () => {};
const onVrobjectInteraction = () => {};
};
const element = (
<LumiscapheViewer
server={server}
api='v1'
fit='cover'
scene={scene}
view={view}
transition={transition}
encoder={encoder}
parameters={parameters}
onLoadStart={onLoadStart}
onLoadProgress={onLoadProgress}
onLoadEnd={onLoadEnd}
onLoadError={onLoadError}
onVrcubeInteraction={onVrcubeInteraction}
onVrobjectInteraction={onVrobjectInteraction}
/>
);
ReactDOM.render(element, document.body)
Server
WebRender url for v1 and v2 api
Api
API to use:
v1
: uses WebRender v1 API to generate imagesv2
: uses WebRender v2 API to generate imagesstatic
: uses image array scene as images sources
Fit
Image fit mode to use:
contain
: image is scaled to maintain its aspect ratio while fitting within the element's content boxcover
: image is sized to maintain its aspect ratio while filling the element's entire content boxfill
: image is sized to fill the element's content box
Scene
A scene is an array of products defined with:
database
: product 3D model guid stringconfiguration
: product configuration as a string of concatenated values separated by a slashanimations
: product animations as an array of string
Basic scenes should contain only one product.
Decor
Two ways to drive scene decor.
Integrated
When a 3D model contains integrated decors, it can be change through product configuration. For example: add ENV.STUDIO
or ENV.ALPES
to product configuration string.
const scene = [{
database: 'ee294840-5689-49b0-9edb-527598602df0',
configuration: 'Bin.Blue/Cabin.Yellow/Style.Design1/Wheels.Red/ENV.ALPES',
animations: ['LeftDoor'],
}];
External
When a 3D model does not contain integrated decors, it can be added with an external 3D model. For example:
const decorProduct = {
database: '82c1f7e8-9ae4-4f00-b45c-c857e21a954f',
translation: { x: 0, y: -0.12, z: 0 },
};
const product = {
database: 'ee294840-5689-49b0-9edb-527598602df0',
configuration: 'Bin.Blue/Cabin.Yellow/Style.Design1/Wheels.Red',
animations: ['LeftDoor'],
};
const scene = [decorProduct, product];
Decor product is defined with:
database
: decor product 3D model guid stringtranslation
: decor product 3D position (e.g. decorDeltaAltitude)
Note: decor product should always be the first product in the scene.
View
A view can be defined in the following modes:
Image
mode
:image
camera
: camera pathbackground
: view background mode (product
,transparent
,gradient
)
VRCube
mode
:vrcube
camera
: camera pathbackground
: view background mode (product
,transparent
,gradient
)
VRObject - animation
mode
:vrobject
animation
: animation namecamera
: camera pathframes
: number of framesloop
: whether animation loops or notbackground
: view background mode (product
,transparent
,gradient
)
VRObject - bookmark set
mode
:vrobject
camera
: camera group pathbackground
: view background mode (product
,transparent
,gradient
)
Transition
A transition can be set when loading a scene or setting a view with:
fromPosition
: go to specific vrobject image at the beginning - optionaltoPosition
: go to specific vrobject image at the end - optionalanimation
:name
: animation namecamera
: camera path to use for animationduration
: animation duration in secondsreverse
: whether to reverse animation direction
Encoder
An encoder is defined with:
format
: encoder format (jpeg
,png
,webp
)quality
: encoder quality (0-100 forjpeg
andwebp
and 0-9 forpng
)
Parameters
Render parameters are defined with:
antialiasing
: whether software antialiasing is enabled or notsuperSampling
: super sampling coefficient 1-4
WebRender is always optimized for the following default values (false, 2). Change this with precaution !
Events
Events are defined with:
onLoadStart
: event sent on load startonLoadProgress
: event sent on load progressonLoadEnd
: event sent on load endonLoadError
: event sent on load erroronInteraction
: event sent on vrcube or vrobject interactiononVrcubeInteraction
: event sent on vrcube interactiononVrobjectInteraction
: event sent on vrobject interaction