Titled Fiddle
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Celestial</title>
<style>
body {
margin: 0;
}
</style>
</head>
<body>
<script src="script.js" type="module"></script>
</body>
</html>
JavaScript
import * as THREE from "three"
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"
import { EffectComposer } from "three/examples/jsm/Addons.js"
import { RenderPass } from "three/examples/jsm/Addons.js"
import { UnrealBloomPass } from "three/examples/jsm/Addons.js"
import { GUI } from "dat.gui"
import stars from "./textures/2k_stars.jpg"
import galaxy from "./textures/2k_stars_milky_way_square.jpg"
import sun from "./textures/8k_sun.jpg"
import earth from "./textures/2k_earth.jpg"
import moon from "./textures/2k_moon.jpg"
import mercury from "./textures/2k_mercury.jpg"
import venus from "./textures/2k_venus.jpg"
/* Initialization */
const renderer = new THREE.WebGLRenderer({ antialias: true })
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)
renderer.shadowMap.enabled = true
const scene = new THREE.Scene()
const camera = new THREE.PerspectiveCamera(
75,
window.innerWidth / window.innerHeight,
0.1,
500000,
)
const orbit = new OrbitControls(camera, renderer.domElement)
camera.position.set(2500, 0, 20)
/* sun glow effect */
const renderScene = new RenderPass(scene, camera)
const bloomPass = new UnrealBloomPass(
new THREE.Vector2(window.innerWidth, window.innerHeight),
1,
0,
0,
)
const bloomComposer = new EffectComposer(renderer)
bloomComposer.setSize(window.innerWidth, window.innerHeight)
bloomComposer.renderToScreen = true
bloomComposer.addPass(renderScene)
bloomComposer.addPass(bloomPass)
/* All visible stuff */
const axesHelper = new THREE.AxesHelper(240000)
scene.add(axesHelper)
const ambientLight = new THREE.AmbientLight(0x303030)
scene.add(ambientLight)
const textureLoader = new THREE.TextureLoader()
const cubeTextureLoader = new THREE.CubeTextureLoader()
scene.background = cubeTextureLoader.load([
stars,
stars,
stars,
stars,
stars,
galaxy,
])
/* Celestial bodies */
const sunGeometry = new THREE.SphereGeometry(90, 80, 80)
const sunMaterial =...