-
Notifications
You must be signed in to change notification settings - Fork 25
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
Block type lamp instancing #264
Comments
To call out some initial ideas:
|
I was thinking of using the mist pass distance to determine distance, for better compatibility with older versions |
Also, maybe the distance thing could be configurable so the user can decide the distance(especially if most of the light sources are placed at a large distance from each other). Then if the user is in EEVEE and does a large distance, a warning could be thrown telling the user that they may run into issues). |
An interesting idea - though I don't think mist-style data is available in geo nodes, and I think there's real value in investing in geo node solutions for speed benefits (I'm starting to think about how meshswap could be overhauled to leverage it). It's a fair call to support old versions of blender, but will need to weigh the pros and cons and based on number of users (in all cases, will ensure existing features continue to work wherever they do currently, new features can be limited to blender version X+) |
That is a fair point. It would also help encourage users to upgrade to newer versions |
EEVEE won't have as many issues in the rewrite, but for now there could be a radius option added |
@th3pooka I've taken the node setup and made it a group Node so it's slightly easier to use |
Oh good idea! that way it can just be inserted into anything with just a couple wires @StandingPadAnimations . |
There is an issue though: performance |
Is there a way to reduce the strain with that many lights? Even if you added the lights manually i would think it would have the same strain. |
It's not the actual lights. Most of the performance issues come from distributing the points themselves (on my system it takes 2500 ms to update a change), at least in Cycles Not sure about EEVEE though |
Blender 3.x added a way to messure the performance of individual nodes in a geometry nodes setup |
@th3pooka I think I know why there's a performance issue. Since the input geometry for the distribute points node is the entire obj, Blender has to distribute a lot of points, even though we only care about emissive materials. That would partially explain the issue in performance for EEVEE There are 2 ways we can get around this
Pros:
Cons:
Pros:
Cons:
Ultimately I think Option 1 is the best since it's the simplest to implement both code-wise and geometry nodes wise |
And when I say performance, I mean performance in terms of modifying the geometry nodes settings. The actual lights and viewport are fine, so we could also remain with the current setup |
The idea of this system is to spawn lamp objects into the scene, to avoid needing light emission coming from material nodes. This is desirable because:
There are several caveats though. The biggest is the limit on the number of lamps, e.g. the 128 lamps limit in Eevee scene (a single 12x12 grid of glowstone would blow through that limit; how would it work for a lake of lava?).
There are several ways to approach this problem. One way would be a py script that just spawns lamps intelligently in the scene. We can use this thread to brainstorm different ideas for how this could function, following comments can outline the possibilities. It will likely need to be its own function, separate from meshswap and prep materials as the consequence of adding lights may not be expected by users.
Flagging @StandingPadAnimations who has already been thinking about this issue!
The text was updated successfully, but these errors were encountered: