Chrome/MacOS中Three.js影子的质量?

dan*_*ani 12 antialiasing webgl three.js

我正在尝试一个简单的Three.js场景(这方面的新手).我正在使用Three.js WebGLRenderer并设置了一个平面,一个投射阴影和定向光源的立方体.结果显示在图像中.

我如何能:

1.提高阴影渲染的质量?
2.摆脱锯齿状的边缘?

我已将antialiasing设置为true,但它似乎对任何浏览器都没有帮助......

renderer = new THREE.WebGLRenderer({antialias:true});

在此输入图像描述

gai*_*tat 24

你可以做两件事.首先设置渲染器属性

renderer.shadowMapType = THREE.PCFSoftShadowMap; // options are THREE.BasicShadowMap | THREE.PCFShadowMap | THREE.PCFSoftShadowMap
Run Code Online (Sandbox Code Playgroud)

然后你还可以使用以下方法增加灯光的阴影贴图大小:

light.shadowMapWidth = 1024; // default is 512
light.shadowMapHeight = 1024; // default is 512
Run Code Online (Sandbox Code Playgroud)


Sal*_*ión 7

您可以做的另一件事是增加接收阴影的对象段的宽度/高度。

例如,更改此:

var plane = new THREE.PlaneGeometry( 1000, 1000, 10, 10);
Run Code Online (Sandbox Code Playgroud)

这样:

var plane = new THREE.PlaneGeometry( 1000, 1000, 100, 100);
Run Code Online (Sandbox Code Playgroud)

结果:

像素化 平滑的