トップページ > 過去ログ > 記事閲覧
MV1SetMaterialTypeでテクスチャが真っ黒(他
名前:banba 日時: 2010/07/30 11:25

・MV1SetMaterialTypeでテクスチャが真っ黒 MV1SetMaterialTypeでマテリアルタイプをDX_MATERIAL_TYPE_TOONに設定したテクスチャが 何故か真っ黒になってしまいます。 古いDX_Lib、新しいDX_Libどちらで試してもその現象が発生しました。(古いモノでは全てそのモデルのテクスチャがそうなりました) なお、そのマテリアルは不透明度1.00自己照明1.00他全て0にしてあります。拡張子はMQOです。 テクスチャは24bitの一般的なBitMapファイルです。 ・アルファチャンネルがわからない 以前、質問したところ、DX_Lib更新後にMQOファイルのテクスチャにSetTransColorが適用されなくなった事がわかりました。 (しかし設定後、LoadGraphで読み込んでテクスチャの変更をMV1SetTextureGraphHandleしたところ適用されるみたいですが…) 回答者様がアルファチャンネルの仕様を推奨されましたので、アルファチャンネルを使おうとしているのですが… 全く適用されません。32BitのBitMapファイルでアルファチャンネルを作成したテクスチャを貼り付けているのですが… (メタセコイアで表示してる時は見事に透過されています) ・ワイヤーフレームだけ表示して、透けた表現にしたい ゲームを作っている途中、カメラと自機の間に障害物が入って自機が見えにくくなる事がわかりました。 なので、自機より後ろの障害物モデルを「ワイヤーフレーム(辺)だけ残して透明に表示する」という (要するにモデリングソフトで辺だけ表示させているような)表現を思いついたのですが、実装方法が思いつきません(汗) トゥーンレンダリングにしてモデルの辺の線を表示してテクスチャを透過させようと考えたのですが 上記の事例があるために出来ませんでした… 長文ですみません。とても初心者な質問ですが、回答いただければ大変有難いです。

Page: 1 |

Re: MV1SetMaterialTypeでテクスチャが真っ黒(他 ( No.1 )
名前:いっち 日時:2010/08/01 23:13

> ・MV1SetMaterialTypeでテクスチャが真っ黒 SimpleModel.mqo で少し試してみましたが、トゥーンレンダリングには各マテリアルの拡散光と反射光の影響を受けるようですので、 それらのパラメータを調整なさってみてはいかがでしょうか? ただ、トゥーンレンダリングにそれらの値がどの様に反映されるのが正しいのかは私には分かりかねます。 「このようなパラメータのときはこのように表示されるはず」といった例示を頂けると分かりやすいです。 > ・アルファチャンネルがわからない > 32BitのBitMapファイルでアルファチャンネルを作成したテクスチャを貼り付けているのですが DxLibは32bitのBitMapに対応しているのでしょうか? お手数ですが、検証用のデータをご提供頂けますでしょうか? また、PNG形式で試した場合はどのようなるのでしょうか? > ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1812 前のスレッドで「モデルに設定されているテクスチャに対して透過色が機能しない」と書きましたが、 なぜ機能しないのかは不明です。その点については管理人さんの見解をお聞きしたほうが良いかも知れません。 > ・ワイヤーフレームだけ表示して、透けた表現にしたい わかりません。 ワイヤーフレームは難しそうなので、私ならモデルをそのまま透過させるか、ワイヤーフレーム用のモデルを作ると思います。
Re: MV1SetMaterialTypeでテクスチャが真っ黒(他 ( No.2 )
名前:管理人 日時:2010/08/03 09:21

・MV1SetMaterialTypeでテクスチャが真っ黒 3Dモデルビューアーでマテリアルのタイプ設定をトゥーンにした場合も真っ黒になって しまうのでしょうか? ・アルファチャンネルがわからない LoadGraph で読み込んだ画像は SetTransColor の影響を受けますので、 LoadGraph で読み込んだ画像を MV1SetTextureGraphHandle でモデルに セットした場合は SetTransColor で指定した色が透過するのは仕様となります 32bitBMPは今までのDXライブラリでは対応していませんでしたので 今回対応してみました、よろしければこちらのバージョンをお試しください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) // ビューアー http://homepage2.nifty.com/natupaji/DxLib/DxLibModelViewerTest.zip ・ワイヤーフレームだけ表示して透けた表現にしたい 3Dモデルをワイヤーフレームで描画するかどうかを設定するための関数を 追加しましたので、よろしければ上記バージョンをダウンロードしてください 追加した関数は // モデルをワイヤーフレームで描画するかどうかを設定する int MV1SetWireFrameDrawFlag( int MHandle, int Flag ) ; という関数で、第一引数にモデルハンドルを、第二引数にワイヤーフレームで 描画するかどうかを渡します。 TRUE を渡すとそれ以降の MV1DrawModel で ワイヤーフレーム描画となります よろしければお試しください m(_ _)m
Re: MV1SetMaterialTypeでテクスチャが真っ黒(他 ( No.3 )
名前:banba(解決) 日時:2010/08/03 10:29

いっちさん、管理人さん、詳しい回答大変ありがとうございます! ビューワでも真っ黒に表示されました。その後マテリアルのパラメータを弄ってみたところ どうやらいっちさんの言うとおり、パラメータの問題だったようです。 拡散光を0、自己証明をMAXにして表示していたのですが、どうやら拡散光0がいけなかったようです。 新しいライブラリを試したところ… 32bitのアルファチャンネルが見事に適用されました! ワイヤーフレームの関数も動作確認できました! お二方の回答と対応のおかげで、このところ僕の頭を悩ませていた問題が全て解決出来ました! 本当に助かりました…これからも当ライブラリを愛用させていただきます。

Page: 1 |