Jump to content
Raman

particles from shader

Recommended Posts

Can any body help me , i am finding the way that how to emit particles from shader which i have made in shop. like noise of black and white with different vop node. i assign the material on the sphere. i want to emit particle from sphere but only from dark value of shader.later if i modify the shader the particle must modify its birth place.

thanks a lot in advance, if anybody can help me, i really appreciate that.

Edited by utsav

Share this post


Link to post
Share on other sites

Can any body help me , i am finding the way that how to emit particles from shader which i have made in shop. like noise of black and white with different vop node. i assign the material on the sphere. i want to emit particle from sphere but only from dark value of shader.later if i modify the shader the particle must modify its birth place.

thanks a lot in advance, if anybody can help me, i really appreciate that.

Shader is run and surface color of the point being shaded is evaluated as a part of rendering process.

So i am finding it hard to understand the usage.

I am sure you have already thought of duplicating your shop setting in a vop sop. Is something not working there ?

If you are using texture vop inside your shop, than you could use colormap vop to fetch image attributes in sop.

Also take a look at tex() and pic() expression functions to fetch the values off the disk and cop.

cheers,

Share this post


Link to post
Share on other sites

I don't think you can do this. Particles need to be context like Geometry Context, a DOPs context, etc. You can't put them in a SHOP material, since what you there is VEX - while you may be "seeing" through the UI a view that has a network of nodes, similar to the other views, what you are actually seeing is the GUI's representation of shader code - that code is going to get "compiled" and then executed in Mantra. So I don't think that there's any way to insert POP context there.

What you could do is write a VEX SOP that controls the color of points, (or some other attribute), and then read in that color/attribute in your shader. That color/attribute could then be used in the SOP to control a particle system there. I think that would work.

Share this post


Link to post
Share on other sites

You can do that with the Bake Vex SOP. ;)

Share this post


Link to post
Share on other sites

thanks a lot guys for for your reply...

i can use tex() and pic() expression functions to fetch the values from the disk and cop but they consume lot of memory to calculate , on the other hand if i use vopsop for Cd value than it deal with only point not with surface.So for emit particles from point i need to increase the density of point in geometry to get perfect noise color and again it would be too heavy.

Or i can directly put material sop node on particles to fetch same material of geometry from shop level but particle point are not giving Cd value , obiously its calculating in render processs.

Is there is any way to transfer the shop' Cf value to point's cd value in sop level, so that i could delete non required point on basis of cd.

and bake vex is not working on particles.

OR is there a any function like tex or pic to fetch value from shop Cf .

thanks

Edited by utsav

Share this post


Link to post
Share on other sites

'Cf' is kind of "no go" for SOPs/POPs etc, it gathers too many conditions not available in Houdini. On the other hand, you can easily recreate most of these in Vops. What is your interest in Cf? textures? shadowing? illumination? People are wiring path tracers in SOPs land! If you are interested solely in texturing, you don't need 'Cf' for anything. Particles inherit uv, so you can look up a texture with fine detail via VopPOP (ColorMapVOP), just like with tex() or pic() except much faster.

If you need a real "Cf", you could bake it to the texture and look up similar way from it. Is that what you are after?

Share this post


Link to post
Share on other sites

thanks a lot guys for for your reply...

i can use tex() and pic() expression functions to fetch the values from the disk and cop but they consume lot of memory to calculate , on the other hand if i use vopsop for Cd value than it deal with only point not with surface.So for emit particles from point i need to increase the density of point in geometry to get perfect noise color and again it would be too heavy.

In this situation scatter sop comes in handy..scatter as many points as u want, after that Build vopsop to read texture info from cop its much faster..

No need to increase actual Geometry resolution ..just increase scatter point count to get the detail you want.. Hope this helps.

Share this post


Link to post
Share on other sites

its not exactly the same, but might give you some ideas.

hth. petz

Share this post


Link to post
Share on other sites

You could write out points from a shader vie pcwrite and then use them to get your particles, but I don't think that's what you really want to do. Like others said, probably try and replicate it in vops.

Edited by Macha

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×