ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

GD等、インデックスカラーでグラデーションするとき、トーンジャンプさせない方法 その2

2006-03-11 17:59:02 | Weblog

 で、前回のブログでは、インデックスカラーの場合、フルカラーとちがって、そのままインデックスカラーをすると、色が急に変わるトーンジャンプが起こるので、

<<課題>>
・10個のインデックスカラーを使って、(仮に色は)白から赤に変わる
 グラデーションを書きなさい。

というようなときは

<<解法>>
・まず、インデックスカラーを
  R=10%,R=20%、。。。R=100%(=255)
 となるように、10%おきにとる。

・X座標の値を基準に見て、仮にXが33%のところだとしたら、
 近傍の2点、30%、と40%のインデックスカラーを、
 同じX座標にある点(Y座標0から50ドットまでの高さで書くとしたら、50ドット分)を
  30%のドット3割(15個)
  40%のドット7割(35個)
 書く。ということになる。

 ということまで書いた。今回はその先




で、ここで、問題が起こる

<<問題点>>
1.点の割合は示したけど、実際に、どうおくの?上の例だと、30%のドット、15個を上に並 べてしまうと、必ず薄い色→濃い色の順になってしまい、今度、縞模様になってしまう。
 
2.インデックスカラーが、まったく関係ない2色だったらどうするか




■問題点1:色の並べ方
 たぶん、これを先生は説明したかったから、これを問題に出したのだと思います。

 単純にならべると、必ず薄い色→濃い色の順になってしったりして、模様ができます。
 そこで、決まりを作った場合、ノイズと呼ばれる、その規則を破るものを入れます。
 →発展途上国のレンダリングエンジンなどには、入っていないことがある
  どこの国とあえて書かないけど。。。

 DTPのほうでは、セル、スーパーセルというような概念もありますが、それについて説明したかったんだと思います。




■問題点2:適切なインデックスが無かったら

 どーしょーもないです。

 たとえば上記の問題で、インデックスにすべて、G(緑)50%を含んでいたら、白から赤のグラデーションは、そのインデックスでは作れません。緑色がかならず入ってしまいますから。

 たしかに、非常に高い解像度を持っている場合、

Rが、0,20,40,60,80,100、G,Bは0
Gが、0,20,40,60,80,100、R,Bは0
Bが、0,20,40,60,80,100、G,Rは0

というインデックスを作り、ある点におけるR、G、B、それぞれを、上記の方法で色を塗ると、そのR,G,Bの3点をあわせて1つの色とみなすことが、出来なくは無いですが、解像度が低いと、どーしょーもなくなります。

 とりあえず、RGBすべて散らしてもつとすると、6X6X6=216個のインデックスを作って、上記処理をやることになります。(0%,20%,40%,60%,80%,100%の6段階)
 
 ただ、基本的に、インデックスが悪いと、ひょうげんしにくいです。

という、この事実が、べつのところで、問題になったりする。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« なんで、メーリングリストに... | トップ | ブログは実名でない(ハンド... »
最新の画像もっと見る

Weblog」カテゴリの最新記事