Comments (8)
A small wish-list:
- Selecting a subset of meshes for particle collisions ( terrain-only etc. )
- Restricting a particle system to only render within specific geometry/model ( using stencil ? )
- LOD support ? ( hard-limit on the number of renderable/updateable particle 'slots' )
from bsf.
Thanks, I'll keep those in mind.
Regarding restricting particles within a specific geometry, is that different from using collisions to restrict particle movement?
from bsf.
I think it is, you render the particle system over the geometry and use stencil to prevent it from interacting with surrounding pixels, a few examples that come to mind:
- beam-me-up Scotty -> drawing a particle effect inside the player's mesh
- A fizzy water/fluid insight a container - particle system to simulate bubbles in a glass of water/ droplets on a window pane, etc.
- A particle-system based effect on an element of a snazzy futuristic armor
from bsf.
Makes sense. If you can think of a tool/engine that already has this functionality let me know, always easier to implement something when I have an example to go on.
from bsf.
https://github.com/effekseer/Effekseer
How about this one?
from bsf.
As an example of what I was talking about, here's an APNG from one of my favourite games:
Steps that are used to render this:
- Render the multi-geometry model to FBO+Stencil
- Render the 'Effect' built from multiple particle systems, centered over the model.
- Render the colored background over the model, using stencil to only fill non-model areas
Other approach would be to use stencil in step 2. to limit the drawing to the model's silhouette
from bsf.
It's a nice effect. I doubt I'm going to support this out of the box though. It feels like particle rendering would need a lot of extra code just for this specific effect, while I'm generally trying to keep things as generic as possible.
Ideally I want to expose enough of the renderer to the user so they can make effects like these on their own. Currently the particle shader can be provided by the user, meaning part of that job is done. You could potentially also use render queue priorities to force a mesh to draw before the particle system, filling up the stencil buffer, and then use the particle material to only draw in those areas.
That might be a stretch though. But that's the general idea I want to go in, and extend the API so these things are possible.
from bsf.
Feature implemented and ready for release with v1.1.
from bsf.
Related Issues (20)
- Crash on loading skybox texture asset HOT 12
- error reporting on shader compile does not work HOT 7
- way to enable vertex program point size with gl renderer HOT 6
- Auto aspect ratio for camera HOT 1
- compiling error in vs 2019 HOT 1
- Vulkan rendering crashing, in master HOT 5
- add dependencies through plugins[Feature] HOT 3
- First example crashes If started directly from visual studio 2019 HOT 1
- Bug: Imgui plugin demo fails compilation
- alternativeto card
- How bout metal and mobile support (ios, android)?
- get exception when closing the my app window
- macOS 10.14+ support
- Mesh and material in one file
- memcpy parameters flipped
- How to turn off the automatic download function in CMAKE
- [PSA] DEAD - Project is [assumed to be] dead HOT 3
- Cmake auto downloading Resource link invalid HOT 1
- [PSA] - Project Death Update HOT 4
- Domain hijacked
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 bsf.