# <vgl-perspective-camera>
This camera mimics the human eyes sight.
When the aspect
prop is omitted, it will be automatically set to fit the canvas size.
# Example Usage
<template>
<div>
<vgl-renderer antialias>
<template #scene>
<vgl-scene>
<vgl-mesh>
<template #geometry>
<vgl-box-geometry
:width="7.5"
:height="7.5"
:depth="7.5"
/>
</template>
<template #material>
<vgl-mesh-standard-material />
</template>
</vgl-mesh>
<vgl-ambient-light
color="#ffeecc"
:intensity="0.4"
/>
<vgl-directional-light
:position-x="2"
:position-y="1"
:position-z="3"
:intensity="0.7"
/>
</vgl-scene>
</template>
<template #camera>
<vgl-perspective-camera
position="spherical"
rotation="lookAt"
:position-radius="20"
:position-phi="1"
:position-theta="1"
:zoom="zoom"
:near="near"
:far="far"
:fov="fov"
:aspect="autoAspect ? undefined : aspect"
/>
</template>
</vgl-renderer>
<aside>
<label>Zoom<input
v-model.number="zoom"
type="range"
min="0.2"
max="3"
step="0.1"
></label>
<label>Near<input
v-model.number="near"
type="range"
min="10"
max="30"
></label>
<label>Far<input
v-model.number="far"
type="range"
min="10"
max="30"
></label>
<label>Fov<input
v-model.number="fov"
type="range"
max="85"
min="15"
></label>
<p>
Aspect
<label>Auto<input
v-model="autoAspect"
type="checkbox"
></label>
<label>
Ratio
<input
v-model.number="aspect"
:disabled="autoAspect"
type="range"
max="5"
min="0.2"
step="0.1"
>
</label>
</p>
</aside>
</div>
</template>
<script>
import * as components from 'vue-gl';
export default {
components,
data: () => ({
fov: 50, zoom: 1, near: 10, far: 30, aspect: 2, autoAspect: true,
}),
};
</script>
<style scoped>
label {
display: flex;
}
input {
margin-left: 1ex;
}
p:first-line, :not(p) > label:first-line {
font-weight: bold;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Props
position
: 'rectangular' | 'spherical'
The coodinate system to determine the object position.
Defaults to [object Object]positionX
: number
The x coordinate of the object's local position.
Defaults to [object Object]positionY
: number
The y coordinate of the object's local position.
Defaults to [object Object]positionZ
: number
The z coordinate of the object's local position.
Defaults to [object Object]positionRadius
: number
The Euclidian distance from the origin to the object's local position.
Defaults to [object Object]positionPhi
: number
The polar angle from y axis to the object's local position.
Defaults to [object Object]positionTheta
: number
The equator angle around y axis to the object's local position.
Defaults to [object Object]rotation
: 'euler' | 'quaternion' | 'lookAt'
The rotation representing method.
Defaults to [object Object]rotationX
: number
The x coordinate of the object's local rotation.
Defaults to [object Object]rotationY
: number
The y coordinate of the object's local rotation.
Defaults to [object Object]rotationZ
: number
The z coordinate of the object's local rotation.
Defaults to [object Object]rotationW
: number
The w coordinate of the object's local rotation.
Defaults to [object Object]rotationOrder
: string
The rotation order of the object's local rotation.
Defaults to [object Object]lookAtX
: number
The global x coodinate of a point the object to face.
Defaults to [object Object]lookAtY
: number
The global y coodinate of a point the object to face.
Defaults to [object Object]lookAtZ
: number
The global z coodinate of a point the object to face.
Defaults to [object Object]scaleX
: number
The x coordinate of the object's local scale.
Defaults to [object Object]scaleY
: number
The y coordinate of the object's local scale.
Defaults to [object Object]scaleZ
: number
The z coordinate of the object's local scale.
Defaults to [object Object]castShadow
: boolean
Whether the object gets rendered into the shadow map.receiveShadow
: boolean
Whether the material receives shadows.name
: string
An arbitrary name of the instance.
Defaults to [object Object]hidden
: boolean
The object visibility.zoom
: number
The zoom factor.
Defaults to [object Object]near
: number
The camera frustum near plane.
Defaults to [object Object]far
: number
The camera frustum far plane.
Defaults to [object Object]fov
: number
The camera frustum vertical field in degrees.
Defaults to [object Object]aspect
: number
The camera frustum aspect ratio.
# Slots
default
Objects defined in the slot will be handled as decsendants.