Chiharu の日記

絵描き C/C++ プログラマーの日記です。

2010-01-01から1年間の記事一覧

31 歳になりました 〜ひとつの区切り

何となく。本当に何となく、なんですが、仕事について人生設計があります。 20 代は『なんでもやろう』と思ってました。なので、営業でも経営でも開発でも企画でも、なんでもやってきました。 30 代は『方向性をつけたい』と思ってます。他人からの依頼物で…

神のみぞ知る世界 〜ED 絵

最終話の ED 絵が、MIN-NARAKEN でびっくりしました。アリスソフト、最近いろんなところで見ますね。適度な露出はいいことだと思います。

Parallel force - パラレル・フォース 〜バックバッファのフリップ

もー、バックバッファ コピーの設計が気持ち悪くて気持ち悪くて再設計しました。詳細はこちら。 結局フリップに対応しました。多分、これでバックバッファの扱いは完成形です。前よりちょっと速くなっているはず。SSE2 使ってキャッシュ制御して、やっと落ち…

Parallel force - パラレル・フォース 〜表画面への転送 (4)

現状のコードをまとめました。詳細はこちら。 裏画面合成処理における分割描画についても、ちょこちょこ最適化しました。SSSE3 を使用したグレースケール画素データのロードと、描画タスクのクリッピングが対象です。Intel Atom だと 1 割くらい速くなってい…

Parallel force - パラレル・フォース 〜表画面への転送 (3)

バックバッファのコピー回避でーきたっと。ベスト エフォート型の回避だけど、パフォーマンス上がりました。よかったよかったー。 とりあえず今日はここまで。

Parallel force - パラレル・フォース 〜表画面への転送 (2)

先の日記の日付を 2 度にわたって間違える始末。眠いとミスも増えますね。気をつけよう。 さて、バックバッファの扱いをちょっと再考しています。 昨日の日記のとおり、現在、描画処理に『裏画面の合成』と『表画面への転送』という 2 つのステージを設けて…

Parallel force - パラレル・フォース 〜表画面への転送

ティアリング回避に際して、描画の並列度が低下して速度が落ちる件ですが、表画面への転送処理を非同期化することで解消しました。詳細はこちら。 これで、タスク処理、裏画面合成、表画面転送が非同期になりました。単純な fork, join でないので、タスク管…

Parallel force - パラレル・フォース 〜ティアリング改善

画面更新時のティアリングが見るに耐えないので、バックバッファを実装しました。詳細はこちら。 表画面への転送を一回の StretchDIBits で処理するようにしたため、以前よりも並列度が低下しますが、ティアリングは軽減しています。裏画面は相変わらず分割…

Parallel force - パラレル・フォース 〜FPS とティアリング

パラレル・フォースの過負荷時の処理について、処理落ちかコマ落ちのいずれにしようか迷いましたが、コマ落ちにしました。詳細はこちら。 昨日までの実装では、描画処理後にタスク処理を逐次実行していたのですが、これだとコマ落ちの際にタスクの処理間隔が…

魔法少女リリカルなのは The MOVIE 1st (BD) 〜なぜか Amazon から届きました。

えーと。何やら以前、予約してしまっていたようで、宅配で届きました。パッケージ見たときは、やっちまった感満載でした。相方からは「悲しいわ。離婚ね」と言われました。相方の中で許せる範囲というものがあるようです。 許せる ガンダム UC (1) (2) (BD) …

Parallel force - パラレル・フォース 〜サウンド周り (2)

とりあえず効果音用のものだけまとめました。 今時、サウンド機能がない環境があるのかどうか分かりませんが、NullDevice パターンで XAudio2 の初期化に失敗する環境でも、実行だけはできるようにしました。まぁ、保険的な意味合いで。

Alice Vocal Collection 〜ありぼー買いました。今回、辛口コメントです。

アリスソフト大好き人間としては外せない一品。買いました。トップがアトラクでしたし、好きな曲のオンパレードでしたので。結構楽しみにしていました。 感想。 ―――素直にインスト版リリースして下さい。 数日聞き込んでみての感想です。いや、まぁ。意外と…

Parallel force - パラレル・フォース 〜サウンド周り

サウンド周りの設計に入りました。グラフィックスはとりあえず、ちょっと置いておきます。ゲームのエンジンだといっているのにグラフィックス実装ばかり進んで行くのはあまりにもアレだと感じましたので。 過去の経験から、効果音には DirectSound で、BGM …

わんくま同盟 〜気になる気になる

30 歳も過ぎて、なんだかプログラム開発系コミュニティに興味が出てきました。んー。どこかに飛び込んでみようかな、とか思ってます。わんくま同盟、良いのかなぁ。ちょっと考えよう。

Parallel force - パラレル・フォース 〜文字の描画でけた

現在公開中のデモの文字描画は結構やっつけ実装でしたが、先ほど、ちゃんとまとめて、まともな実装に修正しました。描画対象のテキストも、イメージ同様にテキストとしてスプライト管理するようにしました。あと、やっつけ実装では加算合成で白文字を描画し…

録画予約で 〜絶望した!

昨日、一昨日と、仕事のことでかなり疲れていて、帰宅後 TV を付けずに寝入ってしまったら、そういうときに限って録画予約ミス!先ほど気づいて愕然としました。ミスした番組は、妹なんかじゃない(違)と、空のおとしものフォルテ、スパロボ OG。素で凹みま…

Parallel force - パラレル・フォース 〜画面の更新について

昨日アップしたイメージ中の『WAITING FOR I-SU-CHI』の上方が少しズレています。これは画面を分割描画及び分割更新していることにより、前フレームと現フレームが混在してしまったものです。もしかすると遅い PC の場合、画面更新が垂直同期に追いつかない…

Parallel force - パラレル・フォース 〜文字列描画に対応しました

すっかり忘れていて、さっくり実装しました。文字列描画です。下図の『これはスクリーン 2 です。(MS Pゴシック で表示中)』が描画した文字列です。 GDI の GetGlyphOutline API でアンチエイリアス付きグリフデータを取得して、イメージ スプライトとし…

Parallel force - パラレル・フォース 〜x64 対応しました

Win64 対応とか書いておきながら公開バイナリは Win32 版のみという、ちょっと寂しい状況でしたので、開発環境を整備して x64 ビルドしてみました。 型の不一致で 4-5 箇所くらい修正しましたが、それ以外はすんなりコンパイルが通りました。修正内容は、デ…

Parallel force - パラレル・フォース 〜トランジションくっきりはっきり

αマスクによるトランジションにステップ数指定機能を実装しました。デモにも反映しました。以前のデモよりもスクリーン切り替えの境界線がくっきりしていると思います。詳細はこちら。 次はイメージの回転か、或いは、ちょっとやってみたいトランジションが…

Parallel force - パラレル・フォース 〜トランジションのデモ追加

デモにトランジション処理を追加しました。αマスクは適当に用意したものですので、エフェクトには当たり外れがあるかも。詳細はこちら。凡ミスもいくつか修正してあります。んー。画素の合成処理が増えてきたので、だんだん SIMD の効果が顕著になってきまし…

Parallel force - パラレル・フォース 〜αマスク トランジションでけたー

昼過ぎから四苦八苦しながら実装してました。αブレンディングによるエフェクトなので SIMD が良く効きます。例によって SSSE3 まで対応しています。今日はもう夜遅いので、デモをまとめるのは明日にしようと思います。

Parallel force - パラレル・フォース 〜アフィン変換その後

体調不良で今日は会社を休みました。肺炎やってからなかなか復調しません。半日くらい寝てました。 とりあえず、先ほどアフィン変換の線形補間のα値保持バージョンを実装しました。デモに反映しても絵的な変化がないので、公開は次の機会に。

Parallel force - パラレル・フォース 〜デモ更新

イメージの拡大縮小処理の実装をとりあえず完了しました。線形補間の処理負荷が思っていたよりも高く、慌てて SSE2, SSSE3 に対応させました。むー。アフィン変換の線形補間は SSE2 には荷が重いですね。SSSE3 が使えないと、パック、アンパックの嵐であまり…

Parallel force - パラレル・フォース 〜動物園とアフィン変換

今日は私と相方と子供二人で、名古屋の東山動物園に行ってきました。 最近、絵本やテレビで動物に興味を持ち始めた上の子供に、本物の動物を見せてあげたいと思って出かけました。が、なかなか計画通りとは行かず。まず昨夜、子供がなかなか寝付かず、その日…

Parallel force - パラレル・フォース 〜SSSE3 でフェード完了

実装したらうまくいったようです。偶数版は SSE2 よりも 2 割くらい速い、かな。奇数版は SSE2 とどっこいです。デモのスプライトの重ね合わせのフェード値が奇数に偏っていたため、効果確認用に、Z オーダー順に奇数偶数と交互に設定するようにしました。微…

Parallel force - パラレル・フォース 〜SSSE3 乗加算、惜しい!

_mm_maddubs_epi16 を使用したαブレンディングですが、再考察したところ、0-256 は無理ですが、0-128 ならいけますね。α値が 0 のケースはそもそも上流で描画をカットしていますし、またα値が 128 (=256) の場合は上流で単純転送に振り分けています。つまり…

Parallel force - パラレル・フォース 〜次はアフィン変換?

次はアフィン変換かなー。よく使いそうですし。 ところで SSSE3 の _mm_maddubs_epi16 がいまいち使えませんでした。αブレンディングに組み込めないか検討したのですが、乗数が符号付バイトということで、-128 〜 127 の範囲しか使えません。これが符号無な…

Parallel force - パラレル・フォース 〜デモ更新

高速化の効果が大きかったので SSSE3 を導入しました。動的切り替えにより、非サポート CPU では SSE2 で動きます。また、機能面では複数スクリーン処理を追加しました。デモには、2 つのスクリーンをクロス フェードするようにしました。一方はこれまでのデ…

Parallel force - パラレル・フォース 〜SIMD まだまだ

公開中のデモについて、Atom や Core i7 では SSE2 適用でとても高速化するのですが、Core 2 であまり速くならず、何故だろうとインテル最適化マニュアルを紐解いてみると、あらなんと。Core 2 では XMM レジスタを使用した演算が、それ以前のアーキテクチャ…