<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/index.php?action=history&amp;feed=atom&amp;title=Three.js_-_Starters</id>
	<title>Three.js - Starters - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/index.php?action=history&amp;feed=atom&amp;title=Three.js_-_Starters"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Three.js_-_Starters&amp;action=history"/>
	<updated>2026-05-06T16:18:51Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikizone</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Three.js_-_Starters&amp;diff=25698&amp;oldid=prev</id>
		<title>134.3.241.3: Die Seite wurde neu angelegt: „ ThreeJS - Snippets === Starter mit StandardMaterial, Lights, Animation, Resize Handler (webpack) === :File:15-lights-good-starter.zip &lt;syntaxhighlight…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Three.js_-_Starters&amp;diff=25698&amp;oldid=prev"/>
		<updated>2021-12-30T22:04:41Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ &lt;a href=&quot;/index.php?title=ThreeJS_-_Snippets&quot; title=&quot;ThreeJS - Snippets&quot;&gt;ThreeJS - Snippets&lt;/a&gt; === Starter mit StandardMaterial, Lights, Animation, Resize Handler (webpack) === &lt;a href=&quot;/index.php?title=Datei:15-lights-good-starter.zip&quot; title=&quot;Datei:15-lights-good-starter.zip&quot;&gt;File:15-lights-good-starter.zip&lt;/a&gt; &amp;lt;syntaxhighlight…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt; [[ThreeJS - Snippets]]&lt;br /&gt;
=== Starter mit StandardMaterial, Lights, Animation, Resize Handler (webpack) ===&lt;br /&gt;
[[:File:15-lights-good-starter.zip]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import &amp;#039;./style.css&amp;#039;&lt;br /&gt;
import * as THREE from &amp;#039;three&amp;#039;&lt;br /&gt;
import { OrbitControls } from &amp;#039;three/examples/jsm/controls/OrbitControls.js&amp;#039;&lt;br /&gt;
import * as dat from &amp;#039;lil-gui&amp;#039;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Base&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// Debug&lt;br /&gt;
const gui = new dat.GUI()&lt;br /&gt;
&lt;br /&gt;
// Canvas&lt;br /&gt;
const canvas = document.querySelector(&amp;#039;canvas.webgl&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
// Scene&lt;br /&gt;
const scene = new THREE.Scene()&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Lights&lt;br /&gt;
 */&lt;br /&gt;
const ambientLight = new THREE.AmbientLight(0xffffff, 0.5)&lt;br /&gt;
scene.add(ambientLight)&lt;br /&gt;
&lt;br /&gt;
const pointLight = new THREE.PointLight(0xffffff, 0.5)&lt;br /&gt;
pointLight.position.x = 2&lt;br /&gt;
pointLight.position.y = 3&lt;br /&gt;
pointLight.position.z = 4&lt;br /&gt;
scene.add(pointLight)&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Objects&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// Material&lt;br /&gt;
const material = new THREE.MeshStandardMaterial()&lt;br /&gt;
material.roughness = 0.4&lt;br /&gt;
&lt;br /&gt;
// Objects&lt;br /&gt;
const sphere = new THREE.Mesh(&lt;br /&gt;
    new THREE.SphereGeometry(0.5, 32, 32),&lt;br /&gt;
    material&lt;br /&gt;
)&lt;br /&gt;
sphere.position.x = - 1.5&lt;br /&gt;
&lt;br /&gt;
const cube = new THREE.Mesh(&lt;br /&gt;
    new THREE.BoxGeometry(0.75, 0.75, 0.75),&lt;br /&gt;
    material&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
const torus = new THREE.Mesh(&lt;br /&gt;
    new THREE.TorusGeometry(0.3, 0.2, 32, 64),&lt;br /&gt;
    material&lt;br /&gt;
)&lt;br /&gt;
torus.position.x = 1.5&lt;br /&gt;
&lt;br /&gt;
const plane = new THREE.Mesh(&lt;br /&gt;
    new THREE.PlaneGeometry(5, 5),&lt;br /&gt;
    material&lt;br /&gt;
)&lt;br /&gt;
plane.rotation.x = - Math.PI * 0.5&lt;br /&gt;
plane.position.y = - 0.65&lt;br /&gt;
&lt;br /&gt;
scene.add(sphere, cube, torus, plane)&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Sizes&lt;br /&gt;
 */&lt;br /&gt;
const sizes = {&lt;br /&gt;
    width: window.innerWidth,&lt;br /&gt;
    height: window.innerHeight&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Handle Resize&lt;br /&gt;
 */&lt;br /&gt;
window.addEventListener(&amp;#039;resize&amp;#039;, () =&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    // Update sizes&lt;br /&gt;
    sizes.width = window.innerWidth&lt;br /&gt;
    sizes.height = window.innerHeight&lt;br /&gt;
&lt;br /&gt;
    // Update camera&lt;br /&gt;
    camera.aspect = sizes.width / sizes.height&lt;br /&gt;
    camera.updateProjectionMatrix()&lt;br /&gt;
&lt;br /&gt;
    // Update renderer&lt;br /&gt;
    renderer.setSize(sizes.width, sizes.height)&lt;br /&gt;
    renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2))&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Camera&lt;br /&gt;
 */&lt;br /&gt;
// Base camera&lt;br /&gt;
const camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height, 0.1, 100)&lt;br /&gt;
camera.position.x = 1&lt;br /&gt;
camera.position.y = 1&lt;br /&gt;
camera.position.z = 2&lt;br /&gt;
scene.add(camera)&lt;br /&gt;
&lt;br /&gt;
// Controls&lt;br /&gt;
const controls = new OrbitControls(camera, canvas)&lt;br /&gt;
controls.enableDamping = true&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Renderer&lt;br /&gt;
 */&lt;br /&gt;
const renderer = new THREE.WebGLRenderer({&lt;br /&gt;
    canvas: canvas&lt;br /&gt;
})&lt;br /&gt;
renderer.setSize(sizes.width, sizes.height)&lt;br /&gt;
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2))&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Animate&lt;br /&gt;
 */&lt;br /&gt;
const clock = new THREE.Clock()&lt;br /&gt;
&lt;br /&gt;
const tick = () =&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    const elapsedTime = clock.getElapsedTime()&lt;br /&gt;
&lt;br /&gt;
    // Update objects&lt;br /&gt;
    sphere.rotation.y = 0.1 * elapsedTime&lt;br /&gt;
    cube.rotation.y = 0.1 * elapsedTime&lt;br /&gt;
    torus.rotation.y = 0.1 * elapsedTime&lt;br /&gt;
&lt;br /&gt;
    sphere.rotation.x = 0.15 * elapsedTime&lt;br /&gt;
    cube.rotation.x = 0.15 * elapsedTime&lt;br /&gt;
    torus.rotation.x = 0.15 * elapsedTime&lt;br /&gt;
&lt;br /&gt;
    // Update controls&lt;br /&gt;
    controls.update()&lt;br /&gt;
&lt;br /&gt;
    // Render&lt;br /&gt;
    renderer.render(scene, camera)&lt;br /&gt;
&lt;br /&gt;
    // Call tick again on the next frame&lt;br /&gt;
    window.requestAnimationFrame(tick)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tick()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.3.241.3</name></author>
	</entry>
</feed>