StrandedKitty / three-csm

☀️ Cascaded shadow maps (CSMs) implementation for Three.js
MIT License
296 stars 21 forks source link

(bit of unique problem) CSM uses three.module.js where as rest of the code uses three.cjs #30

Open vivasvan1 opened 1 year ago

vivasvan1 commented 1 year ago

Error:

So I was getting this error when i started digging into whats happening: image

Problem:

three has an _object3DId attached with each Object3d which increments by one like so.

image

So when setting up my world i create few Object3Ds using three.cjs and and the id goes up to some value (example: 13)

Now when CSM constructor (which uses three.module.js)

this.createLights()

is called it create 3 DirectionalLights with id's (example: 8,11,14)

After so the id of next light i make outside CSM will be 14 which exactly aligns with the last DirectionalLight (id: 14) which messes up the UniformCache in three.cjs.

Most cases this will not be a problem as what are the chances of 2 id's to coincide is very rare which wont mess up the cache.

image

Solution:

I dont know yet. If you have an idea do let me know if this is problem of CSM or THREE.js or something in my setup.