Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Physically-based real-time subsurface scattering #9249

Closed
4 of 12 tasks
bhouston opened this issue Jun 29, 2016 · 7 comments
Closed
4 of 12 tasks

Physically-based real-time subsurface scattering #9249

bhouston opened this issue Jun 29, 2016 · 7 comments

Comments

@bhouston
Copy link
Contributor

Description of the problem

We should implement some type of standard sub-surface scattering algorithm. I hacked somethig into Clara.io that does this but it is just a hack that doesn't have a true physical basis:

happy buddha webgl sub-surface scattering

https://clara.io/view/5c7d28c0-91d7-4432-a131-3e6fd657a042

My technique is a customization of this technique here, but it fairly unphysical or requires a lot of precomputation:

https://colinbarrebrisebois.com/2011/03/07/gdc-2011-approximating-translucency-for-a-fast-cheap-and-convincing-subsurface-scattering-look/

Three.js version
  • Dev
  • r78
  • ...
Browser
  • All of them
  • Chrome
  • Firefox
  • Internet Explorer
OS
  • All of them
  • Windows
  • Linux
  • Android
  • IOS
Hardware Requirements (graphics card, VR Device, ...)
@bruno-quintela
Copy link

I think Matt DesLauriers has already extended the current MeshStandardMaterial in order to support fast subsurface scattering.

More info on his technique and source code can be found here:

https://twitter.com/mattdesl/status/805784465725419520
https://gist.github.com/mattdesl/2ee82157a86962347dedb6572142df7c

@bhouston
Copy link
Contributor Author

@mattdesl Sweet! We should get this into a PR!

@bhouston
Copy link
Contributor Author

@bruno-quintela The technique @mattdesl implemented is the same one I linked to above. :) So this is perfect and fast.

@daoshengmu
Copy link
Contributor

daoshengmu commented Mar 2, 2018

screen shot 2018-03-05 at 6 46 03 pm

Following the approach from @mattdesl. It looks like using a thickness map to define the translucent in surfaces for computing the diffuse reflectance. Is there any progress for now?

If we decide to adopt this approach, should we have a separate material from StandardMaterial?

@mrdoob mrdoob added this to the rXX milestone Mar 2, 2018
@WestLangley
Copy link
Collaborator

WestLangley commented Mar 5, 2018

should we have a separate material from StandardMaterial?

I think so. You could start with adding an example using a ShaderMaterial. Or alternatively, extend MeshStandardMaterial similar to MeshToonMaterial.

@daoshengmu
Copy link
Contributor

screen shot 2018-03-07 at 3 09 11 am

Updating the progress of point lights support. It is very close to send a PR. Currently, I decide to create a MeshTranslucentMaterial extends MeshStandardMaterial.

@mrdoob
Copy link
Owner

mrdoob commented Mar 7, 2018

Nice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants