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

repurpose reflector, make it capable to blur #260

Merged
merged 9 commits into from
Jan 28, 2021
Merged

repurpose reflector, make it capable to blur #260

merged 9 commits into from
Jan 28, 2021

Conversation

drcmda
Copy link
Member

@drcmda drcmda commented Jan 27, 2021

Screenshot 2021-01-27 at 10 33 52

sandbox: https://codesandbox.io/s/cell-fracture-forked-bfplr?file=/src/App.js:525-697

new props:

  • args: allows us to set the plane, previously hardwired to 10/10
  • mirror: when true reflects the scene instead of using a material color
  • blur=[width, height]: when w/h are 0 it will skip blur and just reflect (default), being able to set width/height allows us to stretch blur downwards for a more realistic effect
  • resolution: the size of the buffers, this better be as small as possible

new features:

renderchildren allow us to set the material, which wasn't possible before

<Reflector>
  {(Material, props) => <Material {...props} roughness={0.5} color="black" />}
</Reflector>

TODO (in the future):

  • make blur take roughness into account, that could increase blur on rough spots of the texture and decrease it on clearcoated spots, it would look amazing
  • perhaps scale blur in distance, so that it increases vertically

@vercel
Copy link

vercel bot commented Jan 27, 2021

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/pmndrs/drei/m8ebc9dfk
✅ Preview: https://drei-git-blurreflector.pmndrs.vercel.app

@joshuaellis joshuaellis changed the base branch from master to beta January 27, 2021 17:26
return (
<mesh ref={meshRef} {...props}>
<planeBufferGeometry args={args} />
{children ? children('meshReflectorMaterial', reflectorProps) : <meshReflectorMaterial {...reflectorProps} />}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

im not quite sure what you're wanting to happen here with children()

@joshuaellis
Copy link
Member

I moved some of the materials out of their folder to avoid noise. with the types it was especially hard to follow what was going on. Just need some clarity on the children bit & then the story needs updating and we're good.

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jan 28, 2021

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 6edf7a3:

Sandbox Source
broken-cookies-lyste Configuration
drei reflector PR

@drcmda drcmda merged commit 3f6dab6 into beta Jan 28, 2021
joshuaellis added a commit that referenced this pull request Jan 28, 2021
* [Feature] move stories to TS (#223) (#231)

* feat: setup TS for stories

* fix: eslint was ignore .storybook

* feat: add TS to storybook

* refactor: move stories to TS (WIP)

* refactor: move more stories to TS (WIP)

* refactor: src changes for TS move over

I think these were TS problems that were missed.

* fix: ContactShadows story

* refactor: move more stories to TS

* refactor: add MapControls.tsx after raising issues in three

Two errors linked to three.js:
mrdoob/three.js#21058
mrdoob/three.js#21059

* fix: TS errors for passing refs & children

* refactor: add more stories (WIP)

* fix: useContextBridge TS to accept array of children

fixed using DefinitelyTyped/DefinitelyTyped#44572 (comment) because microsoft/TypeScript#14729

* refactor: convert more stories to TS

also useGLTF does not need to declare it's type

* chore: update storybook

* fix: revert useTexture

accidentally committed a WIP change

* refactor: move stories to TS (WIP)

* refactor: revert useGLTF story

* Minor type fixes

* chore: update react-three-fiber to latest

Required for Types

* refactor: move stories to TS

* fix: shaderMaterial on init returns void, not null

* refactor: remove unnecessary type in useFBX

* refactor: type Environment stronger

there was issues with useAsset not understanding it's types....

* Fixes CSB CI (#230)

Co-authored-by: Gianmarco Simone <[email protected]>

Co-authored-by: Josh <[email protected]>

* 2.2.16

* chore: add templates (#232)

* chore: add react-dom as optional peer depency

if you're using react-native you don't need it.

* docs: update readme

* fix: fix storybook imports that should have been done before

* BREAKING CHANGE: refactor internal to solve react-native imports

my bad.

Co-authored-by: Gianmarco <[email protected]>

* 2.3.0-beta.0

* fix: edit transformOutputPath to remove .ts from files

* 2.3.0-beta.1

* fix: useAnimations ref type & chore: add storybook entry for useAnimations

* Added THREE.Group to useAnimations types

* Small refactor

* Added useAnimations story

* Clean up storybook

* Fix null ref typing on useAnimations

* Forgot to change typing on useAnimations api

* chore: add storybook entry to README

Co-authored-by: Josh Ellis <[email protected]>

* [fix] Blob is undefined when using SSR (#239)

* fix: #233 Blob is undefined in SSR

* refactor: it appears Billboard is fixed

Looks like Typescript does not suck.

* 2.3.0-beta.2

* fix: create polyfill for atob

* 2.3.0-beta.3

* chore: update readme in response to #240

* fix: #242 Frustum has incorrect spelling in softshadows (#243)

* fix: suggestion for fixing #242

* refactor: default should be other way round

* chore: update readme with correct spelling

* 2.3.0-beta.4

* feat: Add MeshoptDecoder support to useGLTF (#246)

* Add MeshoptDecoder support to useGLTF

* chore: move center

Co-authored-by: Josh Ellis <[email protected]>

* 2.3.0-beta.5

* feat: #181 – adding points to line (#247)

* feat: re-create geometry on new points

* refactor: useMemo the geometry instead of useEffect

* 2.3.0-beta.6

* 3.0.0-beta.1

* 3.0.0-beta.2

* feat: update troika with new features (#255)

* 3.0.0-beta.3

* feat: add ability to add custom scene as prop (#256)

* feat: add ability to add custom scene as prop

* docs: update Environment with new feats

* 3.0.0-beta.4

* refactor: shuffle imports for beta

* 3.0.0-beta.5

* docs: clearly specify name of package & old has been deprecated

* BREAKING CHANGE: Upgrade Three.js to r125 (#262)

* chore: update Three.js dependency

* refactor: remove subdivision modifier

* fix: remove use of FaceNormalsHelper as it no longer exists in Three

* fix: update typings for THREE

* fix: update modifiers to work without THREE.Geometry

* docs: update README

* chore: add Three.js peer dependency

* fix: change install instructions to use yarn instead of npm (#265)

* repurpose reflector, make it capable to blur (#260)

* repurpose reflector, make it capable to blur

* refactor: move materials out to reduce noise & fix types

* refactor: merge beta

* fix: add child propType

* refactor: update reflector story & fix children type

* changes

* fix: shuffle types so reflectorProps come from what the material expects

* docs

Co-authored-by: Josh Ellis <[email protected]>

* chore: add workflows to beta release

* BREAKING CHANGE force build

* 3.0.0-beta.6

Co-authored-by: Gianmarco Simone <[email protected]>
Co-authored-by: Tanner Hartwig <[email protected]>
Co-authored-by: Matt Rossman <[email protected]>
Co-authored-by: Renaud Rohlinger <[email protected]>
Co-authored-by: Jure Triglav <[email protected]>
Co-authored-by: Jason Bixon <[email protected]>
Co-authored-by: Paul Henschel <[email protected]>
@joshuaellis joshuaellis deleted the blurreflector branch January 28, 2021 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants