- 436 名前:370 mailto:sage [2009/08/04(火) 23:31:05 ID:gUTbFtoJ0]
- >OpenGLやDirectXなど、APIが違えばそこの間でデータの転送を行わなければなりませんし、
その場合は速度についてはあきらめて貰うしか・・。なるべくどちらか一方だけを使用するようにしてもらおうと 思います。 ○○というエフェクトはOpenGLにしかなくて、△△というエフェクトがDirectXにしかないという場合に DirectX(OpenGL)→Bitmap→OpenGL(DirectX)のような処理を行います。テクスチャが設定されていない場合の処理 と似た感じです。 >うp主の環境(Core i7 920、Geforce 9600GT)では640x480OpenGL→Bitmapにかかる時間は平均1ms程度でした 以前1フレームあたりのレンダリング時間で測った事がありますが 640x480x32bitの変換を数回でもかなり速度が落ちていた気がします・・。スペックが低いのもありますが。もう 少し調べてみます。CPUには負荷かかるしGPUは転送終わるまで処理できないしでかなり影響あると思うんですが。 >リアルタイムレンダリングに関しては、最終出力がBitmap、もしくはbyte配列な時点で厳しいです。 確かに今のNiVEのOpenGLレンダラでも512x384のトラックを1枚追加してプレビューするだけでも40fpsしか出ません・・。 >>424で述べた方法はこれを防ぐためでもあります。 プレビューウィンドウ表示用のOpenGLコンテキストとも、ディスプレイリストを共有して GLSLエフェクトで作ったテクスチャを使えるようにしてしまえば、エフェクトと同じように出来ない でしょうか。 nicoAE._3DUtilsを使ってプラグインを作ってみましたが、使えない関数があったりなど 正直使いにくいです・・。OpenTKなどのC#向けOpenGLライブラリをそのまま、または一部変更/追加して 使ってもいいのではないでしょうか。
|

|