Work from large to small strokes Correct orientation of brushstrokes Start with a sparse pointcloud with large cards, and layer smaller sets on top to selectively add detail into places where your eye should focus. It's important to layer multiple sizes of brushstrokes. For the big brush stroke layer (base coat), we don't want this to happen since it'd screw up the silhouette! I wrote another c++ shader to handle this (quantize_cut_edge). The problem actually becomes the inverse. You can really make the object edges look like brushstrokes. This is a significant reason why cards are the right approach. Since all of the shadingpoints per card do this same lookup, we get the same colour for each shadingpoint on the card. Then it will return the radiance at the first hit point, which happens to be the point it was spawned at. The reality is slightly more complex, but you can imagine the shader shooting a ray from the userdata::worldpos point, in the direction of the userdata::worldvel vector. This allows us to take the pathtraced final colour of an underlying object, and transform it to the brushstroke that is on top of it. This is possible because we feed the shader userdata per-point. I developed a custom c++ shader (quantize) to sample a singular shading point on the underlying surface, for every shading point per card. The shader setup for Houdini is also included. The shader setup, open the node editor in the maya scene to bring this up. Ofcourse not straight out of the box, so let's dive into the details: The answer to this ended up being a rendered point cloud as camera-facing cards. Painters often start with big brushstrokes and detail selectively with small brushstrokes. Nothing shouts "hey i'm 3d" as much as a perfect object edge. Disregarding the mixing of colours, the basic principle of painting is to put some colour on your brush and put it on the canvas. Quantized patches of color, aka brushstrokes.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |