質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Three.js

Three.jsはWebGLをサポートしているJavaScriptの3D描画用ライブラリです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1746閲覧

three.jsを使って図形にテクスチャを貼りたいのですが、THREE.TextureLoader is not a constructorといったエラーが出てしまいます

sss_tommy

総合スコア7

Three.js

Three.jsはWebGLをサポートしているJavaScriptの3D描画用ライブラリです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/10/19 14:54

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

THREE.TextureLoader is not a constructor

該当のソースコード

js

1window.addEventListener("load", function () { 2 3 // canvas 4 let canvas = document.getElementById("canvas"); 5 6 let sizes = { 7 width: window.innerWidth, 8 height: window.innerHeight 9 } 10 11 // renderer 12 let renderer = new THREE.WebGLRenderer({ 13 canvas: canvas, 14 alpha: true 15 }); 16 renderer.setSize(sizes.width, sizes.height); 17 18 // scene 19 let scene = new THREE.Scene(); 20 21 // geometory 22 let geometory = new THREE.SphereGeometry(.5, 64, 64); 23 24 // load 25 let loader = new THREE.TextureLoader(); 26 27 //material 28 let material = new THREE.MeshLambertMaterial({ 29 map: loader.load('NormalMap(1).png'), 30 }); 31 32 33 34 35 // mesh 36 let sphere = new THREE.Mesh(geometory, material); 37 scene.add(sphere); 38 39 // lights 40 let pointLight = new THREE.PointLight(0xffffff, 0.1); 41 pointLight.position.x = 2; 42 pointLight.position.y = 3; 43 pointLight.position.z = 4; 44 scene.add(pointLight); 45 46 // camera 47 let camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height, 0.1, 100); 48 camera.position.x = 0; 49 camera.position.y = 0; 50 camera.position.z = 2; 51 scene.add(camera); 52 53 setInterval(function () { 54 sphere.rotation.y += 0.005; 55 renderer.render(scene, camera); 56 57 }, 10); 58 59 renderer.render(scene, camera); 60}); 61 62 63

試したこと

TextureLoaderを宣言する場所を変えても上手くいきませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

THREE.TextureLoader is not a constructor

使用されている three.js のバージョンはいくつでしょうか?
three.js r133 で試した所、特段エラーは出ないようでした。(少し暗かったので明るさは強調しています)

https://jsfiddle.net/cx20/wx0g57mj

イメージ説明

投稿2021/10/19 15:56

編集2021/10/19 15:58
cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cx20

2021/10/19 16:26

THREE.TextureLoader が追加されたのが three.js r50 である為、それよりも前のバージョンだとエラー再現しますね。だいぶ古いバージョンなので、まさかとは思いますが。。 https://jsfiddle.net/cx20/2d9jLvrx/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問