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/
投稿者 toki : 00:50 | コメント (1) | トラックバック
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でなければ強い光をあてることで明るくなる。