Mapping noise to a channel

On 10/07/2017 at 12:19, xxxxxxxx wrote:

I am trying to map noise to the Density channel of a Pyrocluster material. So far I think I am only applying the noise to the float value of the density channel, but not to the whole object. My guess is that I should try to get some values from the Particle Geometry which the material is assigned. Or I might be totally wrong. This is what I have so far:

import c4d
from c4d import gui
#Welcome to the world of Python
def main() :
    mat = doc.SearchMaterial("MainCentral_01")
    pnoise = c4d.utils.noise.SNoise(c4d.Vector(1,1,1))
    mat[c4d.PS_DENSITY] = pnoise
if __name__=='__main__':


On 11/07/2017 at 02:39, xxxxxxxx wrote:


I don't think it's possible to achieve what you have in mind. You can't plug a function into a parameter, like you might be able to do in nodal systems.

While you of course can influence the Density parameter based on a noise (like you have done or as it would be possible with Xpresso) you can not change the parameter based on for example a position in space during rendering. In Cinema 4D this is only possible via shaders. So you'd actually need something like a shader slot inside the Pyrocluster material...

Maybe the Noise tab of a Pyro Cluster material is your best option, but I'm sure you already went through all the options.

On 11/07/2017 at 08:01, xxxxxxxx wrote:

I see, then I will stick to the Noise tab. Thanks, Andreas!