謎の「大石まさるシェーダー」

OpenGL用のピクセルシェーダです。

特徴としては、

  • 一繋がりと見なせる主線は、入りと抜きがある
  • 主線は太さが激しく変わる
  • イラストボードにアクリル絵の具で塗ったような鮮やかな色
  • ポリゴンの自動リデューシングと組み合わせて遠くにいるときには簡略化されたディフォルメで表示(線の太さは近くと同じ)

で、「ウニちゃん」を何も考えずにレンダリングするとそれっぽく見えるというもの……なんですが、アルゴリズムをまずJavaで実装する時点で色々障害が。JOGLまでの道は遠そうです。

「一繋がりの主線」とか、「入りと抜き」辺りは理屈ではなんとかなりそうなんだけどなー。ポリゴンの縁で面法線と視点からのベクタの内積の符号が変わるところを外側に膨らませるという割りと古典的な手段で行けると思うんだけど。線の厚みは長さに依存するものとして。

塗りのほうはハッチングの応用でいけるかなぁ。アンビエントから影を引き算するという感じで。あー、でもセルフシャドウイングしないと鼻の下や顎が変になるか。シャドウボリュームをあらかじめ持っておく必要あるな。

と、色々やってるとなかなかたどり着かないのでした。