gkjohnson
Repos
107
Followers
642
Following
12

Path tracing renderer and utilities for three.js built on top of three-mesh-bvh.

650
55

A BVH implementation to speed up raycasting and enable spatial queries against three.js meshes.

1395
135

A flexible, memory compact, fast and dynamic CSG implementation on top of three-mesh-bvh

161
15

A generalized inverse kinematics solver that supports closed chains for parallel kinematics systems, dynamic reconfiguration, and arbitrary joint configuration based on damped least squares error minimization techniques

73
11

URDF Loaders for Unity and THREE.js with example ATHLETE URDF Files open sourced from NASA JPL

241
59

Renderer for 3D Tiles in Javascript using three.js

919
172

Events

Fix diamond refraction

This actually looks like a longer standing issue with MIS vs non MIS rendering. Possibly related to here

Created at 3 hours ago

Improve gui options

Created at 17 hours ago
Address metalness brightness

Account for BRDF multiscattering:

https://google.github.io/filament/Filament.html#materialsystem/improvingthebrdfs/energylossinspecularreflectance

https://dl.acm.org/doi/10.1145/2897824.2925943

https://jo.dreggn.org/home/2016_microfacets.pdf

Created at 17 hours ago
Background alpha does not look correct when composited with a white background compared to rendered background
Created at 18 hours ago
Transparent background only renders correctly with "premulipliedAlpha = false" on the renderer

We need the ability to set the transparency as "premultiplied alpha = true" in the shader.

Created at 18 hours ago
create tag
gkjohnson create tag r145
Created at 1 day ago

update pathtracer demo

add more parameters

Created at 1 day ago
create branch
gkjohnson create branch add-pathtracer
Created at 1 day ago

Update spotlights demo

Merge branch 'metalness-fix'

Created at 1 day ago
gkjohnson create branch metalness-fix
Created at 1 day ago
Add a viewer for PBR database materials

That's great to see! Looking forward to it coming along - let me know if you have any questions.

I'm waiting for the USD Asset Working Group to release a standardized version of the render ball:

This would be great. Is the material ball you're using now available to use? Along with the camera parameters used to render your test images? It would be great to be able to render a 1-to-1 side by side in an example page here to find differences in render quality and parameters.

One thing to note is that I'm using react-three-gpu-pathtracer, so I'm a few versions behind

Yeah it looks like it's still on v0.0.2. The next version of the project will include some good material sampling improvements so maybe once that's out we can ping the maintainer and ask if it's possible to upgrade.

The properties are not mapping directly to MeshPhysicalMaterial, with some things missing (such as Specular Color) and some named differently

Once you're further along if you have a function that maps your properties to the three.js materials that would be nice to share so we can get a comparison viewer going.

Created at 1 day ago
Add option for specular rays to reflect the gradient background instead of the primary background (for first ray?)
Created at 1 day ago
Fix diamond refraction

Likely related to ior changes in #260

image

Created at 2 days ago

adjust example material properties

Created at 2 days ago
Metalness implementation seems incorrect

Closing in favor of #264

Created at 2 days ago
Address metalness brightness

khronos-MetalRoughSpheres

Notice the gold balls getting brighter in the mid range and the dark metalness.

Created at 2 days ago
gkjohnson delete branch metalness-fix
Created at 2 days ago

reference fixes

cleanup

clean up

Improve defaults for ior

Merge remote-tracking branch 'origin/main' into metalness-fix

Conflicts:

src/materials/PhysicalPathTracingMaterial.js

Add ior to f0 function

Add demo setting for filter glossy

Fix perceptual roughness issue

comment

Consistency, simplicity

fix roughness default

Add parameters for viewer test

fix material ball settings

Adjust specular color behavior

Revert "Adjust specular color behavior"

This reverts commit 5932836b718945ea30e840d8631fed7c994ac590.

Fix specular

Add iridescent option

Merge pull request #260 from gkjohnson/metalness-fix

Fix metalness artifacts

Created at 2 days ago
pull request closed
Fix metalness artifacts

Related to #76

TODO

  • [x] Fix lack of specular on non metal materials (add default ior of 1.4 to match three.js')
  • [x] Add ior to f0 function
  • [x] Investigate roughness falloff (gltf spec requires squaring)
  • [x] * Config specular color and intensity usage
    • see here
    • should only apply to dialectric (see here)
  • [x] Fix fresnel at the rim
  • [x] Fix iridescence
  • [ ] Metalness gets too bright at 0.5
    • The combination of these two lines causes the specular to peak at mid metalness.
    • vec3 color = mix( surf.specularColor, surf.color, metalness );
    • color *= mix( F, vec3( 1.0 ), metalness );
  • [ ] Investigate rough metal darkness
    • seems to be caused by the ggx function returning rays under the surface
    • Try other GGXVNDF implementation

NOTES

  • wi: incident vector or light vector (pointing toward the light)
  • wo: outgoing vector or view vector (pointing towards the camera)
  • Eval: Get the color and pdf for a direction
  • Sample: Get the direction, color, and pdf for a sample
  • eta: Greek character used to denote the "ratio of ior"
  • f0: Amount of light reflected when looking at a surface head on - "fresnel 0"
Created at 2 days ago
Address metalness brightness
  • Metalness gets too bright at 0.5
    • The combination of these two lines causes the specular to peak at mid metalness.
    • vec3 color = mix( surf.specularColor, surf.color, metalness );
    • color *= mix( F, vec3( 1.0 ), metalness );
  • Investigate rough metal darkness
    • seems to be caused by the ggx function returning rays under the surface
    • Try other GGXVNDF implementation
Created at 2 days ago

Revert "Adjust specular color behavior"

This reverts commit 5932836b718945ea30e840d8631fed7c994ac590.

Fix specular

Created at 2 days ago

Adjust specular color behavior

Created at 2 days ago

Add parameters for viewer test

fix material ball settings

Created at 2 days ago

Consistency, simplicity

Created at 2 days ago
Add a BRDF explorer

With charts and 3d visuals

https://twitter.com/BenHouston3D/status/1577013912007888896

Created at 2 days ago

Add sample SGI image

Update PDS Loader example

Merge commit 'd9f119ebcd3a48d6b1bd8c7fb3c1e7cbcca829e1'

Created at 2 days ago