为什么在使用 THREE.SubdivisionModifier 时 normalMap 无法正确渲染?
Why won't a normalMap render correctly when using THREE.SubdivisionModifier?
我需要用法线贴图渲染一个 'soft' 立方体。 运行 代码时我没有收到任何错误或警告,但是当我在函数调用中指定法线贴图参数并刷新浏览器时,我看到一个黑色对象。如果我移除法线贴图,我可以成功渲染一个带有 Phong material 的立方体。有趣的是,如果我将 material 更改为法线 material,并尝试对立方体进行纹理处理,则会应用我尝试使用的实际 RGB 法线贴图。此外,如果我不在立方体上使用 THREE.SubdivisionModifier() 并简单地渲染一个锋利的立方体,我可以让法线贴图正常工作。有任何想法吗?提前致谢。这是我的代码:
var cube_geo = new THREE.BoxGeometry(.1, .1, .1, 5, 5, 5);
var smooth = cube_geo.clone();
var modifier = new THREE.SubdivisionModifier(5);
modifier.modify(smooth);
var cube_mat = new THREE.MeshPhongMaterial(
{
color: 0x000000,
specular: 0x222222,
normalMap: cube_normal_map,
}
);
cube = new THREE.Mesh(smooth, cube_mat);
scene.add(cube);
Three.SubdivisionModifier
目前存在不处理 UV 的限制。
参见SubdivisionModifier.js
源代码中的注释。
three.js r.70
我需要用法线贴图渲染一个 'soft' 立方体。 运行 代码时我没有收到任何错误或警告,但是当我在函数调用中指定法线贴图参数并刷新浏览器时,我看到一个黑色对象。如果我移除法线贴图,我可以成功渲染一个带有 Phong material 的立方体。有趣的是,如果我将 material 更改为法线 material,并尝试对立方体进行纹理处理,则会应用我尝试使用的实际 RGB 法线贴图。此外,如果我不在立方体上使用 THREE.SubdivisionModifier() 并简单地渲染一个锋利的立方体,我可以让法线贴图正常工作。有任何想法吗?提前致谢。这是我的代码:
var cube_geo = new THREE.BoxGeometry(.1, .1, .1, 5, 5, 5);
var smooth = cube_geo.clone();
var modifier = new THREE.SubdivisionModifier(5);
modifier.modify(smooth);
var cube_mat = new THREE.MeshPhongMaterial(
{
color: 0x000000,
specular: 0x222222,
normalMap: cube_normal_map,
}
);
cube = new THREE.Mesh(smooth, cube_mat);
scene.add(cube);
Three.SubdivisionModifier
目前存在不处理 UV 的限制。
参见SubdivisionModifier.js
源代码中的注释。
three.js r.70