Re: DrawPixel3D関数の追加のお願い ( No.1 ) |
- 名前:いっち 日時:2010/09/03 12:29
そういった場合、DrawSphere3D 関数や ConvWorldPosToScreenPos 関数等を使用すると思うのですが、既存の関数とはどの様な違いがあるのでしょうか?
「こういったパラメータを与えるとこのように動作する」等、もう少し詳しい説明をお願いします。
|
Re: DrawPixel3D関数の追加のお願い ( No.2 ) |
- 名前:トム 日時:2010/09/04 22:14
説明不足で申し訳ありません。補足説明します。
やりたい事は、「遠くの星を1ドットのピクセルとして描画する事」です。
>既存の関数とはどの様な違いがあるのでしょうか?
DrawSphere3D()関数だと、カメラからの距離によって大きさが変わってしまいます。
また、処理も無駄にかかってしまいます。
ConvWorldPosToScreenPos()関数でワールドからスクリーン座標に変換してDrawPixel()関数で
1ドットを描画する方法もありだと思いますが、ワールドスクリーン変換はできたらGPUにやらせたい。
DirectXのプリミティブにポイントがあるなら、それを使うのが最も処理効率がいいと考えた次第です。
(今回の仕様とは少し違いますが、DirectX8くらいの時にポイントテクスチャーがあったような・・・)
>「こういったパラメータを与えるとこのように動作する」等、もう少し詳しい説明をお願いします
ほしい関数の仕様は以下の通り
-----------------------------------------------------
宣言 int DrawPixel3D(VECTOR Pos, int Color);
概略 3D空間に点を描画する
引数 VECTOR Pos : 点を描画する座標
int Color : 描画する点の色
戻り値 0:成功
−1:エラー発生
-----------------------------------------------------
※連続する点のリストを一気に描画するような機能があれば更に便利ですね。
DrawLine3D()関数があるので、DrawPixel3D()関数もあるかと思いヘッダーを見てみたのですが
なかったのでお願いした次第です。
検討お願いします。
|
Re: DrawPixel3D関数の追加のお願い ( No.3 ) |
- 名前:いっち 日時:2010/09/05 01:02
「カメラの位置によって、描画位置や奥行き情報は変わるが、描画サイズは常にスクリーン1ドットになるビルボード」と言った感じでしょうか?
管理人さんにお任せします。
|
Re: DrawPixel3D関数の追加のお願い ( No.4 ) |
- 名前:管理人 日時:2010/09/17 22:22
ご要望承知しました
DrawPixel3D 関数を追加しましたのでよろしければお試しになってみてください m(_ _)m
( 関数名と関数の引数はトムさんがご提示されたものと全く同じです )
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
本件とは関係ありませんが、今回の機能を作成する過程で DrawLine3D と DrawTriangle3D も
多少高速になりました
> いっちさん
ご対応ありがとうございます
|
Re: DrawPixel3D関数の追加のお願い ( No.5 ) |
- 名前:トム(解決) 日時:2010/10/21 21:38
>DrawPixel3D 関数を追加しましたのでよろしければお試しになってみてください
管理人、いっちさんどうもありがとうございます。
問題なく動作する事を確認しました。
|