lesca-webgl-threejs v2.2.4
Why use it?
It's can build full page webgl easily. include camera light orbitControls sky sun.
Live Demo
Installation
npm install lesca-webgl-threejs --saveUsage
import Webgl from 'lesca-webgl-threejs';
import { CameraType } from 'lesca-webgl-threejs/types';
const config = {
fps: 0,
camera: { zoom: 30, far: 75, type: CameraType.perspective, dom: undefined },
sky: {
enabled: true,
turbidity: 3.8,
rayleigh: 2.967,
mieCoefficient: 0.005,
mieDirectionalG: 0.7,
inclination: 70,
azimuth: 180,
},
controls: {
distance: { min: 13, max: 30 },
polar: { min: -70, max: 70 },
azimuth: { min: -Infinity, max: Infinity },
default: {
polar: 0,
azimuth: 0,
},
offsetAzimuth: 0,
enabled: true,
panEasing: 100,
},
light: {
ambient: {
color: 0x5289d2,
intensity: 0.6,
},
point: {
enabled: true,
color: 0x999999,
intensity: 0.9,
distance: 3,
decay: 0.5,
position: { x: 0, y: 3, z: 10 },
},
spot: {
enabled: false,
color: 0x999999,
intensity: 0.9,
distance: 3,
decay: 0.5,
angle: Math.PI * 0.12,
penumbra: 1,
position: { x: 0, y: 3, z: 0 },
},
shadowMapSize: 256,
debug: true,
},
renderer: {
alpha: false,
shadowType: THREE.PCFSoftShadowMap,
exposure: 0.5,
outputEncoding: THREE.sRGBEncoding,
},
physics: false,
stats: true,
};
const webgl = new Webgl(config);
container.appendChild(render.domElement);Development
Config
| method | description | default |
|---|---|---|
| .fps:number | set fps | 0 |
| .camera:object | OrthographicCamera setup. | default |
| .sky:object | Sky setup. | default |
| .controls:object | orbitControls setup. | default |
| .light:object | light setup. | default |
| .renderer:object | webglRenderer setup. | default |
| .physics:object | cannon-es setup. | default |
| .stats:object | stats-js setup. | default |
Default camera config
| key | docs | default |
|---|---|---|
| zoom:number | zoom | 30 |
| far:number | far | 200 |
| dom:HTMLElement | HTML container | |
| type:enum:number | orthographic or perspective | perspective |
Default sky config
| key | docs | default |
|---|---|---|
| enabled:boolean | true | |
| turbidity:number | sky | 0 |
| rayleigh:number | sky | 0.079 |
| mieCoefficient:number | sky | 0.023 |
| mieDirectionalG:number | sky | 0.226 |
| inclination:number | sky | 70 |
| azimuth:number | sky | -102.7 |
Default controls config
| key | docs | default |
|---|---|---|
| enabled:boolean | orbitControls | true |
| distance:object | orbitControls | min:30, max:30 |
| polar:object | orbitControls | min:35, max:35 |
| azimuth:object | orbitControls | min: -Infinity, max: Infinity |
| default:object | orbitControls | polar:0, azimuth: 0 |
| offsetAzimuth:number | number | 0 |
| panEasing:number | number | 100 |
Methods of controls
| function Name | description | parameters | return |
|---|---|---|---|
| .fixed(Object) | Fixed angle perspective | { polar:Number, azimuth:number, target: THREE.Vector3} | void |
| .lookAt(vec:THREE.Vector3) | focus on a target point | vec:THREE.Vector3 | void |
| .chase(mesh: THREE.Mesh, height:number) | camera will follow target smoothly | mesh:THREE.vector3 | void |
| .lock() | lock camera | void | |
| .unlock() | unlock camera | void | |
| .set() | set angle and distance | { polar:Number, azimuth:number, distance: number} | void |
| .get() | get angle and distance | { polar:Number, azimuth:number, distance: number} | void |
Default light config
| key | docs | default |
|---|---|---|
| ambient:object | light | default |
| spot:object | spotLight | default |
| point:object | pointLight | default |
| shadowMapSize:number | spotLight | 256 |
| debug | SpotLightHelper | false |
ambient
color: 0x5289d2intensity: 0.6
spot
color: 0x999999intensity: 0.9position: { x: 0, y: 15, z: 0 }distance: 3decay: 0.5angle: Math.PI * 0.12penumbra: 1
point
color: 0x999999intensity: 0.9distance: 3position: { x: 0, y: 15, z: 0 }decay: 0.5
Default renderer config
| key | docs | default |
|---|---|---|
| alpha:boolean | WebGLRenderer | false |
| shadowType:number | WebGLRenderer | THREE.BasicShadowMap |
| exposure:number | WebGLRenderer | 0.5 |
| outputEncoding:number | WebGLRenderer | THREE.sRGBEncoding |
Default physics config
| key | docs | default |
|---|---|---|
| physics:boolean | cannon-es | false |
Default stats config
| key | docs | default |
|---|---|---|
| stats:boolean | stats-js | false |
Features
- Code Linting (eslint)
- maintain if necessary
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago