Textured ExtrudeGeometry Example

[This space intentionally left blank]

by neonDog

HTML

<!doctype html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Textured Path</title>
</head>
<body>
<div id="canvas"></div>
</body>
</html>

JavaScript

var camera, dataURI, renderer, scene, surface;
        var texture, uvGenerator;
        var width = 800,
          height = 600;

        dataURI = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAi0lEQVRIx83WQQ6AIAwEwMXwb/p0b4SI1CJsS08e2k0nKDGVUsCsDEBESOkikusTIx3ABXJdJEEN9BLsRbRRjoJdiEeIr2Ad0Y+7C1YQr4MRgn+I0UiQYBahNMcJ7Ai9LVRgQXw2RAv0HS2HdIBgtKnxHTtD0O9r/86PEbRbT11TdEHecukrldi/7zd8KDG/sdhdzgAAAABJRU5ErkJggg==';

        function initCamera() {
          camera = new THREE.PerspectiveCamera(60, width / height, 1, 1000);
          camera.position.set(0, 0, 0);
          scene.add(camera);
        }

        function initLights() {
          var lights;

          lights = [
            new THREE.PointLight(0xffffff, 1, 0),
            new THREE.PointLight(0xffffff, 1, 0),
            new THREE.PointLight(0xffffff, 1, 0),
          ];
          lights[0].position.set(0, 200, 0);
          lights[1].position.set(100, 200, 100);
          lights[2].position.set(-100, -200, -100);

          scene.add(lights[0]);
          scene.add(lights[1]);
          scene.add(lights[2]);
        }

        function initRenderer() {
          var canvas;

          canvas = document.getElementById('canvas');
          renderer = new THREE.WebGLRenderer();
          renderer.setSize(width, height);
          canvas.appendChild(renderer.domElement);
        }

        function initScene() {
          scene = new THREE.Scene();
        }

        function initSurface() {
          surface = extrudeSurface();
          surface.position.set(50, -50, 50);
          scene.add(surface);
        }

        function generalInit() {
          initScene();
          initCamera();
          initLights();
          initSurface();
          initRenderer();

          animate();
        }
        uvGenerator = {
          generateTopUV: function(geometry, vertices, idxA, idxB, idxC) {
            var ax, ay, bx, by, cx, cy;

            ax =...