| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- import type { Scene } from "./_helpers";
- export const starfield: Scene = {
- name: "Starfield",
- description:
- "Classic Windows starfield screensaver -- flying through stars at warp speed",
- spec: {
- root: "scene",
- elements: {
- scene: {
- type: "Group",
- props: { position: null, rotation: null, scale: null },
- children: [
- "cam",
- "ambient",
- "tunnel",
- "stars1",
- "stars2",
- "sparkle-dust",
- "shake",
- "post",
- "controls",
- ],
- },
- cam: {
- type: "PerspectiveCamera",
- props: {
- position: [0, 0, 0],
- rotation: null,
- scale: null,
- fov: 75,
- near: 0.1,
- far: 1000,
- makeDefault: true,
- },
- children: [],
- },
- ambient: {
- type: "AmbientLight",
- props: { color: "#111122", intensity: 0.15 },
- children: [],
- },
- tunnel: {
- type: "WarpTunnel",
- props: {
- position: [0, 0, 0],
- rotation: null,
- scale: null,
- ringCount: 120,
- radius: 4,
- length: 40,
- speed: 12,
- tubeRadius: 0.008,
- color1: "#ffffff",
- color2: "#aabbff",
- },
- children: [],
- },
- stars1: {
- type: "Stars",
- props: {
- radius: 50,
- depth: 80,
- count: 10000,
- factor: 6,
- saturation: 0,
- fade: true,
- speed: 3,
- },
- children: [],
- },
- stars2: {
- type: "Stars",
- props: {
- radius: 30,
- depth: 50,
- count: 5000,
- factor: 3,
- saturation: 0.1,
- fade: true,
- speed: 5,
- },
- children: [],
- },
- "sparkle-dust": {
- type: "Sparkles",
- props: {
- position: [0, 0, -5],
- rotation: null,
- scale: [8, 8, 30],
- count: 300,
- speed: 2,
- opacity: 0.6,
- color: "#ffffff",
- size: 1,
- noise: 4,
- },
- children: [],
- },
- shake: {
- type: "CameraShake",
- props: {
- intensity: 0.15,
- maxYaw: 0.02,
- maxPitch: 0.02,
- maxRoll: 0.01,
- },
- children: [],
- },
- post: {
- type: "EffectComposer",
- props: { enabled: true, multisampling: 8 },
- children: ["bloom", "vignette"],
- },
- bloom: {
- type: "Bloom",
- props: {
- intensity: 1.5,
- luminanceThreshold: 0.15,
- luminanceSmoothing: null,
- mipmapBlur: true,
- },
- children: [],
- },
- vignette: {
- type: "Vignette",
- props: { offset: 0.1, darkness: 0.9 },
- children: [],
- },
- controls: {
- type: "OrbitControls",
- props: {
- enableDamping: null,
- dampingFactor: null,
- enableZoom: false,
- enablePan: false,
- enableRotate: false,
- minDistance: null,
- maxDistance: null,
- minPolarAngle: null,
- maxPolarAngle: null,
- autoRotate: false,
- autoRotateSpeed: null,
- },
- children: [],
- },
- },
- },
- };
|