ユーザ用ツール

サイト用ツール


2026:02:22

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
2026:02:22 [2026/02/22 09:16] machiaworx2026:02:22 [2026/02/22 22:30] (現在) machiaworx
行 3: 行 3:
 ===== プログラム ===== ===== プログラム =====
   * ラスタライザ開発中。   * ラスタライザ開発中。
 +  * レンダラーなのかラスタライザなのかよくわからなくなってくる。
 +  * 2D描画ができる、ピクセル描画機能を提供しているとなるとレンダラーな気がしてくるんだよな。
 +  * ちなみにラスタライズ処理とレイトレーシングは別のソースで書いている。
 +  * となるとレンダラーかなあ・・・
 +
 +----
 +    * まず3Dレンダラーを組み込みしてみた。
 +    * https://x.com/__machia__/status/2025472433525043367/video/1
 +    * ソースコード眺めてみると、視野角の関係で歪んで見えてくるのか、なるほどと思った。
 +    * 3Dのアプリも作れそうな気がしてくる。
 +
 +----
 +    * 次にaobenchを移植というかラスタライザに組み込みしてみた。
 +    * https://github.com/syoyo/aobench
 +    * 一時期色んなところにaobench移植するの流行ってた記憶がある。
 +    * 実際自分が制作に参加したデモもaobenchを最初に組み込んでみたはず。qさん(ry
 +    * さすがにマルチスレッド想定ではないせいか、アプリ側のタイマでは描画タイミングを制御できないため、タイマーが規定秒数以下だったらaobenchのレンダリング起動して、以降は描画しないという形にしてみた。
 +    * これで4kbGraphicsも作れそう。まぁ解像度は小さいけど。
 +
 +----
   * 画像切り出し表示機能を実装済み。   * 画像切り出し表示機能を実装済み。
   * https://x.com/__machia__/status/2025320873797050573?s=20   * https://x.com/__machia__/status/2025320873797050573?s=20
行 10: 行 30:
  
 ---- ----
-  * 上記はともかくとして、描画するときになってここだけ欲しい、みたいなのもあるので、画像サイズを別途指定して描画できるようにもしておいた。+  * 描画するときになってここだけ欲しい、みたいなのもあるので、画像サイズを別途指定して描画できるようにもしておいた。
   * https://x.com/__machia__/status/2025358645056471514?s=20   * https://x.com/__machia__/status/2025358645056471514?s=20
  
 ---- ----
-  * 整理すると以下関数が必要+  * 整理すると以下関数を作成予定。
  
   - 未作成:画像サイズを規定のサイズで、規定のサイズ分の範囲を自動で割り当てて切り取る関数(縦のサイズが揃ってるときに利用しやすくする、ただその挙動を理解しないとダメなので、データ作る段階から考慮してないと利用は難しい)   - 未作成:画像サイズを規定のサイズで、規定のサイズ分の範囲を自動で割り当てて切り取る関数(縦のサイズが揃ってるときに利用しやすくする、ただその挙動を理解しないとダメなので、データ作る段階から考慮してないと利用は難しい)
   - 作成済み:画像サイズを規定のサイズで、任意のグラフィック座標から切り取る関数(汎用性が高い)   - 作成済み:画像サイズを規定のサイズで、任意のグラフィック座標から切り取る関数(汎用性が高い)
-  - 作成済み:画像サイズを任意のサイズで、任意のグラフィック座標から+  - 作成済み:画像サイズを任意のサイズで、任意のグラフィック座標の範囲を切り取る関数
  
 ---- ----
-  * あとは裏側にもう1枚同じテクスチャのバッファを取得できるようにした。 +  * あとは裏側にもう1枚仮想スクリーンと同じサイズのバッファ(現在名称Extraバッファを取得できるようにした。 
-  * 用途は色々あるけど、転送で負荷が発生しないかが気になった。 +  * 転送で負荷が発生しないかが気になった。memcpyでコピーを行えば毎フレーム確保しても速度的には問題ない模様。 
-  * ただ、memcpyでコピーを行えば毎フレーム確保しても速度的には問題ない模様。+  * なので1枚分仮想スクリーンの情報も取得できるようにした。 
 +  * 参考 
 +  * https://www.apollo-g.co.jp/blog/column/a127 
 +  * で、上のaobenchを組み込んでみたときにちょうどいいので描画機能を実装してみた。 
 +  * https://x.com/__machia__/status/2025528697567272962?s=20 
 +  * 雑なコラ画像みたいになった。 
 +  * 元々aobenchは白黒の画像でambient occlusionを投影するプログラムなんだけど、レイが反射しないところには黒を配置する。 
 +  * で、自分が作ってるラスタライザは黒をカラーキー(透過扱い)としている。 
 +  * 結果、背景が透過扱いになりスクショのような形になった。これはこれで面白い。 
 +  * 例えば上記のように、目的のレンダリングが完了した段階でExtraバッファに保存すれば、これを使ってドット絵の補間やポストエフェクトみたいなのもやりやすくなることを想定している
2026/02/22.1771719365.txt.gz · 最終更新: 2026/02/22 09:16 by machiaworx