Three.js:基于图像的照明(IBL)

时间:2015-11-13 14:30:42

标签: three.js

我正在搜索将IBL添加到我的场景和对象中。但我无法在网上找到任何东西。有一些envMap的例子,但问题是envMap对象看起来像chrome ... Sphere with envMap

我试图产生这样的效果: Object with IBL

我发现您可以使用IBL(基于图像的照明),PRT(预计算辐射传输)或PBR(基于物理的渲染)。但是我无法知道如何在three.js中使用这样的效果。

[编辑]

使用MeshStandardMaterial中的新r74dev后,我可以获得以下结果: (之前) Whithout MeshStandardMaterial (后) With MeshStandardMaterial

但我不能将MeshStandardMaterialenvMap与纹理结合使用。纹理或MeshStandardMaterial dooesn工作。

2 个答案:

答案 0 :(得分:2)

感谢WestLangley我正在使用MeshStandardMaterial

var objectGeometry = new THREE.SphereGeometry( 10, 100, 100 );  
material  = new THREE.MeshStandardMaterial({envMap : textureSkydome});

(r74dev)

答案 1 :(得分:0)

也许你可以使用光照贴图。您可以通过设置import Cocoa class ProgressView: NSView { @IBOutlet weak var progressIndicator: CustomLevelIndicator! @IBOutlet weak var textValue: NSTextField! func update(value: Double) { dispatch_async(dispatch_get_main_queue()) { self.progressIndicator.doubleValue = value self.textValue.stringValue = "\(value)%" } } } 将其与THREE.MeshPhongMterial一起使用。重要 - 您需要在几何体中使用第二组UV才能使用光照贴图。

看看这个example