top of page

Bushy Surface Rendering

Fur rendering and meadow rendering don't essentially need geometry shaders. As geometry shader, in many cases, may be expensive to compute.

Here I only used it for practice purposes and intended to find out what effect it could achieve.

Fur rendering

There are many ways to draw furry surfaces. Shell shading is one of the classic ones. Its implementation is quite easy: add a few layers extruding according to normal and sample the texture according to another noise texture, but a fine result could only be achieved by increasing the number of shells. And the result may look ugly when a distortion force is acting on the fur.

In this example, I'm using the geometry shader to extend each triangle on the sphere to a set of triangles extruding according to the normal and sampled a dissolve noise texture to get a fur-like fiber distribution.

Eventually, the color is computed by a standard shading and a non-linear alpha fading according to the layer, and an occlusion effect is added to increase the realisticness of the fur.

Geometry of cell shading

Applying a leopard's texture, we can get a feeling of fluffy fur

Grass rendering

The most common way of rendering meadow is maybe by using billboards(quad) generated by geometry shader and then attaching a grass texture to each billboard. However, we can directly compute the whole geometry of grass in the shader without using a grass-shaped texture. This technique could be useful when we want to render a patch of stylized grass.

The first attempt is to randomly generate triangles for grass inside each ground triangle. And to make the grass look denser, we can tessellate the ground into finer triangles.

The shading of the grass triangle used a gradient map to reflect the grass color from root to tip. And the translucency of the grass is affected by two factors: the fresnel factor and the rim factor. The fresnel factor is just a factor controlling the proportion of reflection and refraction. And the rim factor is from the idea: the rim of the grass is going to be more translucent than the center of the grass.

Applying a noise texture to displace the tip of the triangle, we can get a wind blowing effect.

g1.PNG

Geometry of triangle-shaped grass

Shading of grass

A patch of grass with wind displacement applying

However, under distortion, one-triangle grass is not very realistic, for it's just a straight and planar object. Here, we can use a geometry shader to subdivide the grass triangle into more small triangles. I divided each of the grass into five triangles in this case. And new positions of these internal vertices could be computed.

Geometry of a more complex grass shape

A patch of grass under wind force and distortion

bdwhst's portfolio

©2022 bdwhst 版權所有。透過 Wix.com 製作的理想網站

bottom of page