メイン

Programming(OpenGL) アーカイブ

2004年10月08日

Shading

OpenGLでシェイディング、つまり陰影付けなんだけど、パラメータが多くてちょっとやっかい。
どうやら物体の色は、光源と材質のパラメータによってきまるみたいです。
まぁそりゃ当たり前だけど、光と色ってのがあまり直感的につくれないんだよね。

光っていえば色と強さくらいしかない気がするけど、光の種類というものが存在する。
GL_AMBIENT  環境光。光が直接あたらない部分の照度 えっ(^-^; て思うけど、まぁ室内とかであちこち反射して当たる光を擬似的に表現。
GL_DIFFUSE  拡散光。光があたり、拡散する光。見る角度を変えても変わらない。
GL_SPECULAR  鏡面光。光があたり、反射する光。見る角度によって明るさが変わる。
GL_POSITION  光源の位置
GL_SPOT_DIRECTION  光源の方向
GL_SPOT_EXPONENT  輝度の分布(?)
GL_SPOT_CUTOFF  最大放射角度。スポットの範囲かな
GL_CONSTANT_ATTENUATION  一定減衰
GL_LINEAR_ATTENUATION  線形減衰
GL_QUADRATIC_ATTENUATION  二次減衰

んでもって物体の材質は
GL_AMBIENT  環境光
GL_DIFFUSE  拡散光
GL_SPECULAR  鏡面光
GL_EMISSION  放射輝度
GL_SHININESS  鏡面光の指数
GL_AMBIENT_AND_DIFFUSE  環境光と拡散光
GL_COLOR_INDEXES  環境光、拡散光、鏡面光のカラー指標

光源と材質両方で、光を指定しなきゃいけないのです。もちろん厳密に計算しようと思えばいくらでも理論はでているんだけど、それをPCに計算させるのは無謀。だから、まぁこんな風に誤魔化してつくるしかないわけ。
おそらく、光のパラメータと材質のパラメータの乗算っぽい計算で、拡散やら反射の色が決まってくるみたい。材質が暗くても、0でなければ強い光をあてることで明るくなる。

2004年10月27日

LocationMap : Station地図表示アプリ

私はvodafoneユーザなんですが、ステーションってご存知でしょうか?
まぁ簡単に言うと地域密着型情報発信って感じかな。
一番近い基地局から情報がどんどん送られてくるわけですが、そのときに基地局の簡易住所みたいのも手に入って、大体の現在地を得ることができるんですよ。まぁGPS携帯に比べれば精度は比較にならないほど低いですが。
そんな地点情報をログにとってくれるJavaアプリがあって、
それが、場所撮り(仮称)
なんですけど、数日前から使ってみたんです。データはtxt形式でメモリカードに保存されるんです。
ちょっと生データみてみると、時刻、経度、緯度、地点名が入ってました。経度緯度までわかってんなら地図まで表示しろよって思ったんですが・・・

そんなことを帰宅途中に考えていたら、OpenGLで書いちゃいました。
俺の通学路です。

ほんと大したこと書いてないのでソース載せてもいいくらい。
ただ、なにに苦労したかって・・・白地図の入手と今更ながらテクスチャの貼り付けに9割。
24bit BMPのくせになんかビット情報がうまく取得できてなかったり。
ようわからん。
もー色々時間余裕ないのにこういうこと思いつくとやってしまう・・・だめぽ。


追記。。。国土地理院の地図をフリーソフトつかって入手してんだけど、その明記が必要なようなので。

上記の地図には「白地図KenMap」を用いました。

白地図 KenMap Ver8.0       2004/11/01
国土地理院承認 平14総複 第149号 (2002/07/12)
http://www5b.biglobe.ne.jp/~t-kamada/

About Programming(OpenGL)

ブログ「days」のカテゴリ「Programming(OpenGL)」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはProgramming(MFC)です。

次のカテゴリはProgramming(Windows API)です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34