2度目に咲いた茉莉花。
数日前に2度目に咲いた茉莉花 |
白くなって枯れていく |
25日の今日の午後、わたしが住んでいる東京・渋谷は強烈な雷と共に夕立が降った。久し振りの雨で、外に出て濡れたい気持ちだった。で、止んでから、スーパーにトウモロコシを買いに行ったら、ひどい湿気で汗が噴き出た。庭の植物も雨で濡れている。白く色変わりして枯れかけた茉莉花の花も濡れていた。茉莉花って5月に咲くんじゃなかったかな、今年は遅れているのか、と思って家人に聞いたら、5月に家の中で咲いて、外に出したらまた咲いたのよ、ということだった。忘れていたというわけ、年取ったわい。
今週から夏休み、そして明日から週末は卒業制作の合宿。映画の制作をする者たちは、現在シナリオの最終段階にきているので、最後の詰めをして、夏休み中に撮影に入る。その詰めのところで、いろいろと話し合う。ただイメージしているだけでは映画は出来ない。実際に「撮影という行動」が出来るように、映画の内容と自分たちの身の動きが重なるように意識させる、というのが合宿の目的なのだ。わたしは、学生と話し合う合間に、ノートパソコンを持て行って、OpenGLの勉強をしようと思っている。
そのOpenGLの勉強は「OpenGL SuperBible」という英語版を使おうと思う。夏休みということで春口先生に直接聞くわけには行かないので、今まで使っていた「OpenGLプログラミング・ガイド」は説明が飛躍したりして、一人でやるのは無理なところがる。それに比べて、「OpenGL SuperBible」は段階的に一歩一歩進んで行くので独学には向いていると思うのと、英語の勉強にもなるしと欲張った。最初のところを辞書引き引き読んで見たが、「cartesian coordinates」なんて言葉が出てくる。「デカルト座標」というわけだが、これが直行座標ということなんですね。この本のいいところは、「trigonometry(三角法)」なんかが出てくると、わたしはもうすっかり忘れているけど、そういうことがちゃんと説明してあるっていうところ、勿論英語だけど。英語で初歩的な数学やプログラミングが勉強できるのが楽しみということ。
強い日差しに枯れていく紫陽花。
毎日、暑い日が続いている。朝食を食べながら新聞から目を上げると庭の植物がぐったりしている。ホースで水をかけてやる。紫陽花の花が枯れてかさかさになっている。鬱陶しい感じだが切らない。暑さを余計に暑く感じさせる、そこがいいと思う。枯れ果てて暑さを耐えているという印象が捨てがたいのだ。
水曜日の18日、学生たちが伊藤比呂美さんを撮った「比呂美 毛を抜く話」(1981年)と、ねじめ正一さんを撮った「荒れ切れ」(1984年)を見たいというので、一緒に上映して見た。二人が詩集を出して詩人としてスタートを切ったばかりの頃の、20年前の姿に再会した。伊藤さんとはもう何年も会っていない。ねじめさんとは、この2年ほど会ってない。もっとも、ねじめさんはよくテレビに出ているので姿を見ることはある。20年前は、二人は一つの教室の中で互いにライバル意識を燃やして「詩」を書いていた。その後、それぞれ小説を書くようになり、まあ「文学」の道を歩んでいる。わたしの後ろで見ていた1年生の女子学生に「伊藤比呂美さんを知ってる?」と聞いたら、「知らない」という答だったが、映画はおもしろかったといった。ちなみに彼女が生まれたのは1982年で、映画の中の比呂美さんと同年ぐらい、当の伊藤比呂美さんは彼女の母親の世代というわけ。時間が経った。
映画の中の伊藤比呂美さんは、身体の毛を抜き始めるともう夢中のなってしまうと話している。また、切腹した人の記録を読んで興奮したとも語っている。ねじめさんは民芸店の中で素っ裸で「定休日ウンコ」を朗読している。二人とも身体で言葉を生きる詩人として登場してきたのだった。その頃は、何か近い感じだったけど、どこからかわからないが、わたしは自分が彼らからずっと離れたところに来ているのを感じる。
OpenGLでxyの単純なグラフを描く。
xyのグラフ 赤い線がコサインのグラフ |
OpenGLで回転する四角のプログラム(Windows用)を作って、グラフィックスプログラミングが俄然面白くなってきた。OpenGLというのは、C言語を使ってグラフィックスのプログラミングをする「API」のこと。つまり、線とか円とか四角を描くところから始めて、ゲームなどような高度の3Dのグラフィックスのソフトをプログラミングするためのツールだ。「Photoshop」のようなグラフィック・ソフトだと、マウスでブラシを選んだり、バケツを選んだりして、線を描いたりべた塗りにしたりするが、その線を描いたり塗ったりすることをディスプレイの画面上で出来るようにする、というのがコンピュータグラフィックスのプログラミングなのだ。OpenGLはそういうことをするための道具というわけ。それも、Macintoshのプログラミングにも、Windowsのプログラミングにも使えるという道具。
プログラミングだから、マウスで線を引くのではなく、プログラミング言語で書くとうことになる。わたしは今勉強中だから、本に書いてあるサンプルを見て、それから類推して考えてやってみる。すんなりとうまく行く場合もあるが、これがなかなかうまく行かない。うまく行かないどころか、わけが分からなくなることもある。そういうとき、わたしは春口先生に聞けるので助かる。そして、うまく行くと、嬉しい。パソコンって、この達成感を比較的に容易に叶えてくれるので、はまってしまう。
今回は、線分を描く練習で、いわゆるxy座標のグラフを描くというのに挑戦した。サンプルのプログラムに円を描くのがあったので、それをヒントにした。OpenGLで線分を描くやり方に、頂点を結んでいくという描き方がある。頂点の座標を設定するのがglVertex3f()という関数だ。グラフを描くには、一つ一つ頂点を設定して行くところで、その頂点の座標を変数にして、for文(ある値の間、変数が変化し続けるという文)で方程式に従って変数を変化させれば、グラフが描けると考えた。先ずは、y=xのグラフを試み、斜め一直線が描けて成功。2次函数でもOK。では三角函数ではどうか。変数を IとJにしてコサイングラフを描くプログラムを書いてみた。
glPushMatrix();
glColor3f(1.0, 0.0, 0.0 ); /* Red */
glBegin(GL_LINE_STRIP);
for (I = -30.0; I < 30.0;I++) {
angle = I;
J = 10*cos(angle);
glVertex3f(I, J, 0);
}
glEnd();
glPopMatrix();
「angle = 3*I;」としたグラフ |
杏を買って来て食べた。
杏の実 |
昨日の夕方、スーパーに行ったら、杏が売っていたので買って来て食べた。ほんのりと甘く、美味しかった。わたしは果物が好きで、特にリンゴ無しではすまされない。ほとんど毎日食べてる。通じがないと不安になる。通じをつけるのにリンゴを食べる。で、リンゴがないと不安になる。昨日、リンゴが無くなったので、買いに行ったというわけ。ミカン類もよく食べる。このところずっと夏みかんを食べていた。夏になると、家族が好きなスイカもよく食べるが、巴旦杏も好きだ。夏が終わる頃には無花果が出る。気を抜くとき、お勝手に行って、一つか二つ、水で洗って食べる。果物を水で洗うというのが何とも言えない。煙草を吸わなくなって、もう六、七年になるか、その代わりというとへんだが、息抜きには家にいれば水で洗って果物を口にするということになった。
というような習慣で、昨日も気分転換に自転車でスーパーに行ってリンゴを買うことにしたのだった。リンゴが無い季節というのがなくなった。わたしは紅玉が好きだが、余り売っていない。サンスターかフジか王琳。昨日は三個パラピン袋詰めのサンスターを買って、巴旦杏も買おうと上の棚を見ると、杏が売っていた。杏というのは、乾し杏は時々食べるが、生の杏は食べた記憶がなかった。砂糖で煮るかしなければ酸っぱくて食べられないかな、と思ったが、買ってみることにしたのだった。買って来て水洗いして、早速囓ってみた。甘くて甘くない、酸っぱくて酸っぱくない、果肉も桃や巴旦杏みたいに汁っぽくない、さっぱりしていて、食べ終わった後、香りと淡い酸味が口の中に残って美味しかった。それにしても、何で今まで余り売ってなかったのだろうか。これも、外国からの輸入なのかと思った。今度また売っていたら買って来よう。
OpenGLでCGアニメーションに初挑戦。
50個の四角が回るアニメーションの図。 この図では動かないけど、実行ファイルで、 クリックすると、これらの色とりどりの 四角が回るプログラムになってる。 但し、これはWindows用のプログラム。 |
OpenGLで単純な図形が描けるようになったので、いよいよそれを動かし見ようということになった。春口先生の今学期の授業は先週が最後ということで、アニメーションに挑戦した。夏休みにプログラムを沢山作って楽しんでくださいというわけ。OpenGLのアニメーションは、メモリにbuffer(緩衝領域)を二つ用意して、入れ替えるという仕方で、開いたウインドウの中に絵を描き変えて動かしていくことになる。普通のアニメだと、描き変えるというためには沢山の絵を描いて用意して置かなくてはならないが、OpenGLの場合は、その変化を数値の変化で指定してやれば、コンピュータが計算して変化させてくれる。その変化を描き出すスピードはCPUの計算のスピードによるから、アニメの動く速さがマシンによって違ってくる。PentiumIII 600MHで、OpenGLサポートのグラフィックカードが付いたマシンだと風車のように回るが、古い初代Pentium 120MHのマシンではでんでん虫が這うくらいの速さだった。
この四角を回転させるプログラムでは、平面の四角なので、z軸に対して角度変化させるという仕方になっている。「if (sipn>360) sipn=sipn-360;」というif文で、変数spinの値を変化させ、角度を変えて行くことで回転させるというわけです。これは、本に書いてあるから、そのまま使ったのですが、こういう「if文」というのが書けるようになれば、一人前にプログラマーっていうことになるんでしょうね。今回、わたしの工夫といえば、50個の四角の色と大きさを決め、それをx軸、y軸上で適切に配置するという単純なことでした。それでも、試行錯誤の連続で半日掛かってしまいましたよ。
この四角の回転のプログラムと、ティーポットが回転するプログラムをダウンロードできるサイトを作りましたから、Windowsマシンを使っている方で、試みみたいと思う方はダウンロードして楽しんで下さい。絵を左ボタンでクリックすると回り始め、右ボタンをクリックすると止まる。単純ですから直ぐに飽きるでしょうけど。ティーポットのプログラムは、OpenGLに用意されている線描のティーポット(WireTeapot)をそのまま使っただけです。それから、ダウンロードして実行するとき、一緒にダウンロードされる「opengl32.dill」と「glut32.dill」をWindowsのSystemフォルダーに移動するの忘れないようにしてください。これが無いと、「DILLファイルがありません」という警告が出ます。閉じるで終了です。
OpenGLでゲームを作るようなときは、「位置」とか「角度」とかを変数にして、マウスやジョイスティックでその値を変えていくようです。単純な四角を50個作って配置するのに結構時間をとられたことから考えると、すごく時間が要る作業だと実感される。でも、言葉で書いたものが絵になって現れるというのは面白いな。この夏休みはOpenGLにはまって過ごすことになりそう。
わたしが作ったOpenGLのプログラム(Windows用)