mieki256's diary



2017/03/31(金) [n年前の日記]

#1 [dxruby][gosu][ruby] COLLADA形式の3Dモデルを読み込むRubyスクリプトを書いた

ここ最近、 DXRuby や gosu + opengl を使って3Dモデルの描画を試しているのだけど、3DCGソフトで作成したモデルデータを読み込んで描画できると、実験としては色々都合がいいので、COLLADA形式(.dae)の3Dモデルデータを読み込めるRubyスクリプトを書いてみたり。

_mieki256/tinydaeparser



モデルデータを json で出力して使ってもいいし、require_relative 'tinydaeparser' して daeファイルを直接読んでもいいし…。まあ、好きなやり方で使える、かなと。

モデルデータを読み込むだけなら、先日、 _Wavefront形式(.obj, .mtl)の3Dモデルを読み込むスクリプト を書いているので、ソレを使えばいいけれど。Wavefront形式は頂点カラーを含めることができないようで。COLLADA形式なら頂点カラーを含めることもできる点が大きな違い、だろうか。たぶん。

もっとも、現状では複数オブジェクトに対応してないし、複数のマテリアルを使った場合にも対応できてないので…。あくまで、描画の実験用に使えなくもないですよ、てな状態ですが。

ひとまず、頂点配列や頂点カラー配列は取得できるようになったから…。HLSLを勉強して頂点シェーダとピクセルシェーダを、などと夢想。

blenderからdaeファイルをエクスポートする際の注意点。 :

最初、blender から .dae をエクスポートして描画しようとしたところ、全然違う場所に描画されて悩んだり。

オブジェクトを移動・回転・拡大縮小すると、一見そこに存在するように見えても、内部では全然違う別の場所、異なる座標で存在している、という状態になるのだな…。

そんな時は、オブジェクトを選択した状態で、下のほうのメニューから、オブジェクト → 適用 → 位置・回転・拡縮、を選んでやればいいらしい。

Wavefront形式(.obj)でエクスポートした際は、そのあたり適用した状態でエクスポートしてくれるようで、先日実験していた時はモデルデータの位置がおかしいことに気づかなかったのだけど。COLLADA形式(.dae)でエクスポートすると、内部で持ってる座標値等は極力弄らず、座標変換するためのMatrix情報を付加した状態でエクスポートするっぽい。故に、今回変な位置に描画されてしまったのだろう。たぶん。

#2 [prog] NVIDIA FX Composer を試用してみたり

NVIDIA FX Composer なるソフトを使うと、HLSLを書いてその場でコンパイルと表示確認ができる、てな話を見かけたので試用してみようと。環境は Windows10 x64。

_FX Composer | NVIDIA Developer から、FX_Composer2_Shader_Debugger_Bundle_2.53.0524.1905.exe をダウンロードして実行。ウイザード形式でインストールが進む。途中で名前と所属の入力を求められるけど…。以下を参考にして入力。

_ぼく用あれこれまとめ - NVIDIA FX Composer 導入メモ

インストール後、以下を参考にしながら操作。

_FX Composer 2.5再入門: 新 masafumi's Diary
_ぼく用あれこれまとめ - NVIDIA FX Composer 2 の使い方

まずはモデルデータをインポート。インポートできるフォーマットは、.dae、.obj、.x、.fbx、.3ds等。先日から実験に使ってる .dae を流用することにする。

インポートの仕方は、左側の下のほうのタブの中に「Assets」てのがあるからソレに切り替えて、Modelsを右クリック → Import。

次にシェーダ(?)を追加。Effects → Add Effect。色々な種類が選べるけど、ひとまず HLSL FX を選択 → Next → Phong を選択 → Next → Finish。これで、あらかじめ同梱されているのであろうシェーダのサンプルが追加される。同時に、対応したマテリアル(Material)も追加される。

追加された Material をドラッグして、右下のほうで3D表示されているモデルの上で落とすと、マテリアルが反映される。

テクスチャ画像を変更したい時は…。まずは画像を追加。Textures を右クリック → Add Texture From File → 画像を選択。

マテリアル設定を変更してテクスチャを差し替える。先ほど追加されたマテリアルをクリックすると、Propertiesウインドウの中に Diffuse Texture てのがあるから、ファイル名をクリック → 右の「...」ボタンをクリック → 先ほど追加した画像を選択。これでテクスチャが変更される。

要するに、何かを追加したい時は、Assets に並んでる何かを右クリック、みたいな。Lights 等も追加できる。

と、書いたところで気がついた。コレ、ほとんどは、メニューの Create から追加できるのだな…。

シェーダのソースを眺めてみる。 :

なんだかよく分からない情報が並んでるな…。と思ったら、コレ、Properties に表示する項目の情報も列挙されているのだな。

#3 [prog] Live Coder の HLSL版もあるらしい

Live Coder というのは、OpenGL の GLSL をビシビシ書けばその場で結果を出してくれるツール、という説明でいいのだろうか。

_Live Coder

_2013/06/12 頃に、Windows7環境でインストールして試用していた模様。

HLSL版も公開されてることに今頃気が付いた。気になる。lc_hlsl20121228.zip をDLして解凍。

_githole/Live-Coder: Live Coder is a realtime GLSL editor/viewer mainly for demosceners. によると、
Requirement: OpenAL 1.1 SDK, SDL 1.2, GLEW 1.7.0

githole/Live-Coder: Live Coder is a realtime GLSL editor/viewer mainly for demosceners. より

と書いてある。インストールしておいたほうがいいのかな…。lc20121208.zip をDLして解凍したら、oalinst.exe とか入ってたけど…。

_OpenAL: Cross Platform 3D Audio
_Simple DirectMedia Layer - SDL version 1.2.15 (historic)
_The OpenGL Extension Wrangler Library - Browse /glew/1.7.0 at SourceForge.net

livecoder.exe を実行。凄い感じの映像が出てきた。このソースでどうしてこうなるのか分からないけど、とにかく凄い。しばらく映像に見入ってしまった…。

以上、1 日分です。

過去ログ表示

Prev - 2017/03 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project