« 2006年01月 | メイン | 2006年03月 »

2006年02月17日

Winny 開発者の裁判に村井教授が証人として出廷

Internet Watch に Winny 裁判の公判記事が掲載されています。

Winny開発者の裁判に村井教授が証人として出廷、検察側の主張に異議
http://internet.watch.impress.co.jp/cda/news/2006/02/16/10925.html

またスラッシュドットジャパンにもこれに関してのエントリが作られています。

村井純氏がWinny裁判の弁護側証人として出廷
http://slashdot.jp/articles/06/02/17/0628252.shtml

村井さんと Winny のつながりに関しては、以前取り上げたこのエントリで知ってはいました。しかし裁判の弁護側における証人として出廷するという展開は「白い巨塔」を思い起こさせます。

うまくは説明できませんし裁判を傍聴したわけではなく Internet Watch の記事を読んでの感想でしかありませんが、その道の専門家の発言はあくまでも技術にのみ言及できるものであって、それが社会的にどういった影響を与えるかということに関してはまた別の問題であるということを共通した感想として持ちました。

しかしときに技術は社会を変革するに足る十分な力を持ち、しかしその技術をコントロールするということに関して人類は常に後手に回っています。重大な問題としては核に代表されるでしょうし、最近の技術者における卑近な問題としては 404 特許などが代表されると思います。


投稿者 napier : 23:41 | トラックバック


スウィーツ

Engadget Japanese で紹介されていた食品加工業のエントリを見て久しぶりに talby メニューを作ろうかと思ったのですが、やはり小さすぎてうまくいきませんでした。最近は新しいメニューが登録されることもないようで、私の talby も 1 年前に作ったメニューのままです。Flash の開発環境があればちょっとはやる気にはなるのだろうと思いますが・・・、あってもやらなかったり。

オリジナルはこちらです。
http://legnangel.livejournal.com/564026.html
こういったものが作れる人ってすごいです。

Sweets01.jpgSweets02.jpg

(追記)
オリジナルはこちらのようです。
http://mapage.noos.fr/minimiam/go.htm


投稿者 napier : 23:00 | トラックバック


2006年02月15日

Firefox のメモリ使用量

最近メモリの増設をしたばかりですが、この遠因は Firefox にあったようです。

Firefoxのメモリ大量消費は『仕様』、だが回避方法あり
http://slashdot.jp/articles/06/02/15/0756254.shtml

このときは個々のプロセスのメモリ使用量に関してはチェックしていなかったのですが「100MB~200MB のメモリ使用量を Firefox が占有・・・」などという事態が起こっていたとすると、流石に 256MB では厳しいよな、と思います。


投稿者 napier : 21:08 | トラックバック


February 2006 DirectX SDK

DirectX SDK の定期バージョンアップがおこわなれました。
February 2006 DirectX SDK
http://www.microsoft.com/japan/msdn/directx/downloads.aspx

  • Direct3D 10 Technology Preview
  • D3DX9
  • Microsoft Cross-Platform Audio Creation Tool (XACT)
  • Windows Vista Game Explorer (Beta)
  • ツール

ということで、DX9 から徐々に比重が DX10(Vista) に移ってきているのがわかります。DX9 に関しては UVAtlas というのが更新されたようですが、google で日本で検索すると 14 件・・・ううむ。web 全体でも 312 件です。


投稿者 napier : 00:29 | トラックバック


2006年02月13日

疲労~

P2130001.JPG

土日の疲れがとれず、週の頭から疲労状態です。今年は買ったビールは自宅で飲まないようにしているので久々にウォッカとジンジャーエールでモスコです、ライムが足りませんが(笑) そう、それに加えて氷もなしです。超即席カクテルです。

ウォッカは随分久しぶりに買いました。一時期はジンにはまっていたこともありましたがここ数年はウォッカですね。近所のショップ 99 でジンジャーエールが 1 リットル 100 円で買えるので非常に重宝しています。それでも一番飲んでいたのは 1 年前後前で、SOCOM2 をしているときはずっと飲みながらやっていました。あ、FF のときもそうだったかな・・・。

最近思うことに、触れる情報が偏り気味だなぁ、というのがあります。仕事帰りに飲むこともほとんどなくなってしまったこともあり、交わす会話も仕事中心になりがちです。ドラマやニュースを見たり小説を読んだりしてはいますが、生の人間の声、とでもいうべきクチコミ的な情報や、感情を爆発させるようなケンカなどをする機会がほとんどないなぁ、と思っています。ケンカはま微妙ですが。

今日は飲んで久々に早めに寝ます。今年は風邪以来かな。


投稿者 napier : 22:06 | トラックバック


2006年02月12日

RD-XS38(3) 番組ナビ お気に入り

この機能すごっ。とりあえずお気に入り設定に司馬遼太郎を入れておいたのですが、それが今日ヒットしていました。番組は「ザ・ノンフィクション 『司馬遼太郎からの手紙』」です。自分で番組表を見ていたらきっと気が付かなかった番組です。これ、すごいわ。。。

残念ながら上野樹里ちゃんや成海璃子ちゃんはまだヒットしていません:-) しかし、、もっと登録してみよう。おもしろ!


投稿者 napier : 22:09 | トラックバック


RenderMonkey(2) テクスチャパラメータ

新規にワークスペースを作ってみます。これはとても簡単で、RenderMonkey を立ち上げた後に [Effect Workspace で右クリック] → [Add Default Effect] → [DirectX/OpenGL] でそれぞれ選択が可能です。この雛型を選択するだけでそのまま動作するエフェクトが作成されます。

AddDefaultEffect.jpg
fig.1 Add Default Effect

例えば Textured Bump を選択します。デフォルト状態ではモデルは Sphere.3ds が選択されています[fig.2(a)]。モデルは前回示したように簡単に変更することができます[fig.2(b)]。

model_shpere.jpg
fig.2 (a) モデル変更前

model_teapot.jpg
fig.2 (b) モデル変更後

また Vertex Program / Fragment Program も自動的に生成されているので、あとは好きなように編集をすることが可能です。

uniform vec3 fvLightPosition;
uniform vec3 fvEyePosition;

varying vec2 Texcoord;
varying vec3 ViewDirection;
varying vec3 LightDirection;
   
attribute vec3 rm_Binormal;
attribute vec3 rm_Tangent;
   
void main( void )
{
   gl_Position = ftransform();
   Texcoord    = gl_MultiTexCoord0.xy;
    
   vec4 fvObjectPosition = gl_ModelViewMatrix * gl_Vertex;
   
   vec3 fvViewDirection  = fvEyePosition - fvObjectPosition.xyz;
   vec3 fvLightDirection = fvLightPosition - fvObjectPosition.xyz;
     
   vec3 fvNormal         = gl_NormalMatrix * gl_Normal;
   vec3 fvBinormal       = gl_NormalMatrix * rm_Binormal;
   vec3 fvTangent        = gl_NormalMatrix * rm_Tangent;
      
   ViewDirection.x  = dot( fvTangent, fvViewDirection );
   ViewDirection.y  = dot( fvBinormal, fvViewDirection );
   ViewDirection.z  = dot( fvNormal, fvViewDirection );
   
   LightDirection.x  = dot( fvTangent, fvLightDirection.xyz );
   LightDirection.y  = dot( fvBinormal, fvLightDirection.xyz );
   LightDirection.z  = dot( fvNormal, fvLightDirection.xyz );
   
}
fig.3 Vertex Program
uniform vec4 fvAmbient;
uniform vec4 fvSpecular;
uniform vec4 fvDiffuse;
uniform float fSpecularPower;

uniform sampler2D baseMap;
uniform sampler2D bumpMap;

varying vec2 Texcoord;
varying vec3 ViewDirection;
varying vec3 LightDirection;

void main( void )
{
   vec3  fvLightDirection = normalize( LightDirection );
   vec3  fvNormal         = normalize( ( texture2D( bumpMap, Texcoord ).xyz * 2.0 ) - 1.0 );
   float fNDotL           = dot( fvNormal, fvLightDirection ); 
   
   vec3  fvReflection     = normalize( ( ( 2.0 * fvNormal ) * fNDotL ) - fvLightDirection ); 
   vec3  fvViewDirection  = normalize( ViewDirection );
   float fRDotV           = max( 0.0, dot( fvReflection, fvViewDirection ) );
   
   vec4  fvBaseColor      = texture2D( baseMap, Texcoord );
   
   vec4  fvTotalAmbient   = fvAmbient * fvBaseColor; 
   vec4  fvTotalDiffuse   = fvDiffuse * fNDotL * fvBaseColor; 
   vec4  fvTotalSpecular  = fvSpecular * ( pow( fRDotV, fSpecularPower ) );
  
   gl_FragColor = ( fvTotalAmbient + fvTotalDiffuse + fvTotalSpecular );
       
}
fig.4 Fragment Program

これだけでも shader プログラムの取り掛かりとしては非常に敷居が低くなっています。

RenderMonkey 以外にも shader プログラムのコードを自動生成してくるソフトとし ShaderGen があります[fig.5]。このソフトは OpenGL の固定機能を OpenGL Shading Language に置き換えてくれるもので、従来の OpenGL の固定機能を知っている人が shader プログラムを始める場合には有用なソフトだと思います。

ShaderGen-3.0.jpg
fig.5 ShaderGen 3.0

さてここまでは前フリで、今回は基本となるテクスチャの扱いを簡単にまとめます。ワークスペースは新規に Screen-Aligned Quad を選択します[fig.6]。

Screen-AlignedQuad.jpg
fig.6 Screen-Aligned Quad

ここでテクスチャを base.tga から ati.tga に変更します。これはテクスチャの向きを確認するためです。base.tga から ati.tga に変更するとテクスチャの向きが上下が逆になっていることがわかります。これを直す方法はいろいろとありますが、ここでは Vertex Program を変更します。

varying vec2  texCoord;

void main(void)
{
   gl_Position = vec4( gl_Vertex.xy, 0.0, 1.0 );
   gl_Position = sign( gl_Position );
    
   // Texture coordinate for screen aligned (in correct range):
//   texCoord = (vec2( gl_Position.x, - gl_Position.y ) + vec2( 1.0 ) ) / vec2( 2.0 );
   texCoord = (vec2( gl_Position.x, gl_Position.y ) + vec2( 1.0 ) ) / vec2( 2.0 );
}
fig.7 Vertex Program の変更

また、これだけでは何なので Fragment Program も変更してみます。

uniform sampler2D Texture0;

varying vec2 texCoord;

void main(void)
{
//    gl_FragColor = texture2D( Texture0, texCoord );
    gl_FragColor = texture2D( Texture0, texCoord*2.0 );
}
fig.8 Fragment Program の変更

ここまでの変更で fig.9 の状態になっているはずです。

Screen-AlignedQuad_01.jpg
fig.9 texture, Vertex Program, Fragment Program 変更

さてここからが本題で、今回注目するのは Texture Parameter です。これは Texture0 をダブルクリックかマウス右クリックで Edit を選択します[fig.10]。

Screen-AlignedQuad_02.jpg
fig.10 Texture State Editor の選択

ここでは glTexParam{i|f|v}, glTexEnv{i|f|v} に関連するパラメータの設定を行うことができます。デフォルトでは GL_TextureMinify = GL_LINEAR_MIPMAP_LINEAR, GL_TextureMagnify = GL_LINEAR が設定されています[fig.11]。

Screen-AlignedQuad_03.jpg
fig.11 Texture State Editor デフォルト値

さてここで Fragment Program に戻り、以下の様に編集してみます[fig.12]。

uniform sampler2D Texture0;

varying vec2 texCoord;

void main(void)
{
//    gl_FragColor = texture2D( Texture0, texCoord );
    gl_FragColor = texture2D( Texture0, fract(texCoord*2.0) );
}
fig.12 Fragment Program の変更 2

この変更を行うと表示されているテクスチャの中央にスジが入るのが確認できると思います[fig.13]。

Screen-AlignedQuad_04.jpg
fig.13 スジが現れた状態

最初に RenderMonkey を使ったとき、何故テクスチャ座標の算出に fract, floor などを使うとこのスジが現れるのかがわかりませんでした。そのときにはまだ Texture State Editor の出し方がわからなかったため RenderMonkey のバグかとも思いましたが、実際にはこれは GL_TextureMinify が影響しています。というわけで Texture State Editor に戻り GL_TextureMinify を GL_LINEAR に変更します[fig.14]。

Screen-AlignedQuad_05.jpg
fig.14 GL_TextureMinify の変更

この変更により GL_LINEAR_MIPMAP_LINEAR の効果は得られなくなりますがテスクチャのスジは消せます。MIPMAP 画像が見れないので RenderMonkey がどんな MIPMAP を生成しているか謎ですが、うまく MIPMAP のレベル調整ができれば実際のプログラム上では問題はないでしょう。

私はこの問題にはまり「RenderMonkey の fract, floor ってバグってる?」と思いいろいろと検索をしてしました。結果的に web 上では情報が見つからなかったのですが、この問題のおかげでちょっとは RenderMonkey に慣れることができたな、と思います。

また、これ以外のパラメータも変更してみて下さい。特に fract を外して GL_TextureWrap{S|T|R} を変更すると普通に REPEAT/CLAMP 系の動作を確認することができます。


投稿者 napier : 19:08 | トラックバック


サブカテゴリー

CG に関してサブカテゴリーを作ってみました。とりあえず独立できそうなのは gnuplot ですが、リンクなどの問題もありそうなので CG にもおいておきます。今後はサブカテゴリーだけに記述すると思います(gnuplot の続きを書くかどうか謎ですが・・・)。今は RenderMonkey で遊んでいるのでこっちもサブカテゴリー化してみました。

こうやってサブカテゴリー別に分けてみると更にいろいろと分類したくなりますね。blog カテゴリがごちゃごちゃなのでこの辺かなぁ、と思います。


投稿者 napier : 03:21 | トラックバック


Previous Page Next Page, All Pages