<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>  宇宙を僕の手の上に　～gltest開発blog～</title>
    <description>場所取り　そのうち引っ越すかも http://maglog.jp/gltest/</description>
    <link>https://gltest.blog.shinobi.jp/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>大きなサイズのファイルを探すPerlスクリプト</title>
      <description>最近動画などを編集していて、 HDD が圧迫されつつあるので、要らない巨大ファイルを発見するためのスクリプトを書いてみた。&lt;br /&gt;
&lt;br /&gt;
ディレクトリツリーを再帰的に辿ってツリー全体のサイズを集計する機能と、ディレクトリツリー内でトップ20までの大きさのファイルをリストアップする機能がある。&lt;br /&gt;
&lt;br /&gt;
動画を編集していると中間ファイルもやたらとデカいので、GB単位で空き容量が消えていく。中間ファイルは最終的には必要ないので消せば良いのだが、消すことを忘れていたり、消していいファイルであるか否かを忘れていたりする。そんな中でディスクを多く消費しているファイルからチェックしていけば作業効率が良いので、こんなものを作ってみたわけである。&lt;br /&gt;
&lt;br /&gt;
コマンドライン上で引数を与えないとカレントディレクトリを、引数を与えるとそのディレクトリをチェックする。深いディレクトリツリーの探索にはそれなりに時間がかかる。また、最後にサイズでソートするので処理中にはアウトプットされず、終了時にまとめてリストが出力される。&lt;br /&gt;
&lt;br /&gt;
例：&lt;br /&gt;
&lt;code&gt;perl lif.pl&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;perl lif.pl C:\some\directory\path&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
出力例：&lt;br /&gt;
&lt;pre&gt;
Directory list in perl:
       0.434:   perl/sucren.pl
       1.752:   perl/lif.pl
       2.918: d perl/.svn
       5.104: d .

Top 20 largest single files:
       0.002: perl/.svn/format
       0.232: perl/.svn/all-wcprops
       0.434: perl/sucren.pl
       0.434: perl/.svn/text-base/sucren.pl.svn-base
       0.521: perl/.svn/entries
       1.729: perl/.svn/text-base/lif.pl.svn-base
&lt;/pre&gt;
尚、単位はKBである。&lt;br /&gt;
&lt;br /&gt;
Windows では動作したが、他のプラットフォームでどうなるかはテストしていない。&lt;br /&gt;
Perl のバージョンは 5 以上。&lt;br /&gt;
&lt;br /&gt;
書きなぐったスクリプトなので実行効率の点ではあまりよくないかもしれない。もし使う上で気に入らないなら、スクリプトなので好きなようにいじっちゃってください。あと、使ったために起こった損害については責任持てませんよ。&lt;br /&gt;&lt;a href=&quot;https://gltest.blog.shinobi.jp/%E9%9B%91%E8%A8%98/%E5%A4%A7%E3%81%8D%E3%81%AA%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%8E%A2%E3%81%99perl%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88&quot; target=&quot;_blank&quot;&gt;続きを読む&lt;/a&gt;</description> 
      <link>https://gltest.blog.shinobi.jp/%E9%9B%91%E8%A8%98/%E5%A4%A7%E3%81%8D%E3%81%AA%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%8E%A2%E3%81%99perl%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88</link> 
    </item>
    <item>
      <title>定点カメラで微速度撮影のテスト</title>
      <description>ブログの趣旨とはかなり離れるが、ふとやってみたくなったので微速度撮影（正確な呼び方はよくわからないけど、英語では time lapse というらしい）してみた。&lt;br /&gt;
&lt;br /&gt;
こういう動画は高価な専門の機材を持っていないとできないものと思っていたが、意外と簡単にできておもしろい。&lt;br /&gt;
&lt;br /&gt;
使ったカメラは安物のwebカメラとコンパクトデジカメの2つだ。&lt;br /&gt;
&lt;br /&gt;
4番目の動画まではwebカメラで撮ったものだが、さすがに画質は良いとはいえない。&lt;br /&gt;
&lt;br /&gt;
5,6番目の動画はデジカメでインターバル撮影して連結したもの。最後の動画はのHD相当(1280x960)のピクセル数だ。残念ながら明瞭に撮れる天候のコンディションではなかったが、コンパクトデジカメでHD動画が撮れる可能性を示した面白い結果だ。&lt;br /&gt;
&lt;br /&gt;
動画は「続きを読む」で。&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://gltest.blog.shinobi.jp/%E9%9B%91%E8%A8%98/%E5%AE%9A%E7%82%B9%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%A7%E5%BE%AE%E9%80%9F%E5%BA%A6%E6%92%AE%E5%BD%B1%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88&quot; target=&quot;_blank&quot;&gt;続きを読む&lt;/a&gt;</description> 
      <link>https://gltest.blog.shinobi.jp/%E9%9B%91%E8%A8%98/%E5%AE%9A%E7%82%B9%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%A7%E5%BE%AE%E9%80%9F%E5%BA%A6%E6%92%AE%E5%BD%B1%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88</link> 
    </item>
    <item>
      <title>標高データを2次元スプライン補間</title>
      <description>&lt;br /&gt;
&lt;div style=&quot;text-align: center&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss110.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss110s.jpg&quot; style=&quot;null&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1247353505/&quot; /&gt;&lt;/a&gt; &lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/RIMG1558.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;RIMG1558s.jpg&quot; style=&quot;null&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1247353506/&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
前回で取り上げた地形のハイトマップ（標高データ）は、解像度が約100mで&lt;br /&gt;
あり、人間スケールのオブジェクトを置くには少々粗い。そこで、頂点を補完することを考えてみた。&lt;br /&gt;
&lt;br /&gt;
単なる線形補間だと、曲率の高い地点で不自然な「折れ曲がり」が見えてしまうので、スムーズな補間を行いたい。この要求を満足するものに自然スプライン補間があった。&lt;br /&gt;
&lt;br /&gt;
理論的なところは全くフォローできていないが、下のページなどを参考にして２次元スプライン補間を実装することができた。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/numeanal1/node16.html&quot;&gt;http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/numeanal1/node16.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
これは補間を行いたい区間の両端と、その一つ外側のデータ点のみがあれば補間できるため、動的LODによってポリゴンを削減した部分まで計算に入れる必要が無く、比較的高速にオンメモリで計算できるという利点がある。ただし、地形のような莫大な数の点を補間するとなると計算のオーバーヘッドも無視できなくなってくるので、オフライン計算やキャッシュが有効であろう。&lt;br /&gt;
&lt;br /&gt;
1枚目の画像はSRTM3をデータ源としてレンダリングした富士山頂付近をキャプチャしたものの補間前と後の比較である。画像では補間は16分割して行ったが、理論上はいくつにでも分割できる(厳密に言うと、ピラミッドバッファのサイズから上限が決まってくる)。&lt;br /&gt;
&lt;br /&gt;
なお、実際の富士山頂にも登ってみたが、2枚目の画像のような光景だった。&lt;br /&gt;
&lt;br /&gt;
リアルの地形データからなめらかな地形を描画したいときには、有効な方法ではなかろうか。&lt;br /&gt;
&lt;br /&gt;
続きにスプライン補間のソースを掲示する。&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/%E6%A8%99%E9%AB%98%E3%83%87%E3%83%BC%E3%82%BF%E3%82%922%E6%AC%A1%E5%85%83%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E8%A3%9C%E9%96%93&quot; target=&quot;_blank&quot;&gt;続きを読む&lt;/a&gt;</description> 
      <link>https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/%E6%A8%99%E9%AB%98%E3%83%87%E3%83%BC%E3%82%BF%E3%82%922%E6%AC%A1%E5%85%83%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3%E8%A3%9C%E9%96%93</link> 
    </item>
    <item>
      <title>全世界ハイトマップの応用 </title>
      <description>&lt;br /&gt;
&lt;div style=&quot;text-align: center&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss98.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss98.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1244660260/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss99.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss99.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1244660261/&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
以前から北米のハイトマップは手にしていた（グランドキャニオン）が、今回はより身近な地形データを使ってみた。&lt;br /&gt;
&lt;br /&gt;
今回のデータソースもやはり NASA のプロジェクトになる。&lt;br /&gt;
Visible Earth の BMNG Raw Topography というコンテンツだ。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://visibleearth.nasa.gov/view_rec.php?id=8391&quot;&gt;http://visibleearth.nasa.gov/view_rec.php?id=8391&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
これは全世界を約500mのメッシュで区切ったラスタデータで、 86400ｘ43200 の解像度を持つ。ダウンロードしたZipファイルを展開すると 7GB にもなる膨大なデータだ。標高データはメートル単位で記録されている。&lt;br /&gt;
&lt;br /&gt;
これさえあれば、地球上のどの点でもそこそこの正確さで再現できるが、あまりにも重いのでメインメモリに乗りきらないのが難点である。&lt;br /&gt;
少し気になるのは、ビッグエンディアンと説明には書いてあるのだが、実際にはリトルエンディアンであることだ。 Intel で読み込もうと思ったらバイトオーダーの変更が必要になる。&lt;br /&gt;
&lt;br /&gt;
このデータは SRTM30 と RAMP2 という二つのサーベイの結果を合成したものらしい。それぞれ赤道周りと極地方を計測したものだ。どちらもレーダー衛星であるが、これだけの分解能をもつレーダー測地はなかなかすごい技術だと思う。&lt;br /&gt;
&lt;br /&gt;
１枚目の画像はこの膨大なファイルをピクセル間引きして表示しているところ。&lt;br /&gt;
&lt;br /&gt;
2枚目の画像は富士山付近を切り取って表示したものである。&lt;br /&gt;
&lt;br /&gt;
他に日本の標高データソースとしては国土地理院の電子地図があるが、CD媒体で7500円もする。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.jmc.or.jp/data/gsi.html&quot;&gt;http://www.jmc.or.jp/data/gsi.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
これに対し、以下のようなオープンな利用規約でデータを提供してくれるところは、さすが NASA といったところか。&lt;br /&gt;
&lt;br /&gt;
NASA Terms of Use&lt;br /&gt;
&lt;br /&gt;
For all non-private uses, NASA's Terms Of Use are as follows:&lt;br /&gt;
The imagery is free of licensing fees&lt;br /&gt;
NASA requires that they be provided a credit as the owners of the imagery&lt;br /&gt;
&lt;br /&gt;
Visible Earth Addendum&lt;br /&gt;
&lt;br /&gt;
Beyond the NASA Terms, the Visible Earth team requests, but does not require:&lt;br /&gt;
The Visible Earth be provided a credit as the location that the imagery was found at&lt;br /&gt;
A URL be provided, either to the Visible Earth (http://visibleearth.nasa.gov/) or to the page providing the link to the used image.&lt;br /&gt;
&amp;nbsp;</description> 
      <link>https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/%E5%85%A8%E4%B8%96%E7%95%8C%E3%83%8F%E3%82%A4%E3%83%88%E3%83%9E%E3%83%83%E3%83%97%E3%81%AE%E5%BF%9C%E7%94%A8%20</link> 
    </item>
    <item>
      <title>Windows+OpenGLで日本語を表示する方法</title>
      <description>&lt;div style=&quot;text-align: center&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/billiardss04.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;billiardss04.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1243865969/&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
今まで特に不便を感じていなかったのでトライしていなかったが、 OpenGL を扱う上で大きなハードルになっている多バイト文字の描画について、今回は実験の結果をまとめる。    （尚、 DirectX の言語対応についてはよく知らないが、世の中には右手系の座標空間で日本語を使いたい人もいるはずだ！）&lt;br /&gt;
&lt;br /&gt;
長いので全文は「続きを読む」で。&lt;br /&gt;&lt;a href=&quot;https://gltest.blog.shinobi.jp/%E9%9B%91%E8%A8%98/windows-opengl%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&quot; target=&quot;_blank&quot;&gt;続きを読む&lt;/a&gt;</description> 
      <link>https://gltest.blog.shinobi.jp/%E9%9B%91%E8%A8%98/windows-opengl%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95</link> 
    </item>
    <item>
      <title>ビリヤードゲーム作ってみた</title>
      <description>&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/billiardss01.jpg&quot;&gt;&lt;img style=&quot;null&quot; alt=&quot;billiardss01.jpg&quot; border=&quot;0&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1243188227/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/billiardss02.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;billiardss02.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1243188228/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/billiardss03.jpg&quot;&gt;&lt;img style=&quot;null&quot; alt=&quot;billiardss03.jpg&quot; border=&quot;0&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1243188229/&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
更新がご無沙汰になっているが、blog管理人がついに就職したのが原因だ。&lt;br /&gt;
&lt;br /&gt;
社会人になると、時間や自由のように失うものもあるが、得るものもある。給料が出ると色々とツールを買うことができる。その一つが初任給で買ったデジカメだ。&lt;br /&gt;
&lt;br /&gt;
買ったのはリコーのCX1というデジカメだが、こいつの機能に傾き補正というやつがあって、斜めから撮った平面を補正して垂直方向から見たかのように画像変換することができる。テクスチャ素材を&lt;br /&gt;
集めるにはうってつけだ。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
それとは別に、ビリヤードの物理をやってみたくなったので作ってみた。素材は早速デジカメで撮ったものを使っている。&lt;br /&gt;
&lt;br /&gt;
ビリヤードボールの形状は剛体シミュレーションには非常に適したものであるが、接触時の挙動はそれほど簡単ではない。ボール同士にも、ボールと台との間にも、クッションに対しても摩擦があり、単純な完全弾性衝突とはみなせない。そうでなければボールは全く回転しないのであるから、あたりまえといえばあたりまえだ。&lt;br /&gt;
実際のビリヤード台は湿度で挙動が変わったりもするという。現実味のある挙動をとらせるには、パラメータ調整に時間をかける必要があるだろう。&lt;br /&gt;
&lt;br /&gt;
ビリヤード台のモデリングは意外と面倒なので、今は平面的になっている。&lt;br /&gt;
&lt;br /&gt;
3枚目の画像は素材に使った簡易ビリヤード台の写真である。 &lt;br /&gt;
&amp;nbsp;</description> 
      <link>https://gltest.blog.shinobi.jp/%E9%9B%91%E8%A8%98/%E3%83%93%E3%83%AA%E3%83%A4%E3%83%BC%E3%83%89%E3%82%B2%E3%83%BC%E3%83%A0%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F</link> 
    </item>
    <item>
      <title>RTS化計画</title>
      <description>&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss90.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss90.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1238398640/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss91.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss91.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1238398641/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss92.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss92.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1238398642/&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
そろそろ基本機能も固まってきたので、ゲームとしての方向性を決めたいと思う。&lt;br /&gt;
&lt;br /&gt;
地上の現象のシミュレーションは完成度を上げるのが難しいので、ひとまずジャンルを宇宙系リアルタイムストラテジーとする。&lt;br /&gt;
&lt;br /&gt;
フル 3D 宇宙系 RTS といえばなんといっても Homeworld シリーズが元祖には違いないが、最近で言うと Sins of a Solar Empire というタイトルにシステムは近いものになると思う。&lt;br /&gt;
&lt;br /&gt;
本ゲームがユニークであると思われる点は、スケールに関するリアリティになる。前に述べた2タイトルは宇宙を題材にしてはいるが、距離感よりもゲーム性に重きを置いていて、宇宙の広大さに関してリアリティを追究しているわけではない。これに対し、本作では天体運動の実時間シミュレーションを行いながらゲームする。モデルは現実の太陽系で、実際の天体の運動を参考にしている。&lt;br /&gt;
&lt;br /&gt;
さまざまな天体を巡る軌道上で自軍のユニットを操作し、太陽系内をワープしながら資源を探し、敵を殲滅するといったゲームになる。&lt;br /&gt;
&lt;br /&gt;
前にネットゲーム化計画に関して書いたが、いまのところネットゲーム化するには難しすぎる点が多いため、とりあえずシングルプレイヤーゲームとしてリリースしてから、ソースを C 言語から C++ に移行してネットワーク対戦に取り掛かるつもりだ。&lt;br /&gt;
&amp;nbsp;</description> 
      <link>https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/rts%E5%8C%96%E8%A8%88%E7%94%BB</link> 
    </item>
    <item>
      <title>NLIPS</title>
      <description>&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss88.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss88.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1236481766/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss89.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;gltestss89.jpg&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1236481767/&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
NLIPS(Non-Linear Inverse Perspective Scaling) とは、 Homeworld というゲームのシリーズで、カメラをズームアウトしたときに小さな宇宙船が見えなくなってしまうのを防ぐため、描画時の大きさを変えるというテクニックである。&lt;br /&gt;
&lt;br /&gt;
モニタの解像度は高が1000ピクセル程度と知れているので、あまり小さなものは1ピクセルにも満たず、見つけることができなくなってしまうので、宇宙を舞台とするような広大なスケールダイナミックレンジを持つゲームでは必要になることが多いと思う。&lt;br /&gt;
&lt;br /&gt;
近くに見えているときに拡大してしまっては、元から大きい船にしか見えなくなるため、カメラから遠ざかったときに効果を強くするような式が必要になる。 gltest では下のような式を使ってスケールを決定してみた。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;   scale *= 1. + fov * g_nlips_factor * VECDIST(pos, view);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ここで、 fov は視野角(Field of View)のコサイン値であり、 g_nlips_factor は効果の強さを調整するコンソール変数、 VECDIST(pos, view) は視点と描画対称の位置の直線距離を計算する関数となっている。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;</description> 
      <link>https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/nlips</link> 
    </item>
    <item>
      <title>銃火器のリコイル（反動）のシミュレーション</title>
      <description>人体モデルに銃火器を持たせる上で、リアル系FPSばりにリコイルを表現してみたくなった。&lt;br /&gt;
&lt;br /&gt;
ランダムで照準をずらして、連射時に目標を狙いつづけるのが難しくなるようにしてみた。&lt;br /&gt;
&lt;br /&gt;
話の上で、照準のずれ量 a （角度）とその変化速度 &amp;omega; （角度/秒）を定義する。ピッチとヨーの2軸についてこの値が2次元平面を張ると考えることができる。&lt;br /&gt;
&lt;br /&gt;
基本的には、射撃によって &amp;omega; が瞬間的に変化するようにし、 a がゼロに近づいていくように制御すればよいのだが、ここで問題になるのは、 gltest のようにシミュレーションステップの時間幅が可変の場合、差分法による求解では、描画時のフレームレートによって挙動が異なってしまうことである。悪い場合には発振や発散にも至る。&lt;br /&gt;
&lt;br /&gt;
そこで、一次のフィードバック系の解析解である指数関数を使って、フレームレートに関わらずリコイルの挙動が決まるようにした。&lt;br /&gt;
&lt;br /&gt;
ソースや動画は「続きを読む」で。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/%E9%8A%83%E7%81%AB%E5%99%A8%E3%81%AE%E3%83%AA%E3%82%B3%E3%82%A4%E3%83%AB%EF%BC%88%E5%8F%8D%E5%8B%95%EF%BC%89%E3%81%AE%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&quot; target=&quot;_blank&quot;&gt;続きを読む&lt;/a&gt;</description> 
      <link>https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/%E9%8A%83%E7%81%AB%E5%99%A8%E3%81%AE%E3%83%AA%E3%82%B3%E3%82%A4%E3%83%AB%EF%BC%88%E5%8F%8D%E5%8B%95%EF%BC%89%E3%81%AE%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3</link> 
    </item>
    <item>
      <title>人体モデルとその応用（歩兵）</title>
      <description>&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/infantry_weapons.jpg&quot;&gt;&lt;img align=&quot;baseline&quot; alt=&quot;infantry_weapons.jpg&quot; border=&quot;0&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1235128223/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss87.jpg&quot;&gt;&lt;img align=&quot;baseline&quot; alt=&quot;gltestss87.jpg&quot; border=&quot;0&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1235128224/&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;http://file.gltest.blog.shinobi.jp/gltestss85.jpg&quot;&gt;&lt;img align=&quot;baseline&quot; alt=&quot;gltestss85.jpg&quot; border=&quot;0&quot; src=&quot;http://file.gltest.blog.shinobi.jp/Img/1235128225/&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
前回に引き続き、今回もblog休止期間の開発状況についてである。&lt;br /&gt;
&lt;br /&gt;
人体モデルの導入にはずいぶんと苦労した。統合されたモーションエディタとモデリングツールが手元になかったため、前の動画でVF-25のモーションを作るときに使った自作のモーションエディタを流用した。他にもテクスチャが貼れないとか、スキニングができてないとか、色々と問題があった。&lt;br /&gt;
&lt;br /&gt;
とりあえず人の形に見えるようにはなったので、何種類か武器を持たせてみた。一人称視点で操作することもできる。&lt;br /&gt;
&lt;br /&gt;
スクリーンショットでもわかるように、あからさまなローポリゴンモデルだが、多量に表示することになるので細部を作りこむ予定はない。&lt;br /&gt;
&lt;br /&gt;
スキニングに関してはいまだにできていないのだが、この様子だと必要ないのかもしれない。 &lt;br /&gt;
&amp;nbsp;</description> 
      <link>https://gltest.blog.shinobi.jp/gltest%E9%96%8B%E7%99%BA/%E4%BA%BA%E4%BD%93%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A8%E3%81%9D%E3%81%AE%E5%BF%9C%E7%94%A8%EF%BC%88%E6%AD%A9%E5%85%B5%EF%BC%89</link> 
    </item>

  </channel>
</rss>