Orillusion / orillusion

Orillusion is a pure Web3D rendering engine which is fully developed based on the WebGPU standard.
https://www.orillusion.com
MIT License
4.97k stars 621 forks source link

[BUG]: SphereReflection 方式获取解决光照,split-sum的方式还需要使用吗? #417

Open Davidyanlong opened 3 months ago

Davidyanlong commented 3 months ago

能够提供完善的SphereReflection 的示例,split-sum还会使用吗? 同时想您请教一下,我们的间接光照将会如何完善?

orillusion-admin commented 3 months ago

这个是我们新加的功能,目前还在完善过程中,还没有官方的开放给开发者使用,感谢持续深入的关注我们的源码。后续我们完善后,也会官方提供一些Sample。

关于间接光照,可以提供一些具体的问题描述么?

Davidyanlong commented 3 months ago

orillusion 的效果

https://github.com/user-attachments/assets/e41bbfb4-c371-4783-8c46-77ab2a9df08c

` let ball = new Object3D(); let mat = new LitMaterial(); mat.baseMap = await Engine3D.res.loadTexture('PBR/copper-rock/copper-rock1-alb.png') mat.normalMap = await Engine3D.res.loadTexture('PBR/copper-rock/copper-rock1-normal.png') mat.maskMap = await Engine3D.res.loadTexture('PBR/copper-rock/copper-rock1-mask.png')

    let mr = ball.addComponent(MeshRenderer);
    mr.geometry = geometry;
    mr.material = mat;
    this.scene.addChild(ball)

`

threejs 的效果

https://github.com/user-attachments/assets/8d45a687-73fe-48b6-8034-de8dce966929

` let material = new THREE.MeshPhysicalMaterial( { // clearcoat: 1.0, // clearcoatRoughness: 0.1, // metalness: 0.0, // roughness: 0.0, // color: 0x0000ff, // normalMap: normalMap3, // normalScale: new THREE.Vector2( 0.15, 0.15 ) } );

                        material.map = textureLoader.load('textures/copper-rock/copper-rock1-alb.png');
                        material.normalMap = textureLoader.load('textures/copper-rock/copper-rock1-normal.png');
                        material.roughnessMap = textureLoader.load('textures/copper-rock/copper-rock1-rough.png');
                        material.metalnessMap = textureLoader.load('textures/copper-rock/copper-rock1-metal.png');
                        material.aoMap = textureLoader.load('textures/copper-rock/copper-rock1-ao.png');

`

所有用的材质

copper-rock1-metal copper-rock1-normal copper-rock1-alb copper-rock1-ao copper-rock1-height copper-rock1-mask copper-rock1-rough

与threejs 相比看上去不够真实, 间接光照IBL相对于orillusion v0.7.2版本有所下降,希望能够得到更好的效果,更好的性能!,加油Orillusion的兄弟们。

orillusion-admin commented 3 months ago

非常感谢!如果方便,可以加一下小欧的微信~

orillusion-admin commented 3 months ago

我们暂时不支持clearCoatMap~

可以参考这个Sample: https://github.com/Orillusion/orillusion/blob/main/samples/material/Sample_ClearCoat.ts

把更多的材质球信息暴露出来,然后调节参数看看是否可以达到想要的效果~

Davidyanlong commented 3 months ago

threejs 的案例误导您了,我是用了threejs的这个案例,用那个比较粗糙的球做对比,这里对比中没有使用clearCoat,需要和您咨询的是关于IBL相关的内容,如题