2010-01-01から1年間の記事一覧
何となく。本当に何となく、なんですが、仕事について人生設計があります。 20 代は『なんでもやろう』と思ってました。なので、営業でも経営でも開発でも企画でも、なんでもやってきました。 30 代は『方向性をつけたい』と思ってます。他人からの依頼物で…
最終話の ED 絵が、MIN-NARAKEN でびっくりしました。アリスソフト、最近いろんなところで見ますね。適度な露出はいいことだと思います。
もー、バックバッファ コピーの設計が気持ち悪くて気持ち悪くて再設計しました。詳細はこちら。 結局フリップに対応しました。多分、これでバックバッファの扱いは完成形です。前よりちょっと速くなっているはず。SSE2 使ってキャッシュ制御して、やっと落ち…
現状のコードをまとめました。詳細はこちら。 裏画面合成処理における分割描画についても、ちょこちょこ最適化しました。SSSE3 を使用したグレースケール画素データのロードと、描画タスクのクリッピングが対象です。Intel Atom だと 1 割くらい速くなってい…
バックバッファのコピー回避でーきたっと。ベスト エフォート型の回避だけど、パフォーマンス上がりました。よかったよかったー。 とりあえず今日はここまで。
先の日記の日付を 2 度にわたって間違える始末。眠いとミスも増えますね。気をつけよう。 さて、バックバッファの扱いをちょっと再考しています。 昨日の日記のとおり、現在、描画処理に『裏画面の合成』と『表画面への転送』という 2 つのステージを設けて…
ティアリング回避に際して、描画の並列度が低下して速度が落ちる件ですが、表画面への転送処理を非同期化することで解消しました。詳細はこちら。 これで、タスク処理、裏画面合成、表画面転送が非同期になりました。単純な fork, join でないので、タスク管…
画面更新時のティアリングが見るに耐えないので、バックバッファを実装しました。詳細はこちら。 表画面への転送を一回の StretchDIBits で処理するようにしたため、以前よりも並列度が低下しますが、ティアリングは軽減しています。裏画面は相変わらず分割…
パラレル・フォースの過負荷時の処理について、処理落ちかコマ落ちのいずれにしようか迷いましたが、コマ落ちにしました。詳細はこちら。 昨日までの実装では、描画処理後にタスク処理を逐次実行していたのですが、これだとコマ落ちの際にタスクの処理間隔が…
えーと。何やら以前、予約してしまっていたようで、宅配で届きました。パッケージ見たときは、やっちまった感満載でした。相方からは「悲しいわ。離婚ね」と言われました。相方の中で許せる範囲というものがあるようです。 許せる ガンダム UC (1) (2) (BD) …
とりあえず効果音用のものだけまとめました。 今時、サウンド機能がない環境があるのかどうか分かりませんが、NullDevice パターンで XAudio2 の初期化に失敗する環境でも、実行だけはできるようにしました。まぁ、保険的な意味合いで。
アリスソフト大好き人間としては外せない一品。買いました。トップがアトラクでしたし、好きな曲のオンパレードでしたので。結構楽しみにしていました。 感想。 ―――素直にインスト版リリースして下さい。 数日聞き込んでみての感想です。いや、まぁ。意外と…
サウンド周りの設計に入りました。グラフィックスはとりあえず、ちょっと置いておきます。ゲームのエンジンだといっているのにグラフィックス実装ばかり進んで行くのはあまりにもアレだと感じましたので。 過去の経験から、効果音には DirectSound で、BGM …
30 歳も過ぎて、なんだかプログラム開発系コミュニティに興味が出てきました。んー。どこかに飛び込んでみようかな、とか思ってます。わんくま同盟、良いのかなぁ。ちょっと考えよう。
現在公開中のデモの文字描画は結構やっつけ実装でしたが、先ほど、ちゃんとまとめて、まともな実装に修正しました。描画対象のテキストも、イメージ同様にテキストとしてスプライト管理するようにしました。あと、やっつけ実装では加算合成で白文字を描画し…
昨日、一昨日と、仕事のことでかなり疲れていて、帰宅後 TV を付けずに寝入ってしまったら、そういうときに限って録画予約ミス!先ほど気づいて愕然としました。ミスした番組は、妹なんかじゃない(違)と、空のおとしものフォルテ、スパロボ OG。素で凹みま…
昨日アップしたイメージ中の『WAITING FOR I-SU-CHI』の上方が少しズレています。これは画面を分割描画及び分割更新していることにより、前フレームと現フレームが混在してしまったものです。もしかすると遅い PC の場合、画面更新が垂直同期に追いつかない…
すっかり忘れていて、さっくり実装しました。文字列描画です。下図の『これはスクリーン 2 です。(MS Pゴシック で表示中)』が描画した文字列です。 GDI の GetGlyphOutline API でアンチエイリアス付きグリフデータを取得して、イメージ スプライトとし…
Win64 対応とか書いておきながら公開バイナリは Win32 版のみという、ちょっと寂しい状況でしたので、開発環境を整備して x64 ビルドしてみました。 型の不一致で 4-5 箇所くらい修正しましたが、それ以外はすんなりコンパイルが通りました。修正内容は、デ…
αマスクによるトランジションにステップ数指定機能を実装しました。デモにも反映しました。以前のデモよりもスクリーン切り替えの境界線がくっきりしていると思います。詳細はこちら。 次はイメージの回転か、或いは、ちょっとやってみたいトランジションが…
デモにトランジション処理を追加しました。αマスクは適当に用意したものですので、エフェクトには当たり外れがあるかも。詳細はこちら。凡ミスもいくつか修正してあります。んー。画素の合成処理が増えてきたので、だんだん SIMD の効果が顕著になってきまし…
昼過ぎから四苦八苦しながら実装してました。αブレンディングによるエフェクトなので SIMD が良く効きます。例によって SSSE3 まで対応しています。今日はもう夜遅いので、デモをまとめるのは明日にしようと思います。
体調不良で今日は会社を休みました。肺炎やってからなかなか復調しません。半日くらい寝てました。 とりあえず、先ほどアフィン変換の線形補間のα値保持バージョンを実装しました。デモに反映しても絵的な変化がないので、公開は次の機会に。
イメージの拡大縮小処理の実装をとりあえず完了しました。線形補間の処理負荷が思っていたよりも高く、慌てて SSE2, SSSE3 に対応させました。むー。アフィン変換の線形補間は SSE2 には荷が重いですね。SSSE3 が使えないと、パック、アンパックの嵐であまり…
今日は私と相方と子供二人で、名古屋の東山動物園に行ってきました。 最近、絵本やテレビで動物に興味を持ち始めた上の子供に、本物の動物を見せてあげたいと思って出かけました。が、なかなか計画通りとは行かず。まず昨夜、子供がなかなか寝付かず、その日…
実装したらうまくいったようです。偶数版は SSE2 よりも 2 割くらい速い、かな。奇数版は SSE2 とどっこいです。デモのスプライトの重ね合わせのフェード値が奇数に偏っていたため、効果確認用に、Z オーダー順に奇数偶数と交互に設定するようにしました。微…
_mm_maddubs_epi16 を使用したαブレンディングですが、再考察したところ、0-256 は無理ですが、0-128 ならいけますね。α値が 0 のケースはそもそも上流で描画をカットしていますし、またα値が 128 (=256) の場合は上流で単純転送に振り分けています。つまり…
次はアフィン変換かなー。よく使いそうですし。 ところで SSSE3 の _mm_maddubs_epi16 がいまいち使えませんでした。αブレンディングに組み込めないか検討したのですが、乗数が符号付バイトということで、-128 〜 127 の範囲しか使えません。これが符号無な…
高速化の効果が大きかったので SSSE3 を導入しました。動的切り替えにより、非サポート CPU では SSE2 で動きます。また、機能面では複数スクリーン処理を追加しました。デモには、2 つのスクリーンをクロス フェードするようにしました。一方はこれまでのデ…
公開中のデモについて、Atom や Core i7 では SSE2 適用でとても高速化するのですが、Core 2 であまり速くならず、何故だろうとインテル最適化マニュアルを紐解いてみると、あらなんと。Core 2 では XMM レジスタを使用した演算が、それ以前のアーキテクチャ…