Re: 3Dポリゴンの透過色について ( No.1 ) |
- 名前:管理人 日時:2015/01/07 00:07
> DxLibの関数のSetTransColor() ;は
> 3Dポリゴンの透過色にも反映できるのでしょうか。
3Dポリゴンに貼り付ける画像に対しては DrawGraph などと同様に設定が反映されます
> r=0.g=0,b=0を描画色として使いたいので、
> 全部255にするなどができるのならば、方法を教えてもらえれば幸いです。
SetTransColor( 255,255,255 ) ;
を実行すれば r=0,g=0,b=0 を描画色として使用することができます
因みに SetTransColor は現在は画像読み込み時に効果のある設定となっていますので、
r=0,g=0,b=0 を描画色として使用したい画像を LoadGraph などで読み込む前に
SetTransColor( 255,255,255 ) ;
を実行しておけば、その画像の r=0,g=0,b=0 の部分は描画されるようになります
逆に画像を使用しない3Dポリゴン描画では SetTransColor の設定は何も影響がありません
尚、そもそも透過色処理を使用したくないという場合は、LoadGraph などで画像を読み込む前に
SetUseTransColor( FALSE ) ;
を実行してください
|
Re: 3Dポリゴンの透過色について ( No.2 ) |
- 名前:chain 日時:2015/01/07 20:26
返信ありがとうございます。
しかし、試したところSetTransColor( 255,255,255 ) を使っても上手く透過色を変えることができませんでした。
行ってみたことは、一つの四角いポリゴン(三角二つ)に背景白地(透過したいところ)に黒と茶色の斑点がある画像をz軸方向に8つ並べて描画してみました。
一枚ごとは20.0f離れているのですが、視点から重なって見えるポリゴン(透過の有無関係なく)は、一番遠い画像が見えてしまいます。
Zバッファや書き込みは許可してあります。
さらに、透過処理のオンオフを切り替えると、重なってない部分の黒い個所が透過されてしまいます。
まとめると、@ずらして並べたポリゴンのテクスチャが、奥にある方が優先されて表示されてしまう。
A透過処理がどうしても0,0,0に適応されてしまう。
ということになります。
ソースなどは準備でき次第上げますが、この情報で何かわかれば書き込んでいただけると幸いです。
|
Re: 3Dポリゴンの透過色について ( No.3 ) |
- 名前:管理人 日時:2015/01/08 00:31
うーん、ソースを拝見してみないと何とも言えませんが、幾つかご質問させてください
1.SetTransColor( 255,255,255 ) ; は
「背景白地(透過したいところ)に黒と茶色の斑点がある画像」を
LoadGraph で読み込む前に実行していますでしょうか?
2.黒が透過されてしまうとのことですが、「背景白地」の部分は
透過されずに描画されてしまうということでしょうか?
あと、もし最新のバージョンをお使いでしたら、つい先日3Dポリゴン描画関係の
バグのご報告を受けて修正を行いましたので、よろしければこちらの修正後の
バージョンをお試しになってみてください m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
|
Re: 3Dポリゴンの透過色について ( No.4 ) |
- 名前:chain 日時:2015/01/08 01:10
ここに掲載する用のプログラムを書いていたら、ちゃんと動いたため、先ほど載せた動作の原因がわかりました。
@の奥にある画像が優先されてしまっていたのはSetCameraNearFar関数が働いていたためみたいです。
コメントアウトしたところ手前が優先で描かれました。
Aの透過色の変更の件は、@のせいで今までちゃんと確認できていなかったのが一番大きいですが、
SetTransColorの関数の場所をいろいろ変えていて、2ヶ所に残っていたことも原因であったのかもしれません。(一か所は描画ループ内にありました^^;)
ちなみに、このスレッドに書くべきではないかもしれませんが、レイトレーシングのように透過部分を除いた影を下の画像に落とすことは可能でしょうか。
それともシャドウマップを作らなければならないでしょうか。よければお答えお願いいたします。
|
Re: 3Dポリゴンの透過色について ( No.5 ) |
- 名前:管理人 日時:2015/01/09 00:04
SetCameraNearFar が原因ということは、Near の値が大きすぎた、ということでしょうか?
> ちなみに、このスレッドに書くべきではないかもしれませんが、レイトレーシングのように透過部分を除いた影を下の画像に落とすことは可能でしょうか。
「下の画像」とは何のことでしょうか?
|