gpt4 book ai didi

javascript - Three.js 阴影转换在无障碍面上,启动分辨率较低

转载 作者:行者123 更新时间:2023-11-28 01:52:54 30 4
gpt4 key购买 nike

这是我的问题:

the issue.

文本上的阴影不应该存在,尽管我更改了 ShadowMap 分辨率,但没有任何变化。这是用于生成网格的代码:

var materialArray_Flying = [
new THREE.MeshPhongMaterial( { color: 0xff00ff, ambient: 0xff00ff } ), //face
new THREE.MeshPhongMaterial( { color: 0x008888, ambient: 0x008888 } )]; //sides

var textGeom_Flying = new THREE.TextGeometry( "{Flying}",
{
size: 4, height: .25, curveSegments: 3,
font: "helvetiker", weight: "bold", style: "normal",
bevelThickness: 0.025, bevelSize: 0.05, bevelEnabled: true,
material: 0, extrudeMaterial: 1
});
var textMesh_Flying = new THREE.Mesh(textGeom_Flying, new THREE.MeshFaceMaterial(materialArray_Flying));
scene.add(textMesh_Flying);
textMesh_Flying.castShadow = true;
textMesh_Flying.receiveShadow = true;

我的渲染器设置如下:

var renderer = new THREE.WebGLRenderer({antialias: true});
renderer.shadowMapEnabled = true;
renderer.shadowMapSoft = true;
renderer.shadowMapType = THREE.PCFSoftShadowMap;
renderer.shadowCameraNear = 3;
renderer.shadowCameraFar = camera.far;
renderer.shadowCameraFov = 50;
renderer.setClearColor(0x000000, 1);
renderer.shadowMapWidth = 4096;
renderer.shadowMapHeight = 4096;

欢迎任何帮助。

最佳答案

我相信您所看到的是由于对象在单位空间中非常小,并且阴影映射技术正在努力将如此小的浮点转换为可用的纹理。另外,对于非常“薄”的几何体,有时即使是最小的 ShadowCameraNear 值仍然足够大,可以直接“看到”网格。

我可以看到两种解决方案。

1) 停止接受主网格上的阴影

textMesh_Flying.receiveShadow = false;

或者 2) 增加整个场景的大小/字母的厚度,为阴影算法提供一些“内容”。

注意:您可以尝试 shadowCameraNear = 0.001; 看看是否也有帮助。

希望有帮助,

关于javascript - Three.js 阴影转换在无障碍面上,启动分辨率较低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482410/

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