gpt4 book ai didi

graphics - Three.js:Lambert 和 Phong 之间的确切区别是什么?

转载 作者:行者123 更新时间:2023-12-03 11:07:53 24 4
gpt4 key购买 nike

我了解 Lambert 和 Phong 在一般计算机图形学中的区别。我也了解我们如何使用three.js 更改和创建我们自己的 Material 。但是我无法计算 MeshLambertMaterial 和 MeshPhongMaterial 在默认状态下的区别。

我曾尝试在具有一个定向光源和 125 个球体的场景中切换它们,但我看不出任何差异。我的书的一章中使用了 Three.js,所以我需要确保所有信息都准确无误。

谢谢,
沙恩

最佳答案

我假设您想要 MeshLambertMaterial 之间的确切差异和 MeshPhongMaterial正如在three.js 中实现的那样。

您必须区分着色模型和照明模型。 Three.js 没有实现“纯”的 Phong 或 Lambert 模型。

对于 MeshLambertMaterial ,在每个顶点执行照明计算,并且在多边形的面上对结果颜色进行插值。 (Gouraud shading;(广义)Lambert 光照模型)

对于 MeshPhongMaterial ,顶点法线在多边形的表面上进行插值,并且在每个纹素处执行照明计算。 ( Phong shading; (广义) Phong 光照模型)

当您有一个靠近面的点光源时,您会看到明显的差异——尤其是当光的衰减距离小于到面顶点的距离时。

对于这两种 Material ,在 FlatShading 的情况下,面法线替换每个顶点法线。

三.js.r.66

关于graphics - Three.js:Lambert 和 Phong 之间的确切区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15801971/

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