最新の記事 [RSS]
個人的に空前の錬金術師ブーム到来 恒例行事 2022 【クリスタ】【VRoid】【COEIROINK】【Unity】【DaVinci】調子こいて動画を作ってみよう企画 へんたいふしんしゃさんのためのメインアタッカー ついに前作超え 2022Q4はさばけない スマホ機能付きブツ撮りカメラ ごちうさ図鑑 (3) 久々のApple名物 雇用主にサイケデリックな幻覚を見せてはいけないんだよ!

[PR] シュールな異世界【うらら島】(あつまれ どうぶつの森 観光案内メーカー)


アルファブレンド

私が作ったゲーム開発ライブラリには言わずと知れた問題がある。 それは「アルファブレンドが激重」という問題である。 そりゃそうだ、たいした最適化は行なっていない。 すべて“C”である。 いや、一度、アセンブラでの最適化を試みたのだが、コンパイラの最適化に完敗して以来、この手段は封印している。

それにしても重い。 というわけで、再度アセンブラによる最適化を試みる一大プロジェクトを立ち上げた。 リベンジである。 しかし、以前と同じ手段を使ったのでは、また砂を持ち帰る羽目になる。 そこで、今回はある作戦を打ち立てた。 キーワードは「MMX」である。 MMX命令を使えば倍単位での高速化が見込める。 その反面、恩恵を受けられるCPUは限定されてしまう。 まあ、テストということで、今回はMMX限定で行ないたいと思う。

ところで、問題がいくつかある。 その中でも最も厄介な問題がビデオチップの違いによるビットフォーマットの違いである。 これは16ビット表示を用いる際に発生する問題なのだが、ビデオチップによってRGBのビット数と並びが異なるのである。 並びはともかく、ビット数の違いはプログラムが複雑になる。 せっかくの最適化も無駄にしかねない。 この問題をどう工夫して乗り切るかが勝負の分かれ目といえよう。

2002年 1月 10日 [この記事のURL] [コメント]


コメント


名前
内容
送信

※“http://”を含む送信はできません。