2
$\begingroup$

I've already checked this two questions but neither solve this problem:

Level of Detail of Particles System?

How to access data related to individual particles?

Both posts derive to use animation nodes, which would be great, but AN still can't handle LOD with particles, maybe in the future.

Another option would be to use this addon from the blender market, but I'm still waiting for the developers answer on how it handles this issue and its limitations before buying:

https://www.blendermarket.com/products/particle-instantiator

So... Is there anyone who knows if its posible to control LOD of each particle? I know particles are indexed but I'm not sure if they are forced to share properties from the system, which is strange because I also know I can edit its color using a shader.

Any ideas, thoughts, solutions or conclusions would be very appreciated.

Thanks in advance

EDIT

I forgot to mention one critical point which makes @Omar Ahmad solution insufficient. In my case I'm creating an object with multiple polygons from which I'm instantiating particles, the polygons are needed because I need to paste a rotation value which I get from the normal of each polygon, therefore instanciate objects using AN is insufficient as particles wont have rotations.

gif showing the problem

$\endgroup$

1 Answer 1

2
$\begingroup$

Instance a number of empty objects on the locations of particles and copy the mesh data from an object list composed of LOD objects sampled based on the distance from the active camera:

Node Tree

In most of the cases, the distance have to be remapped, I simply divided by 4, but other remapping procedures can be done, even non linear ones like evaluating the distance at an interpolation:

Node Tree

$\endgroup$
7
  • $\begingroup$ That was a fast answer! Thanks, but please see my edits to the question. $\endgroup$ Commented Sep 16, 2018 at 11:37
  • $\begingroup$ @JuanManuelLynch Can't you just set the rotation as well? To get the quaternions representing the rotations of the particles, see my answer here. Also, why are you using a particle system? Won't direct instancing work better? $\endgroup$
    – Omar Emara
    Commented Sep 16, 2018 at 11:48
  • $\begingroup$ Well yes, this is hard stuff for me, still I'll try your quaternion solution and see if I can include it into my script. Anyway your answer is valid for my question so I'm giving it an "answered". I'll ask you back if I get stuck with the rotations. Thanks $\endgroup$ Commented Sep 16, 2018 at 12:03
  • $\begingroup$ I've tried the quaternion solution and it works, not perfect as I was not able to get the exact rotations, but somehow did the job. The problem is that within AN the object instancer creates one object for each particle and my script has to produce sometimes 90 000 objects, which is imposible for blender to manage, that's the reason I'm using particles to Instantiate meshes. So, do you know if there is a way to access each individual particle property (which could let me edit LOD) the same way you where editing the objects instances? $\endgroup$ Commented Sep 16, 2018 at 18:55
  • 1
    $\begingroup$ @JuanManuelLynch I fell like your current approach is the one limiting you. If I understand correctly, you have 90 000 triangle defining the location and orientation of each instance, you want to dynamically change the instancing source object based on the distance to camera, where you have 6 objects representing LODs, am I right? $\endgroup$
    – Omar Emara
    Commented Sep 16, 2018 at 19:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .