Comments (4)
Ah yes we ran into this issue in another lib. The Cache key is the shader program itself, since each new instance of CSM is initialized with the same base material shader they get the same cache key.
Thanks, will fix
from three-customshadermaterial.
Currently, if you use multiple of these materials, only one (the first) shader gets used.
Do you have any code I can take a look at for this? If I duplicate the water material and give them different colors, it works as expected:
<Water base={Base} />
<group position={[-5, 0, 0]}>
<Water color="#ff0000" base={Base} />
</group>
<group position={[0, 0, -5]}>
<Water color="#ff00ff" base={Base} />
</group>
I think you might be running this this
That like overrides the unifroms on the Water material, so it appears as though even duplicates are the same material.
Closing for now, will re open if I run into this.
from three-customshadermaterial.
Never mind, I found that this is the case where you use 2 completely separate instances of <CustomLayerMaterial />
from three-customshadermaterial.
Ok applied patch
THREE-CustomShaderMaterial/src/vanilla.ts
Lines 33 to 35 in bc22d80
Little hacky but will do for now. Need to find a better, cache-friendly solution. Thanks so much for the report!
from three-customshadermaterial.
Related Issues (20)
- "Multiple instances of Three.js being imported" issue HOT 3
- Can you disable projection in the vertex shader? HOT 3
- CustomShaderMaterial error HOT 6
- Add csm_Bump? HOT 5
- If the base material has a map, a CSM from it throws an error on three >= 0.151.0 HOT 1
- Shader compilation failure if csm_Feature used is not compatible with base material HOT 2
- Warning: Function copy already exists on CSM, renaming to base_copy HOT 2
- Support macro defines like THREE.ShaderMaterial HOT 1
- Waves example seems to be broken HOT 3
- Extended meshBasicMaterial does not have access to cameraPosition uniform HOT 3
- Problem with using csm_PositionRaw and InstancedMesh HOT 9
- TresJs implementation HOT 2
- How to change the opacity of extended material ? HOT 3
- Couldn't extend `<MeshReflectorMaterial/>` from `drei` HOT 1
- Feature request addition of transmision and thickness maps HOT 1
- Cannot use both csm_DiffuseColor and csm_FragColor in if/else HOT 3
- Extending ShadowMaterial HOT 22
- Accessing csm_FragColor values in if statement causes white rendering HOT 3
- Failed to resolve module specifier "crypto" HOT 2
- Textures HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three-customshadermaterial.