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