gpt4 book ai didi

javascript - 如何在 MeshPhongMaterial 上动态设置纹理?

转载 作者:行者123 更新时间:2023-11-30 15:10:00 24 4
gpt4 key购买 nike

我正在尝试在 THREE.MeshPhongMaterial 上设置纹理,但纹理未加载。我的代码:

let earth_geometry = new THREE.SphereGeometry(450, 10, 10)
let earth_material = new THREE.MeshPhongMaterial({
emissive: 0xffffff
})
let earth = new THREE.Mesh(earth_geometry, earth_material)
loadImage(earth_material, '/img/earth.jpg')
scene.add(earth)

function loadImage(material, url) {
let texture = new THREE.TextureLoader().load(url, (e) => {
texture.minFilter = THREE.LinearFilter
texture.anisotropy = 8
material.map = texture
material.needsUpdate = true
})

如果我将 Material 更改为 THREE.MeshBasicMaterial(),则会加载纹理。为什么它不适用于 THREE.MeshPhongMaterial

最佳答案

可能与您的纹理变量有关?
我想你是在设置他的纹理变量,在你尝试使用它之后。
加载器回调中的 e 参数实际上是加载的纹理。
试试这个..

function loadImage(material, url) {
let loader = new THREE.TextureLoader()
loader.load(url, (texture) => {
texture.minFilter = THREE.LinearFilter
texture.anisotropy = 8
material.map = texture
material.needsUpdate = true
// maybe need this too..
material.map.needsUpdate = true;
})

关于javascript - 如何在 MeshPhongMaterial 上动态设置纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45246847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com