Mac Gimp 最新版

GIMP - The GNU Image Manipulation Program
GIMP on OS X
↑から、以下のフィルをダウンロードした。
GIMP-2.6.5-p1-Leopard-universal.dmg


使ってみて驚いたのは、マウスの反応が悪くなっていた事。
Mac Gimpのウインドウのフォーカス
↑この設定をもう一度やっても反応が悪い。
使えるdefaultsを書き込め - X11
↑ここに書いてある様に、以下のコマンドで良くなった。

	defaults write org.x.x11 wm_ffm -bool true
	defaults write org.x.x11 wm_click_through -bool true

2行目のコマンドは、どういう効果なのかな?
いつの間にか、x11の設定が、com.apple.x11からorg.x.x11に変ったのかな。

GPUレイトレーシング

Ray Tracing on GPU
カーネルの入力パラメータが複数有るのは複数のテクスチャをセットすればできるが、
出力が複数あるのはどうやってるのかな?
同じ計算を出力パラメータだけ変更して、何回もやってるのかな。
どこかに書いてあるのかもしれないけど、英語なので探すのがめんどくさい。


multiで検索したら見つかった。
最新のGPUはマルチターゲットレンダリングできるとのこと。
一つのフラグメントプログラムで、4つのフラグメントを4つの異なるレンダーターゲットに書き込めると。
そうじゃないGPUはやっぱり4パスでやるのかな。


ソースを見ると、IDirect3DDevice9::SetRenderTarget()の第1引数を変えて複数のレンダーターゲットを指定してる。
ソース自体は、エラーがでてコンパイルできなかった。コードがVC6のバグ仕様だし。wxWindowも要るみたいだ。

OpenGLでオフスクリーンレンダリング

ウインドウを生成しないでオフスクリーンレンダリングする方法は?
glutを使って一応できたが、なんか気持ち悪い。
glutCreateWindow()を呼び、glutMainLoop()を呼ばない状態にすると動いた。
glutCreateWindow()を呼ばないと、glGenRenderbuffersEXT()で落ちる。
glewInit()は呼んでいる。
速度的にはどうなんだろう?


▼sonson@Picture&Software - [OpenGL] オフスクリーンレンダリング
http://son-son.sakura.ne.jp/programming/opengl_3.html
↑この方法で、glutを使わずに、メモリ上に、glContextを作ってみたがダメ。
CreateWindow()してもダメ。gl*EXT()で落ちる。
glutCreateWindow()を呼ばないとダメなのかな。
glewInit()での初期化がうまくいってないのかな。


▼glewInit
http://glew.sourceforge.net/basic.html
http://www.hanecci.com/pukiwiki/index.php?Programming%2FOpenGL%2FBasic
ここに情報が。
glewってglutとセットで使うものなのか?

LightWave CORE

NewTek LightWave CORE?
Pythonも使える。
COLLADAがデフォルトフォーマットになるみたい。
座標は、右手系になるのかな?


Qt(キュート)を使用している。
ずっと、キューティーって読んでたけど、キュートなのか。
Structure Synthでも使われてるようだし、最近流行ってるのかな。


Qt - Wikipedia
以前、ちょっと使った時は、一部のソースが公開されてなかったけど、今は公開されてるみたい。
Google Earth, Opera, SkypeもQtを使ってるのか。


Qt最新事情−QtでWebKitを使ってみよう:第1回 Qtの歴史〜Qt 4.4の新機能 |gihyo.jp … 技術評論社
Qt Jambi - Demos and Example

Structure Synthの作品1

とりあえず、なんか作ってみた。

r1
rule r1 maxdepth 1 > r2 {
  1 * { s 0.2 } 10 * {  ry 36 } 1 * { x 1} r1
  { s 0.2 hue 320 rx 90} r2
}
rule r2 {
 1 * { s 0.2 } 40 * {  rz 9  } 1 * { y 2} r3
}
rule r3 {
 1 * { s 0.2 hue 36 } 10 * {  rx 36  } 1 * { z 2 } sphere
}

Structure Synth

Structure Synth - 文脈自由文法3Dアート - Radium Software
Structure Synth
Context Free Art
これ、面白そう。
sunflowのデータファイルを出力できるらしい。


なんだか、Mac版がダウンロードできない。
↓ここからできた。
SourceForge.net: Structure Synth


sunflowのデータにexportしてレンダリングできた。
拡張子は.txtのままだとダメで、.scにしないといけない。

任意の位置を中心として、同心円上にオブジェクトを配置することは難しい。
単に配置するだけなら↓でできるけど。さらにローカル座標での回転・拡大を与えることはできないのか?

 10 * {  ry 30 } 1 * { x 2} box
sphere

DirectXのPerspectiveとOpenGL Frustumの違い

DirectXのD3DXMatrixPerspectiveOffCenterRH() の場合
D3DXMatrixPerspectiveOffCenterRH 関数 ()

2*zn/(r-l) 0 0 0
0 2*zn*(t-b) 0 0
(l+r)/(r-l) (t+b)/(t-b) zf/(zn-zf) -1
0 0 zn*zf/(zn-zf) 0
OpenGLのglFrustum() の場合 glFrustum
2*zn/(r-l) 0 0 0
0 2*zn/(t-b) 0 0
(l+r)/(r-l) (t+b)/(t-b) (zn+zf)/(zn-zf) -1
0 0 2*zn*zf/(zn-zf) 0
OpenGLは転置してある。 以下の要素が異なる。 1) 2*zn*(t-b) と2*zn/(t-b) 2) zf/(zn-zf) と(zn+zf)/(zn-zf) 3) zn*zf/(zn-zf) と2*zn*zf/(zn-zf) ※1)は明らかにDirectXはおかしい。 Vec3(0, 0, -zn)、Vec3(0, 0, -zf)この二つのベクトルを乗算すると。 OpenGLの方は,Vec3(0, 0, -1), Vec3(0, 0, 1)に変換されるが、DirectXの方はそうならない。 DirectXはマニュアルの記述が間違ってるのか、それとも実際にそういう動作をするのか? DirectXの方は,Vec3(0, 0, 0), Vec3(0, 0, 1)に変換されるのか。 OpenGLはZが(-1〜1)、DirectXはZが(0〜1)の範囲でクリッピングされるってわけ? この判定は、どの段階で行われてるのだろう? 描画ではGPUで判定してるはずだけど、この値は変更できるのかな。 CPUでビューボリュームを使う場合は、DirectXOpenGLで処理を変えないといけないのかな? OpenGLはglDepthRange()で設定した値に、(-1〜1)がマッピングされるしくみらしい。 この値がZ値として書き込まれるのか?デフォルトは(0, 1)らしい。 DirectXでは、ViewportのMinZ, MaxZの値がこれに相当するのかな。 でも、3Dでの判定には関係ない。 ビューボリュームのNear平面が違うので気をつけないといけないということか。 どうにかして、同じマトリックスを使える様にできないものか… FSAA with Blur Effects クリッピング ボリューム