
あるときバージョンの異なるThree.jsを触っていたら、PointLightの明るさが全然違うということに気づきました。
r152とr175での見え方の違い
Three.js(r152)

Three.js(r175)

どうでしょうか?古いバージョンの方が明るく、新しいバージョンの方が暗く見えているのが分かるかと思います。
原因は下記の記事の中で紹介されていました。
引用
Three.js r155からデフォルトの光度単位が変わりました。PointLightとSpotLightのデフォルトの光度は1カンデラになり、大幅に暗くなっています。
Three.jsを更新してシーン全体が暗くなったり、モデルにハイライトが入らないと感じたら、以下の2点を調整してください。
- PointLightとSpotLightの光度を数百倍に強くする
- それ以外のライトの強度をMath.PI倍にする
私の場合、明るく見えている方がr152で暗く見えているのがr175なので、ちょうどこの破壊的変更の影響を受けているということでした。
今回は上記の「PointLightとSpotLightの光度を数百倍に強くする」の対処法で解決しました。
//変更前のコード
const pLight = new THREE.PointLight(0xffffff, 1, 200);
pLight.position.set(-26, 7, 100);
scene.add(pLight);
//変更後のコード
const pLight = new THREE.PointLight(0xffffff, 9000, 200);
pLight.position.set(-26, 7, 100);
scene.add(pLight);同じような見た目になるまで調整を繰り返しましたが、数百倍どころではありませんでした…(結果的に9000倍です)
そのレンダリング結果の比較が下記になります。
Three.js(r152)

Three.js(r175修正後)

これで見た目上は似たような結果となりましたが、「それ以外のライトの強度をMath.PI倍にする」とありますので、AmbientLightやDirectionalLightを使用している場合はそれらの強度にMath.PIをかけることで同じような見た目を再現できるとのことです。
![[Three.js] r155からライトの光度単位が変わりました - Qiita](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.1.1%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkYwJTJGOTU1NiUyRnByb2ZpbGUtaW1hZ2VzJTJGMTY1NjcyNTk3Mj9peGxpYj1yYi00LjEuMSZhcj0xJTNBMSZmaXQ9Y3JvcCZtYXNrPWVsbGlwc2UmYmc9RkZGRkZGJmZtPXBuZzMyJnM9NWJlYTkzODljMWE3ZmJkZWMwMjY0MmYwOGZjZGI0OGY%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D9268a97a74beab4047f33dc274289545?ixlib=rb-4.1.1&w=1200&fm=jpg&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjEuMSZ3PTk2MCZoPTMyNCZ0eHQ9JTVCVGhyZWUuanMlNUQlMjByMTU1JUUzJTgxJThCJUUzJTgyJTg5JUUzJTgzJUE5JUUzJTgyJUE0JUUzJTgzJTg4JUUzJTgxJUFFJUU1JTg1JTg5JUU1JUJBJUE2JUU1JThEJTk4JUU0JUJEJThEJUUzJTgxJThDJUU1JUE0JTg5JUUzJTgyJThGJUUzJTgyJThBJUUzJTgxJUJFJUUzJTgxJTk3JUUzJTgxJTlGJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9NTUxNzUyNGY0N2U5MjgwYzNhOTc5OWE0NjEzZGI3NmU&mark-x=120&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjEuMSZ3PTgzOCZoPTU4JnR4dD0lNDBtYXNhdG9fbWFraW5vJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9MTI3MTFhMDdkOGVhNGFmYWFlMDcyYWQ3NDEzYTZiMDU&blend-x=242&blend-y=480&blend-w=838&blend-h=46&blend-fit=crop&blend-crop=left%2Cbottom&blend-mode=normal&s=b4581a7d67f9235d2b1e7968842d9ccd)
