2017/03/18(土) [n年前の日記]
#1 [dxruby] DXRubyのCustomRenderTargetを勉強中その2
_DXRuby開発版
を使ったスクリプト中で、
_tinywavefrontobj
を用いて Wavefront形式(.obj + .mtl)の3Dモデルデータを直接読み込んで描画してみたり。
_crt_test05_readobj.rb
こんな感じの結果に。
一応、.obj を直接読んで使えることが確認できた。
ついでに、3D描画部分の背景として、2D画像をフツーに描画できるかどうかもテスト。DXRuby ならこういう描画も可能であることを確認できた。コレ、Ruby + gosu + opengl では、OpenGL描画部分の背景に2D画像を描画できなかったわけで…。いや、もしかすると gosu も書き方次第でできるのかもしれないけど、ググってもヒントが見つからなくて。
さらに、頂点配列、法線配列、uv配列、頂点カラー配列を、別々の頂点バッファにして描画できるか試してみたり。一応描画できてるように見えるけど、これで合ってるのかどうか…。昔は、1つの頂点毎に、頂点座標、法線ベクトル、uv等をまとめてしまったほうが速かったらしいけど、最近のGPUは分かれてるほうが速い事例もあるそうで。まとめたほうがいいのが、分けてあるほうがいいのか、どっちを使ったほうがいいのかちょっと分からんけど。
_GPU本来の性能を引き出すWebGL頂点データ作成法 - Qiita
_wgld.org | WebGL: インターリーブ配列 VBO |
何はともあれ、こんな感じの描画ができるのであれば、例えば 2DのSTGやアクションゲームでも、背景をそれっぽく見せられそうな予感。
_crt_test05_readobj.rb
こんな感じの結果に。
一応、.obj を直接読んで使えることが確認できた。
ついでに、3D描画部分の背景として、2D画像をフツーに描画できるかどうかもテスト。DXRuby ならこういう描画も可能であることを確認できた。コレ、Ruby + gosu + opengl では、OpenGL描画部分の背景に2D画像を描画できなかったわけで…。いや、もしかすると gosu も書き方次第でできるのかもしれないけど、ググってもヒントが見つからなくて。
さらに、頂点配列、法線配列、uv配列、頂点カラー配列を、別々の頂点バッファにして描画できるか試してみたり。一応描画できてるように見えるけど、これで合ってるのかどうか…。昔は、1つの頂点毎に、頂点座標、法線ベクトル、uv等をまとめてしまったほうが速かったらしいけど、最近のGPUは分かれてるほうが速い事例もあるそうで。まとめたほうがいいのが、分けてあるほうがいいのか、どっちを使ったほうがいいのかちょっと分からんけど。
_GPU本来の性能を引き出すWebGL頂点データ作成法 - Qiita
_wgld.org | WebGL: インターリーブ配列 VBO |
何はともあれ、こんな感じの描画ができるのであれば、例えば 2DのSTGやアクションゲームでも、背景をそれっぽく見せられそうな予感。
◎ jsonと.objのどちらがいいのやら。 :
jsonファイルを解析して頂点配列等を取得するのと、.obj + .mtlファイルを解析して頂点配列等を取得するのでは、どちらがいいのだろう…。
例えば、RubyのjsonライブラリがCで書かれてたりするなら、一旦jsonにしておいて、jsonを読み込んだほうが処理時間も速いのだろうけど。
もっとも、パース(=解析)にかかる処理時間を気にするなら…。jsonになった時点で、もはや中身を眺めて修正したり等はほとんど不可能な状態になるのだから、いっそのことバイナリで保存したり読み込んだりするほうがいいのかな、とも思えてきたり。でも、エディタで開いて一応は内容が見れるテキストファイルと、何が何だか分からない謎バイナリでは、前者のほうが気分的に楽かな…。
例えば、RubyのjsonライブラリがCで書かれてたりするなら、一旦jsonにしておいて、jsonを読み込んだほうが処理時間も速いのだろうけど。
もっとも、パース(=解析)にかかる処理時間を気にするなら…。jsonになった時点で、もはや中身を眺めて修正したり等はほとんど不可能な状態になるのだから、いっそのことバイナリで保存したり読み込んだりするほうがいいのかな、とも思えてきたり。でも、エディタで開いて一応は内容が見れるテキストファイルと、何が何だか分からない謎バイナリでは、前者のほうが気分的に楽かな…。
◎ 頂点カラーを記録できる3Dモデルフォーマットを探していたり。 :
テキストで記述されていて、かつ、頂点カラーを記録できる3Dモデルフォーマットは無いのかなとググってるところ。
ここ数日使っている Wavefront形式は、テキストで記述されてるので解析しやすいものの、頂点カラーについては記録できないみたいで。いや、アプリによっては頂点情報に頂点カラーまで付加してしまうものもあるらしいのだけど…。
そもそも blender上で頂点カラーを指定するのって、どんな操作をすればいいんだろう。ソレ以前に、blenderは、頂点カラーを使える機能があるのだろうか。
仮に blender がそういう機能を持ってないとしても、Wings3Dあたりではどうだろう。Wings3Dは、ゲーム向けのローポリモデルを作成しやすい、という話を見かけたから、頂点カラーも指定できそうな。
ここ数日使っている Wavefront形式は、テキストで記述されてるので解析しやすいものの、頂点カラーについては記録できないみたいで。いや、アプリによっては頂点情報に頂点カラーまで付加してしまうものもあるらしいのだけど…。
そもそも blender上で頂点カラーを指定するのって、どんな操作をすればいいんだろう。ソレ以前に、blenderは、頂点カラーを使える機能があるのだろうか。
仮に blender がそういう機能を持ってないとしても、Wings3Dあたりではどうだろう。Wings3Dは、ゲーム向けのローポリモデルを作成しやすい、という話を見かけたから、頂点カラーも指定できそうな。
◎ 課題。 :
今のところテクスチャを使ってるモデルしか描画できないので、テクスチャを使ってないモデル、及び、複数のマテリアル(材質設定)も描画できるようにしたいのだけど、さて、どうすればいいのやら。シェーダを数種類用意して対応するのが妥当なのだろうか。それとも違う方法があるのだろうか…。
ピクセルシェーダ内の計算も、これで合ってるのかどうか…。意味も分からずコピペしただけなので…。 _グーローシェーディング(Gouraud shading) とか _フォンシェーディング(Phong shading) とか勉強しないと、なのかな…。
ピクセルシェーダ内の計算も、これで合ってるのかどうか…。意味も分からずコピペしただけなので…。 _グーローシェーディング(Gouraud shading) とか _フォンシェーディング(Phong shading) とか勉強しないと、なのかな…。
[ ツッコむ ]
#2 [nitijyou] ファンヒーターが壊れた
自室で使っていたダイニチ製のファンヒーターが壊れてしまった。運転開始ボタンを押してしばらくすると、液晶画面に「F06」のエラー表示が。
_エラーへの対処方法一覧 - 石油暖房機器 - DAINICHI によると、「F06」のエラー表示は、気化器サーミスタオープンなる症状らしい。修理が必要ですよ、と書いてある。
親父さんの運転する車で、近所にあるホームセンター、ホーマックまでファンヒーターを運んで修理をお願いしてきた。とりあえず見積もりを出してもらえるらしいけど、下手すると二週間ぐらいかかるかも、との話。
件の店では、既にファンヒーターをほとんど売ってないそうで。店頭にはコロナ製の製品しかなかった。値段は税抜き14,800円。
ついでに、ホーマックで犬の餌も購入。柴犬用と謳ってるドッグフードだけど、食べてくれるかどうか…。
_エラーへの対処方法一覧 - 石油暖房機器 - DAINICHI によると、「F06」のエラー表示は、気化器サーミスタオープンなる症状らしい。修理が必要ですよ、と書いてある。
親父さんの運転する車で、近所にあるホームセンター、ホーマックまでファンヒーターを運んで修理をお願いしてきた。とりあえず見積もりを出してもらえるらしいけど、下手すると二週間ぐらいかかるかも、との話。
件の店では、既にファンヒーターをほとんど売ってないそうで。店頭にはコロナ製の製品しかなかった。値段は税抜き14,800円。
ついでに、ホーマックで犬の餌も購入。柴犬用と謳ってるドッグフードだけど、食べてくれるかどうか…。
◎ 何時頃買った製品だったか。 :
検索してみたら、
_2007/11/05
に買った製品だったらしい。ダイニチ FW-322S とメモしてあった。
当時の店頭では9,980円で売られてたのか…。すると、今は製品価格が1.5倍に値上がりしてるんだな…。と思ったが、ググってみたら、9,980円前後で売ってるお店もあるな…。今回店頭で見かけた製品は、何かしらランクの高い製品だったのだろうか。
当時の店頭では9,980円で売られてたのか…。すると、今は製品価格が1.5倍に値上がりしてるんだな…。と思ったが、ググってみたら、9,980円前後で売ってるお店もあるな…。今回店頭で見かけた製品は、何かしらランクの高い製品だったのだろうか。
◎ 階下のファンヒーターを貸してもらえた。 :
親父さん曰く、「1階の奥の部屋に置いてある古いファンヒーターはほとんど使ってないので、ひとまずソレを使え」とのことで。助かった。
自室まで運んで動作確認。フツーに動いてくれた。
CORONA GT-3240、と書いてあるな…。 _道燃整組 コロナ年度表一覧 によると、1991年の製品らしい。…えっ? 1991年? 大丈夫かコレ。
コロナ製品は、一部にリコール対象製品があるようで。「手を汚さずに開け閉めできますぜ」てのが売りだったタンクの蓋部分に問題があるらしい。
_コロナ石油ストーブ 油タンク確認不足で火災の恐れ - リコール情報のお知らせ - ヤフオク!
_CORONA Information web
_recallpapaer.pdf
_株式会社コロナが製造した石油ストーブのリコールが行われます(無料点検・部品交換)(METI/経済産業省)
幸い、型番リストの中に GT-3240 は入ってなかった。古過ぎて、タンクの蓋が昔ながらの金属製なので、リコールにはならなかった模様。
自室まで運んで動作確認。フツーに動いてくれた。
CORONA GT-3240、と書いてあるな…。 _道燃整組 コロナ年度表一覧 によると、1991年の製品らしい。…えっ? 1991年? 大丈夫かコレ。
コロナ製品は、一部にリコール対象製品があるようで。「手を汚さずに開け閉めできますぜ」てのが売りだったタンクの蓋部分に問題があるらしい。
_コロナ石油ストーブ 油タンク確認不足で火災の恐れ - リコール情報のお知らせ - ヤフオク!
_CORONA Information web
_recallpapaer.pdf
_株式会社コロナが製造した石油ストーブのリコールが行われます(無料点検・部品交換)(METI/経済産業省)
幸い、型番リストの中に GT-3240 は入ってなかった。古過ぎて、タンクの蓋が昔ながらの金属製なので、リコールにはならなかった模様。
[ ツッコむ ]
以上、1 日分です。