Visible Ink

animated .gif

This is my first plug-in for LightWave 3D: a "transparency" shader that will only allow _one_ color to be visible through a surface. I programmed this to recreate a specific anime style in LightWave 3D. In said style, the ink lines that define a character's eyes are also drawn on top of his bangs. Because the character's hair does not conceal his eyes, his emotions are that much more open to the audience.

(It also probably cuts down on drawing time for the traditional animator, but I still think it's a useful tool for storytelling).

Without Visible Ink With Visible Ink
Before After

Important Notes

Right now this plug-in does not always work with multithreading. If you see any render errors while using Visible Ink, set the number of threads to "1 Thread" in the Render Panel.

Although it renders faster than LightWave's regular transparency, it still increases render time. Use it only on the surfaces that need it (for example, if the hair is made up of multiple objects, apply Visible Ink to the bang objects instead of all of the hair objects).

If you apply Visible Ink before Super Cel Shader, Super Cel Shader will shade Visible Ink's Rendered Color along with all the other colors on the Visible Inked surface. For a non-shaded ink, apply Visible Ink after Super Cel Shader.

This plug-in is free to anyone who wants a copy. Download it from the links below. :)

--Jen Hachigian

Alpha version of Visible Ink is available thanks to Sean Houghton.
Mac version of Visible Ink is available thanks to Kenneth Woodruff.

Download visink.p for Intel (30KB .zip file)

Download visink_a.p for Alpha (75KB .zip file)

Download visink.p for Mac (42KB .sit file; Stuffit 5 compression)

How to Use Visible Ink

The interface for Visible Ink

You will not be able to see the effects of Visible Ink on the Sample Sphere; only in the actual renders. That said, here's what each control does:

Visible Ink Color--this is the color that Visible Ink looks for when it evaluates the surface directly behind the surface that uses Visible Ink. Only this color can be seen through a Visible Inked surface. When using Visible Ink to shade anime-styled hair, set the RGB value of the Visible Ink Color to the exact same RGB value that defines the eyes and eyebrows of the character's face.

Rendered Color--this is how the Visible Ink Color will actually appear on the Visible Inked surface.

Specular Highlights Will Not Appear on Ink--pretty much what it says it is. If you choose to use Super Cel Shader's Cel-Look Specular Highlights, however, be careful. Cel-Look Specular Highlights base their colors on the RGB values of the surface times the Highlight's "Brightness" setting. A surface color of RGB 0 0 0 will always have Cel-Look Specular Highlights of RGB 0 0 0, no matter how high you set the Highlight's Brightness. If you want white Cel-Look Specular Highlights to appear on your Visible Inked Surface, set the Rendered Color to RGB 1 1 1 and crank up Super Cel Shader's Highlight Brightness setting to 25500% (thus making sure that all surface colors of RGB 1 1 1 or higher show up as RGB 255 255 255).

Limit Visible Ink Sources To Object--when checked, Visible Ink will ignore surfaces that are not part of the same object as the Visible Inked surface. If the hair is separate from the head object, turn this option off (and consider drawing the eyes of each character with a unique RGB color. Otherwise, one character will turn to chat with another character--and the ink lines that define that second character's eyes will show through the hair of the first character).

Here's a diagram that shows Visible Ink in action (Visible Ink has been applied to the Hair surface).

A Diagram That Shows What the First Three Controls Do

Here the texture map applied to the character's face uses a color of RGB 0 0 0 to define the eyes and eyebrows. Therefore the Visible Ink Color is set to its default of RGB 0 0 0.

I wanted the ink lines that appeared on the hair to also be RGB 0 0 0, so the Rendered Color has been left at its default setting of RGB 0 0 0.

I wasn't interested in having Specular Highlights appear on the hair, so I left Specular Highlights Will Not Appear on Ink checked.

The hair is a separate object from the head, so I turned off Limit Visible Ink Sources To Object. Otherwise Visible Ink would have ignored the face, since it is a non-hair object.

Rendered Color FX

Rendered Color In Action

Here's a better example of messing around with the Rendered Color settings. Here the Visible Ink Color is set to RGB 0 0 0, and the Rendered Color has been set to RGB 255 255 255. I also changed the Cel-Look Edges color for the hair to RGB 255 255 255 (so that it would look better).

I brought the facial texture map up in Photoshop, selected the pupils with the Magic Wand, Contracted the selection by 2 pixels, and Filled in the selection with RGB 0 0 1. That way, only the outline of the pupil would show through the hair as Visible Ink.

I also set the hair to an RGB color slightly higher than RGB 0 0 0 (I set all of the Super Cel Shader zones to 1%), so that Visible Ink wouldn't show the Rendered Color where the hair tufts overlapped each other.

Notice that the ink line breaks down on the girl's eyebrow on the right-hand side of the picture. This is because two of the hair tufts overlap...and although the hair tuft underneath the visible tuft is showing the eyebrow ink as RGB 255 255 255, the hair tuft on top is looking for an ink color of RGB 0 0 0. It therefore ignores the white ink line, and instead displays the regular hair color.

One solution (though I don't like it, as it increases render times and takes up a second shader slot) is to apply a second copy of Visible Ink after the first one:

Imperfect Solution

The second Visible Ink has a Visible Ink Color of RGB 255 255 255; a Rendered Color of RGB 255 255 255, and has Limit Visible Ink Sources To Object checked, so that it would only consider the areas of white that are on the hair object--completely ignoring the areas of white on the face object.

This wasn't the most elegant demonstration of Rendered Color, but I hope you now have a better understanding of what it does.

Specular Highlight FX

Specular Highlights Will Not Appear On Ink == OFF Specular Highlights Will Not Appear On Ink == ON
Non-Cel-Look Highlights

Non-Cel-Look Highlights

In Super Cel Shader I left Cel-Look Highlights unchecked. These are LightWave's regular highlights--100% Specular with Glossiness set to Low. 3D, and yet not 3D; 2D, and yet not 2D. It's just pretty--that's all I want. :)


Visible Ink's effects will also appear in the shaded object's reflections.


I want to thank Sean Houghton for getting me started on programming plug-ins, BMan for his excellent tutorial, Kevman for helping me understand how to use rayShade, Bob Hood for putting a much more useful copy of the LightWave SDK on the LightWave-Outpost site (the one at Newtek's site was missing several important pages!!!), Ernie Wright for putting important compiler tips up on his site, Ray Ratelis for his suggestions on how to make rayShade work with multithreading (which I will get around to using as soon as I have a spare moment!), and Bob Cazzell for suggesting that I check out the Shades project (ditto!).

For taking the time to help me out with the SDK learning curve, my most sincere thanks.

--Jen Hachigian

Back to the Super Cel Shader Tips & Tricks Site