(back to main page)

These plugins were written by me to help me with my projects. Their scope comprises various issues in the field of shading and modeling. They are relatively small and minimalistic, but also quite powerful and useful.

They are available for free. However, i gladly accept donations in support of my work.

All in one packages

C4dFileWinMac
13.0 plugins_dist_2014-02-20.zip 32/64 Bit x86_64, i386

Overview

TransformTransform tool inspired by Photoshop
Time ShiftChanges the time value for the evaluation of shaders
Extended StarfieldVery customizable 2d starfield shader
Atmosphere ShaderPhysical atmosphere material for orbital views
Simple ColormapPost effect color mapping plugin
Noise DeformerDeforms objects based on noise functions
UV DeformerPlace objects on surfaces via uv maps
SmoothPowerful mesh smoothing plugin. Comes as deformer and dialog based
CopyPastePolysProvides Copy/Paste capability for polygons
Duplicate ObjectMinimalistic generator to make multiple copies of objects
ThingsOnSurface ShaderRenders randomly distributed brush stamps
SplineConnectorGenerator which gathers child splines into a single one
SplineNoiseDeformerDeforms splines in perpendicular direction based on noises
Cellular ShaderRenders cellular noise functions
Point Collapse ToolTool plugin to merge two mesh point together
UVtoObjectGenerates polygon objects from uv maps. Use polygon modeling tools on UVs!

Details

Changelog
Transform
transformtool panel1 This is a tool plugin inspired by the transform tool in Photoshop for example. It has the special ability to change the size parameters of the basic primitive objects and scale these objects non-uniformly. It displays a cage with handles which can be dragged to move, scale, rotate and shear the selection. It also displays four icons which can be clicked to switch between modes. Snapping is supported, meaning the handles snap accordingly.
  • Note: Beside polygon objects of course, it really can only scale primitives like Cube, Sphere, Cylinder, etc. In some cases the object cannot be fit to the cage. For example when using a rotated object or a object with only one degree of freedom like a sphere. It will still try to do something reasonable.
  • Shearing only works with polygon objects.
  • Spline tangents are not touched. I will fix this some day.
  • You can switch between move, scale, rotate, shear with ALT+1-4. This is hardcoded at the moment.
  • Hold Shift for quantization.

transformtool panel2
Time Shift

This is a shader plugin to change the time value for the evaluation of another shader. The main purpose of this plugin is to be able to use the same animated texture several times, at different times without having to create a lot of copies of virtually the same material.

timeshift panel

The evaluation time is determined by an offset from the current time and this offset is determined by a user data entry in the respective texture tag. The timeshift shader has the parameter "Data Name" to determine from which user data the offset is taken.

Demo scene: timeshift.zip (timermovie.c4d just generates a movie texture which timeshift.c4d uses).
Extended Starfield
starfield parameters

This is a shader plugin to render star field backgrounds for space scenes. It is similar to the build-in star field shader but with a lot of options.

Basic usage: The maximum diameter of the stars is set as pixels in screen space. The distance between the stars is set by the UV-Spacing parameter. That means the distance is measured in UV space. You will need to adjust this spacing when you change your mapping parameters. Furthermore the shader cannot handle arbitrarily large stars. Their diameter may not exceed the spacing in between them. Keep in mind though that the respective parameters are measured in different spaces.

There are channels for auxiliary shaders to determine the spatial density distribution of stars (Density Map), and their brightness distribution (Intensity Map). In addition the brightness can be controlled by probability distribution functions (Intensity PDF/Dark Intensity PDF) which determine the probability that a star has a certain brightness. The Dark Intensity PDF is used when an spatial intensity map is set. The final brightness is interpolated between the values picked from the Intensity/Dark Intensity PDFs. Analogously you can set a probability distribution for the star size. Link Size to Intensity means that bright stars are also large and vice versa.

Atmosphere Shader

This is a plugin material to simulate light scattering in the atmosphere. It is primarily intended for views from space. It can also handle views close to the ground and will produce acceptable sky colors and aerial perspective. But it does this quite inefficiently.

panel
atmosphere ascent test.avi (1MB DivX 6)
Demo Scenes Manual

Development will probably continue on this plugin. For example, it computes single scattering only. Might add multiple scattering in the Future.

Credits: Textures are from http://www.shadedrelief.com/natural3/index.html (modified)

Implementation Reference: Bruneton, E., Neyret, F., Precomputed Atmospheric Scattering, Comput. Graph. Forum, 27, 1079, (2008)

Simple Colormap
colormap parameters

This is a videopost plugin for color mapping. It works analogous to Cinema 4Ds native color mapping effect but with different parameters. The reason for its development was that the native version is quite unintuitive use in my opinion.

If Boot Low Intensities is off, the mapping is defined as 1-exp(-Exposure*L), where L is the original pixel intensity. If Boost Low Intensities is on, a piece of a gamma correction curve (with gamma=2.2) is used for low intensities. If Use HSV is on, the pixel color is first converted to HSV and the mapping applied to the V component, otherwise the mapping is applied to individual RGB channels. The 0.->, 1.0 -> etc. fields are there to show the result for specific intensity values.

Noise Deformer
A simple noise deformation modifier. screen1 screen2
UV Deformer

This is a generator object actually. It can map objects from an area which represents uv space to the surface of the respective object.

The object used to define the mapping must a UVW Map. There are no other restrictions. It works with primitives, uv mapped polygon objects, subdivision surfaces, deformed objects, animated objects or any generator objects which generates geometry with UVW Tags attached. To use a object it can either be put as first child under the UV Deformer or referred to by a link.

The mapping of the input objects can be done point by point or by translation/rotation/scaling of the whole object. The output consists of polygonized objects or clones respectively. Splines also work, in which case line objects are generated.

There are various options to control the details of the mapping procedure. There is no description of these. Example scenes are available though.

Known issues: C4d R11 seems to have broken the handling of generator objects as map. Often they won't be recognized and the UV Deformer will do nothing. Turning the generator check mark off/on makes it work temporarily.

Smooth

This was a little mesh smoothing plugin. There is now a deformer version available in addition to the dialog. Just put the deformer under a polygon object to make it smooth. It supports restriction and weighting by vertex maps and it also supports the falloffs that were introduced with Mograph. It can be quite useful for CA to reduce unwanted deformation artifacts from bones.

The dialog version is still there. This one supports now smoothing of vertex maps. If one is selected it should be smoothed instead of the polygon mesh.

Most options have changed in contrast to 1.0. There is an amount parameter which controls the total strength of smoothing. The algorithms uses implicit time(=smoothing strength) integration. The number of time steps can be adjusted. 1 is most often good enough, but if you need extremely strong smoothing you might need more iterations. The Squared Operator option makes smooth transitions to non-smoothened areas (can sometimes produced odd results though). The different operator types select various approximations to the continuous Laplace operator. Pick one that works best.

As before the algorithm is based on Desbrun, M., "Implicit Fairing of Irregular Meshes using Diffusion and Curvature Flow", Proceedings of SIGGRAPH 99.

Furthermore there is new custom cone-shaped falloff type which is quite versatile but also a bit inconvenient to use.

CopyPastePolys
This plugin provides copy/paste commands for polygons. You can copy polys from one object and paste them into others. It preserves Selection Tags, UVW Coordinates, HN Weighting, and VertexMaps, in the sense that data from these tags is pasted into matching tags Tags of the same type with the same name.
copypaste
Duplicate Object

This is a minimalistic "duplicate" generator. It moves cloned objects along a fixed vector, and/or rotates them around it's own y-axis. That's all :)

duplicate
ThingsOnSurface Shader
panel The ThingsOnSurface Shader places many many small instances of a brush on the texture. A brief description of its parameters follows.
  • Brush:
    Here you put a shader or bitmap which is the "brush" that is distributed over the texture. Alpha channels are passed through.
  • Mask:
    Serves as alpha channel if the brush has none.
  • Brush Format:
    You must set the width/height ratio of the brush manually in this field.
  • BlendMode and Strength:
    Determine how brush instances are blended over each other.
  • Brush Size and Variation:
    Control mean brushes average size and deviation in uv texture space
  • Size Map:
    Controls brush size by a shader or bitmap.
  • Density:
    Density of the brushes on the textures. The shader divides the texture space into a uniform rectangular grid and the density parameter actually determines the mean number of brush instances generated per grid cell. It can also be controlled by a shader or bitmap.
Note that the shader also generates an own alpha channel, so you can easily stack it on top of other shaders in the layers shader for example.

The file for download also contains the scene files to both of these images.
SplineConnector
panel The SplineConnector is a generator object that connects many spline object to a single object. This is useful for using many splines in one sweep object.
  • Input: SplineObjects
    SplineConnector generates a new spline from the base points of the input splines according to the type setting ( and the rest of the parameters )
  • Input: LineObjects
    SplineConnector combines the LineObject approximations of the input splines to a single LineObject.
SplineNoiseDeformer
panel The SplineNoiseDeformer is made for deforming splines by the usual noise functions. A spline is deformed to a helix shape by moving points perpendicular to tangential direction. The strength of deformations is determined by the noise function.
  • Strength: deformation amplitude
  • Helix Frequency: rotary frequency of the helix
  • Strength Spline: modulates the deformation along the spline additionally to the noise function
Cellular Shader
panel This shader renders Worley´s Cellular Noise Functions, perfect for Stone Walls, Floors, etc. It is quite customizable with many options for the look of the noise functions, animation, spatial period.
patterns
Point Collapse Tool
With this tool you can quickly melt two points together. screenshot
UVtoObject
Quick Usage Guide
  • Select a couple of objects
  • Call the UV to Object command
  • Now you should have a new group of objects. Each of the children represents the UVs of the respective original object
  • Point coordinates are automatically synchronized with the original UV-Tag. This works both ways. The UVtoObject tag on the UV-objects is responsible for that.
  • Manipulate the point of the new UV representatives. You are allowed to (dis)connect polygons, but the number of polygons must remain the same as in the original. If case of a mismatch, the automatic transfer to the original UV-tag is stopped and a warning is printed in the UVtoObject Tag GUI.
  • In the UVtoObject Dialog: "Equalize Islands" resizes individual UV-islands so that all islands have the same uv-area/polygon-area ratio on average. "UV to Object New Scene" places the UV objects in a new scene. In this case you have to generate and copy UVW-Tags manually.
  • Fun stuff: you can multiselect objects and create atlases easily. Basically that is the whole point of this plugin, beside the having the better usability of the normal polygon modeling tools of course.