■ 実例
XNA(MonoGame)では標準で3Dモデルを手軽に扱えるModelクラスが用意されている。 1行で読み込み、1行で描画できる素晴らしいものだ。
ただしこのModelクラスを使うと頂点データは遮蔽されておりアクセスできない。 物理演算エンジンに食わせるのにどうしても頂点データが必要なのにだ。
世界中の誰もが同じ問題で悩んでいるようでstackoverflowに回避策が書いてあった。内部でGPUへ送信したときに使用したGPUにアクセスする関数ポインタは公開されているのでGetData関数でそのまま返してもらうトリッキーなコードでめでたく回避できた。
しかし、時は流れこの方法では動かない環境が登場した。iOSやAndroidだ。こいつらが採用するOpenGL ESはGPUとの通信が一方通行だ。そこで事前に3Dモデルから頂点データを抜き出し別ファイルに保存しておくという一段とトリッキーな方法で回避する。みごと1モデルのファイルが2個になりました。
さらに時は流れた。あるとき謎の不具合が発生。連日連夜のデバッグ作業。原因は片方のファイルの更新を忘れていただけでした。
カプセル化は恐ろしいね!!
https://github.com/MonoGame/MonoGame/blob/develop/MonoGame.Framework/Graphics/Model.cs
カプセル化は愚かな考え
■ このスレッドは過去ログ倉庫に格納されています
2020/07/29(水) 17:19:08.69ID:u638n5uE
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★8 [Ailuropoda melanoleuca★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 ★3 [首都圏の虎★]
- 【クールジャパン】ゲームやアニメなどコンテンツ産業の海外展開支援、政府が司令塔の法人設立へ…日本の「勝ち筋」に官民の叡智結集 [樽悶★]
- 【ブロマンス詐欺】「好き♡」 70代男性にメッセージ 現金2000万円をだまし取った疑い 64歳の男を逮捕 [nita★]
- 【アニメ】『日本の最強アニソンBEST100』 1位はまたもや『残酷な天使のテーゼ』… 視聴者は「出来レース」「見飽きた」の声★2 [冬月記者★]
- 【サッカーW杯】中東勢が大苦戦 アジア杯連覇のカタール含む5チームが第2節終了で勝利なし [首都圏の虎★]